nsga_rs 1.4.1

A Rust implementation of the NSGA family of multi-objective evolutionary algorithms
Documentation
name: Build, test and publish
on:
  push:
    branches: [main]
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  test-linux:
    name: Cargo check and test on Unix systems
    runs-on: ubuntu-latest
    steps:
      # Enable this when testing with nektos/act
      #      - uses: actions-rs/toolchain@v1
      #        with:
      #          toolchain: stable
      #          override: true
      #      - name: Install Clang
      #        run: sudo apt update && sudo apt install --yes clang
      - uses: actions/checkout@v7.0.0
      - name: Build (no features)
        run: cargo build --verbose -p nsga_rs
      - name: Install gnuplot
        run: sudo apt-get update && sudo apt-get install gnuplot
      - name: Build (with plotting)
        run: cargo build --verbose -p nsga_rs --features plotting
      - name: Run tests (rust)
        run: cargo test --verbose --all --features plotting

  test-python:
    name: Test Python API
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7.0.0
      - name: Set up Python
        uses: actions/setup-python@v6.3.0
      - name: Run tests (python)
        run: cargo test --verbose --package nsga_rs --lib --no-default-features --features python-test  -- 'algorithms::algorithm::test_python_api'

# NOTE disabled due to compiler failure in hv-fonseca crate
#  test-windows:
#    name: Cargo check and test on Windows
#    runs-on: windows-latest
#    steps:
#      - uses: actions/checkout@v4
#      - name: Build
#        run: cargo build --verbose
#      - name: Run tests
#        run: cargo test --verbose --all