name: Test

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        python-version:
          - 3.6
          - 3.7
          - 3.8
          - 3.9
          - "3.10"
          - 3.11
          - 3.12
      fail-fast: false
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
      - name: Update pip and setuptools
        run: |
          python -m pip install --upgrade pip
          python -m pip install setuptools
      - name: Install dependencies
        run: |
          python -m pip install -e .
          python -m pip install -r test-requirements.txt
      - name: Install old numpy
        run: |
          python -m pip install 'numpy<1.17'
        if: ${{ matrix.python-version >= '3.4' && matrix.python-version < '3.7' }}
      - name: Run tests
        run: |
          python -m nose2 --verbosity=3
