black_scholes 0.11.1

A Black Scholes option pricing library.
Documentation
name: RustTest

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust: [stable, nightly]

    steps:
    - uses: actions/checkout@v3
    - uses: hecrj/setup-rust-action@master
      with:
        rust-version: ${{ matrix.rust }}
    - name: Build
      run: cargo build --verbose
    - name: Run tests stable
      if: matrix.rust == 'stable'
      run: cargo test --verbose

    - name: Install cargo-llvm-cov
      if: matrix.rust == 'nightly' 
      uses: taiki-e/install-action@cargo-llvm-cov
      
    - name: Generate code coverage for nightly
      if: matrix.rust == 'nightly' 
      run: |
        cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
        cat lcov.info
          
    - name: Coveralls
      if: matrix.rust == 'nightly' 
      uses: coverallsapp/github-action@master
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        path-to-lcov: "lcov.info"

  multiple_targets:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        target: [wasm32-unknown-unknown, x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl]
    steps:
    - uses: actions/checkout@v3
    - uses: hecrj/setup-rust-action@master
      with:
        rust-version: stable
        targets: ${{ matrix.target }}
    - name: Build
      run: cargo build --target=${{ matrix.target }}

  bench:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
    - uses: actions/checkout@v3
    - uses: hecrj/setup-rust-action@master
      with:
        rust-version: nightly
    - name: benchmark
      run: cargo bench | tee output.txt
    - name: Store benchmark result
      uses: benchmark-action/github-action-benchmark@v1
      with:
        tool: 'cargo'
        output-file-path: output.txt
        github-token: ${{ secrets.GITHUB_TOKEN }}
        # Show alert with commit comment on detecting possible performance regression
        alert-threshold: '200%'
        comment-on-alert: true
        fail-on-alert: true