name: test
on:
push:
paths:
- 'src/**'
- 'benches/**'
- 'tests/**'
- 'Cargo.toml'
- 'Cargo.lock'
jobs:
lint_test:
name: lint test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: clippy, rustfmt
- name: linting
run: |
cargo fmt -- --check
cargo clippy -- -Dwarnings
unit_test:
name: unit test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: clippy, rustfmt
- name: lib unit tests
run: cargo test --lib
- name: integration tests
run: cargo test --test lib_test
- name: all tests
run: cargo test
benchmark:
name: benchmark
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- name: run benchmarks
run: |
for bench in tensor_vs_geonum extreme_dimensions jacobian rotation geometric_product wedge_product dual differentiation inversion projection rendering; do
echo "Running benchmark: $bench"
cargo bench --bench geonum_benchmarks $bench
done
coverage:
name: code coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- name: install llvm-cov
run: cargo install cargo-llvm-cov
- name: run and save coverage
run: cargo llvm-cov