feat: compact strains (#32)

* store zero strains compactly

* added docs

* added proptest

* add feature to store strains compactly

* update ci

* rename CompactZerosVec to StrainsVec

* add size_hint for iter

* rename iter

* minor adjustments

* more minor adjustments
This commit is contained in:
Badewanne3
2024-03-31 11:49:29 +02:00
committed by GitHub
parent 279e04cc1e
commit a577200a0f
22 changed files with 552 additions and 84 deletions
+2 -33
View File
@@ -1,4 +1,4 @@
name: Clippy and Tests
name: Clippy checks
on:
push:
@@ -14,7 +14,7 @@ jobs:
steps:
- name: Checkout project
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
@@ -29,34 +29,3 @@ jobs:
run: |
cargo install cargo-rdme
cargo rdme --check --no-fail-on-warnings
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v3
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Run tests on default features
run: cargo nextest run --no-default-features --no-fail-fast --failure-output=immediate-final
- name: Run tests with sync feature
run: >
cargo nextest run
--features sync
--filter-expr 'test(util::sync::tests::share_gradual_taiko)'
--filter-expr 'test(taiko::difficulty::gradual::tests::next_and_nth)'
--no-fail-fast --failure-output=immediate-final
- name: Run doctests
run: cargo test --no-default-features --doc
+101
View File
@@ -0,0 +1,101 @@
name: Tests
on:
push:
branches:
- main
- next
pull_request:
jobs:
doc:
name: Doc tests
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
- name: Run doctests
run: >
cargo test
--doc
--no-default-features --features compact_strains
default:
name: Default tests
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Run all tests
run: >
cargo nextest run
--no-default-features --features compact_strains
--no-fail-fast --failure-output=immediate-final
sync:
name: Test sync feature
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Run specific tests
run: >
cargo nextest run
--features sync
--filter-expr 'test(util::sync::tests::share_gradual_taiko)'
--filter-expr 'test(taiko::difficulty::gradual::tests::next_and_nth)'
--no-fail-fast --failure-output=immediate-final
non_compact:
name: Test without compact_strains feature
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Run integration tests
run: >
cargo nextest run
--no-default-features
--test '*'
--no-fail-fast --failure-output=immediate-final