interp 2.1.2

A Rust implementation of Matlab's interp1 function
Documentation
name: Test

on: [push, pull_request]

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup toolchain
        uses: dtolnay/rust-toolchain@v1
        with:
          toolchain: stable
          components: rustfmt, clippy
      - name: Run pre-commit
        uses: pre-commit/action@v3.0.1
        with:
          extra_args: --all-files
        env:
          SKIP: cargo-test

  test:
    name: Build & Test
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        rust: [stable, 1.63.0]
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup toolchain
        uses: dtolnay/rust-toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
      - name: Run cargo build
        run: cargo build --all-features
        env:
          RUSTFLAGS: -D warnings
      - name: Run cargo test
        run: cargo test --all-features
        env:
          RUSTFLAGS: -D warnings

  coverage:
    name: Test coverage
    runs-on: ubuntu-latest
    needs: [lint, test]
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup toolchain
        uses: dtolnay/rust-toolchain@v1
        with:
          toolchain: stable
          components: llvm-tools
      - name: Setup cargo binstall
        uses: cargo-bins/cargo-binstall@main
      - name: Setup grcov
        run: cargo binstall -y grcov
      - name: Run cargo test
        run: cargo test --all-features
        env:
          RUSTFLAGS: -Cinstrument-coverage
          LLVM_PROFILE_FILE: interp-rs-%p-%m.profraw
      - name: Run grcov
        run: >-
          grcov .
          --source-dir .
          --binary-path ./target/debug/
          --output-type lcov
          --branch
          --llvm
          --ignore-not-existing
          --output-path ./lcov.info
          --ignore '/*'
      - name: Upload to codecov.io
        uses: codecov/codecov-action@v4
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          file: lcov.info
          fail_ci_if_error: true