geonum 0.10.5

geometric number library supporting unlimited dimensions with O(1) complexity
Documentation
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