Skip to content

CI: Add macOS and Windows to test matrix (Refreshed)#40

Merged
jmrplens merged 7 commits intomainfrom
ci/cross-platform-tests
Jan 12, 2026
Merged

CI: Add macOS and Windows to test matrix (Refreshed)#40
jmrplens merged 7 commits intomainfrom
ci/cross-platform-tests

Conversation

@jmrplens
Copy link
Owner

@jmrplens jmrplens commented Jan 12, 2026

User description

Refresh of PR #39

This PR updates the CI workflow to include macOS and Windows in the test matrix.
It also changes the installation method from editable (-e .) to standard (.) to verify proper package installation.
Additionally, it adds a manual workflow to verify PyPI installations on all platforms.

Changes:

  • Python 3.13 only for tests (matrix structure preserved).
  • Cross-platform tests (Linux, macOS, Windows).
  • New manual verify workflow.

PR Type

Enhancement


Description

  • Expand test matrix to macOS and Windows platforms

  • Reduce Python versions tested to 3.13 only

  • Change installation method from editable to standard

  • Add manual workflow for PyPI installation verification


Diagram Walkthrough

flowchart LR
  A["Test Matrix"] -->|"Add OS"| B["ubuntu, macOS, windows"]
  A -->|"Reduce Python"| C["3.13 only"]
  D["Installation"] -->|"Change method"| E["Standard install"]
  F["New Workflow"] -->|"Manual dispatch"| G["Verify PyPI install"]
Loading

File Walkthrough

Relevant files
Configuration changes
python-app.yml
Cross-platform test matrix and standard installation         

.github/workflows/python-app.yml

  • Expand test matrix to include macOS and Windows alongside Ubuntu
  • Reduce Python version matrix from 3.11, 3.12, 3.13 to 3.13 only
  • Change package installation from editable mode (pip install -e .) to
    standard mode (pip install .)
  • Update artifact naming to include OS in test results filenames
  • Add fail-fast: false to allow all matrix combinations to complete
  • Update SonarCloud artifact download to use new naming convention
+9/-7     
Enhancement
manual_verify_install.yml
New manual PyPI installation verification workflow             

.github/workflows/manual_verify_install.yml

  • Create new manual workflow triggered via workflow_dispatch
  • Test PyPI package installation across three platforms
  • Support optional version specification via workflow input
  • Verify successful import and version reporting
+35/-0   

Summary by CodeRabbit

  • Chores
    • Added a manual installation verification workflow to test installing and importing the package on Ubuntu, macOS, and Windows.
    • Updated CI tests to run a matrix across multiple operating systems with Python 3.13 and include OS/Python in test artifacts.
    • Adjusted release workflow to ignore documentation and CI config changes so they no longer trigger releases.

✏️ Tip: You can customize this high-level summary in your review settings.

@gemini-code-assist
Copy link

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

@sourcery-ai
Copy link

sourcery-ai bot commented Jan 12, 2026

Reviewer's Guide

Updates CI to run tests on macOS and Windows in addition to Linux using Python 3.13 only, switches package installation in tests from editable to standard installs, adjusts artifacts and Sonar coverage to the new matrix, and adds a manual workflow to verify PyPI installation across platforms.

File-Level Changes

Change Details Files
Expand test job matrix to be cross-platform and Python-3.13-only, and adjust artifact naming accordingly.
  • Change tests job to run on matrix-defined OS instead of a single Ubuntu runner
  • Add OS dimension to the matrix with ubuntu-latest, macos-latest, and windows-latest
  • Limit Python versions in the matrix to only 3.13
  • Update pytest JUnit XML filename to include OS and Python version
  • Update uploaded artifact name and path to match new OS+Python naming scheme
.github/workflows/python-app.yml
Align SonarCloud coverage download step with the new matrix-based artifact name.
  • Update the artifact name downloaded for coverage to match ubuntu-latest-3.13 naming
.github/workflows/python-app.yml
Change package installation in tests from editable to standard installation to validate packaging.
  • Replace pip install -e . with pip install . in the tests job setup step
.github/workflows/python-app.yml
Add a manual workflow to verify PyPI installation and import across all supported platforms.
  • Create a new workflow triggered via workflow_dispatch with an optional version input
  • Define a job matrix over ubuntu-latest, macos-latest, and windows-latest with Python 3.13
  • Set up Python using actions/setup-python
  • Install PyOctaveBand from PyPI, using a specific version if provided
  • Verify successful import and print the installed package version
.github/workflows/manual_verify_install.yml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link

coderabbitai bot commented Jan 12, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Added a manual "verify install" GitHub Actions workflow; updated the test workflow to a matrix across ubuntu/macos/windows with Python 3.13; and configured the release workflow to ignore README.md and the .github/ directory on push triggers.

Changes

Cohort / File(s) Summary
Manual Verification Workflow
.github/workflows/manual_verify_install.yml
New workflow with workflow_dispatch input version. Runs on ubuntu/macos/windows with Python 3.13, sets up Python, upgrades pip, installs PyOctaveBand (optionally pinned), and verifies import/version.
Testing Infrastructure
.github/workflows/python-app.yml
Converted tests job to a matrix over OS (ubuntu-latest, macos-latest, windows-latest) with Python 3.13; added fail-fast: false; switched to pip install .; updated test result artifact names/paths to include OS and Python.
Release Automation
.github/workflows/release.yml
Added paths-ignore under the push trigger to exclude README.md and changes under .github/ from triggering the release workflow.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐇 In CI fields I nibble and trot,

I spin up runners, give installs a shot.
Ubuntu, macOS, Windows in line,
Pip and imports all pass just fine.
Hooray — the workflows hum and hop!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately reflects the primary change: expanding CI test coverage to macOS and Windows platforms.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ci/cross-platform-tests

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 00c9456 and c1203a9.

📒 Files selected for processing (1)
  • .github/workflows/manual_verify_install.yml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 12, 2026

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
Shell command injection

Description: The workflow_dispatch input inputs.version is interpolated into a Bash run script without
quoting or validation (pip install pyoctaveband==${{ inputs.version }}), which can enable
shell command injection if a user supplies a crafted value containing shell metacharacters
(e.g., 1.2.3; curl ... | bash).
manual_verify_install.yml [25-31]

Referred Code
run: |
  python -m pip install --upgrade pip
  if [ -z "${{ inputs.version }}" ]; then
    pip install pyoctaveband
  else
    pip install pyoctaveband==${{ inputs.version }}
  fi
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

🔴
Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Unvalidated input used: The workflow_dispatch input version is interpolated into a Bash command without
quoting/validation, enabling shell injection via a crafted version string.

Referred Code
if [ -z "${{ inputs.version }}" ]; then
  pip install pyoctaveband
else
  pip install pyoctaveband==${{ inputs.version }}
fi

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location> `.github/workflows/manual_verify_install.yml:24-32` </location>
<code_context>
+        with:
+          python-version: ${{ matrix.python-version }}
+
+      - name: Install PyOctaveBand
+        run: |
+          python -m pip install --upgrade pip
+          if [ -z "${{ inputs.version }}" ]; then
+            pip install pyoctaveband
+          else
+            pip install pyoctaveband==${{ inputs.version }}
+          fi
+        shell: bash
+
+      - name: Verify Import
</code_context>

<issue_to_address>
**suggestion:** The manual install step forces `shell: bash`, which may have different behavior on Windows runners.

On Windows, `shell: bash` runs under Git Bash rather than the default PowerShell, which can change PATH and env behavior compared to typical Windows installs. If you want CI to reflect real user environments per OS, consider using the default shell for each runner (or matrix over `shell`) and expressing the versioned/non-versioned installs as separate `if:`-guarded steps that work across shells.

```suggestion
      - name: Upgrade pip
        run: python -m pip install --upgrade pip

      - name: Install latest PyOctaveBand
        if: ${{ inputs.version == '' }}
        run: pip install pyoctaveband

      - name: Install specific PyOctaveBand version
        if: ${{ inputs.version != '' }}
        run: pip install pyoctaveband==${{ inputs.version }}
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 12, 2026

PR Code Suggestions ✨

Latest suggestions up to 00c9456

CategorySuggestion                                                                                                                                    Impact
Incremental [*]
Narrow ignored GitHub paths

Refine the paths-ignore pattern in the release workflow to avoid ignoring the
entire .github directory. This ensures changes to the release workflow itself
are validated upon merging.

.github/workflows/release.yml [7-9]

 paths-ignore:
   - 'README.md'
-  - '.github/**'
+  - '.github/ISSUE_TEMPLATE/**'
+  - '.github/PULL_REQUEST_TEMPLATE*'
+  - '.github/CODEOWNERS'
  • Apply / Chat
Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies a critical flaw where changes to the release workflow itself would not trigger a run, potentially allowing a broken release process to be merged.

Medium
Possible issue
Use interpreter-scoped pip installs

Replace pip install with python -m pip install in the Install PyOctaveBand step
to ensure the correct Python interpreter is used for installation across all
operating systems.

.github/workflows/manual_verify_install.yml [24-32]

 - name: Install PyOctaveBand
   run: |
     python -m pip install --upgrade pip
     if [ -z "${{ inputs.version }}" ]; then
-      pip install pyoctaveband
+      python -m pip install pyoctaveband
     else
-      pip install pyoctaveband==${{ inputs.version }}
+      python -m pip install pyoctaveband==${{ inputs.version }}
     fi
   shell: bash
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: The suggestion correctly recommends using python -m pip for robustness, which is a best practice to avoid potential PATH issues on different operating systems, making the new multi-OS workflow more reliable.

Medium
Ensure pip targets correct Python

In the Install dependencies step, replace pip install with python -m pip install
to ensure the correct Python environment is used for installing dependencies
across all operating systems.

.github/workflows/python-app.yml [54-59]

 - name: Install dependencies
   run: |
     python -m pip install --upgrade pip
-    pip install -r requirements.txt
-    pip install -r requirements-dev.txt
-    pip install .
+    python -m pip install -r requirements.txt
+    python -m pip install -r requirements-dev.txt
+    python -m pip install .

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 7

__

Why: This suggestion correctly applies the best practice of using python -m pip to ensure dependencies are installed in the correct environment, which is particularly relevant given the PR's expansion to a multi-OS test matrix.

Medium
  • Update

Previous suggestions

✅ Suggestions up to commit dc5a92f
CategorySuggestion                                                                                                                                    Impact
High-level
Restore testing for older Python versions

The PR removes CI testing for Python 3.11 and 3.12. It is recommended to restore
testing for these versions to prevent introducing breaking changes for users on
still-supported Python versions.

Examples:

.github/workflows/python-app.yml [44-46]
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        python-version: ["3.13"]

Solution Walkthrough:

Before:

# .github/workflows/python-app.yml
...
  tests:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        python-version: ["3.13"]
    steps:
      ...

After:

# .github/workflows/python-app.yml
...
  tests:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        python-version: ["3.11", "3.12", "3.13"]
    steps:
      ...
Suggestion importance[1-10]: 9

__

Why: This suggestion correctly identifies a critical regression in the CI strategy where testing for supported Python versions 3.11 and 3.12 was removed, risking future compatibility issues for users.

High
General
Use conditional steps for installation
Suggestion Impact:The workflow was refactored from a single step containing a bash if/else block into multiple declarative steps: one to upgrade pip, one to install the latest version when inputs.version is empty, and one to install a specific version when inputs.version is provided.

code diff:

-      - name: Install PyOctaveBand
-        run: |
-          python -m pip install --upgrade pip
-          if [ -z "${{ inputs.version }}" ]; then
-            pip install pyoctaveband
-          else
-            pip install pyoctaveband==${{ inputs.version }}
-          fi
-        shell: bash
+      - name: Upgrade pip
+        run: python -m pip install --upgrade pip
+
+      - name: Install latest PyOctaveBand
+        if: ${{ inputs.version == '' }}
+        run: pip install pyoctaveband
+
+      - name: Install specific PyOctaveBand version
+        if: ${{ inputs.version != '' }}
+        run: pip install pyoctaveband==${{ inputs.version }}

Replace the bash if/else block with separate, conditional GitHub Actions steps
for package installation. This makes the workflow more declarative and
idiomatic.

.github/workflows/manual_verify_install.yml [24-32]

-- name: Install PyOctaveBand
-  run: |
-    python -m pip install --upgrade pip
-    if [ -z "${{ inputs.version }}" ]; then
-      pip install pyoctaveband
-    else
-      pip install pyoctaveband==${{ inputs.version }}
-    fi
+- name: Upgrade pip
+  run: python -m pip install --upgrade pip
   shell: bash
 
+- name: Install latest PyOctaveBand
+  if: inputs.version == ''
+  run: pip install pyoctaveband
+  shell: bash
+
+- name: Install specific PyOctaveBand version
+  if: inputs.version != ''
+  run: pip install pyoctaveband==${{ inputs.version }}
+  shell: bash
+
Suggestion importance[1-10]: 6

__

Why: This suggestion correctly proposes using step-level if conditions, which is a more idiomatic and declarative approach in GitHub Actions, improving the workflow's readability and maintainability.

Low
Possible issue
Force bash shell for import check

Add shell: bash to the Verify Import step. This ensures consistent command
execution across all operating systems in the test matrix, preventing potential
quoting issues on Windows.

.github/workflows/manual_verify_install.yml [34-35]

 - name: Verify Import
   run: python -c "import pyoctaveband; print('Successfully imported pyoctaveband version:', pyoctaveband.__version__)"
+  shell: bash
Suggestion importance[1-10]: 5

__

Why: The suggestion correctly identifies a potential cross-platform issue on Windows runners and proposes adding shell: bash to ensure consistent behavior, which improves the workflow's robustness.

Low
Possible issue
Ensure coverage file is discoverable

Add path: . to the download-artifact step to ensure the coverage.xml file is
placed in the workspace root, making it discoverable by the Sonar scanner.

.github/workflows/python-app.yml [82-85]

 - name: Download coverage report
   uses: actions/download-artifact@v4
   with:
     name: test-results-ubuntu-latest-3.13
+    path: .
Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies that without a specified path, actions/download-artifact will create a subdirectory, likely causing the Sonar scanner to miss the coverage.xml file. This is a crucial fix for the CI workflow's correctness.

Medium

@github-actions
Copy link
Contributor

CI Results 🚀

Test Summary

Python Version Tests Failures Coverage Status
macos-latest-3.13 75 0 0.0% ✅ Passed
ubuntu-latest-3.13 75 0 0.0% ✅ Passed
windows-latest-3.13 75 0 0.0% ✅ Passed

Technical Benchmark Summary

📊 View Benchmark Details

PyOctaveBand: Technical Benchmark Report

Generated: 2026-01-12 16:54:37

1. Test Signal Parameters

  • Sample Rate: 96.0 kHz
  • Duration: 10.0 seconds
  • Signal Types: White Noise (Stability) / Pure Sine (Precision)
  • Precision: 64-bit Floating Point

2. Crossover (Linkwitz-Riley)

Crossover

  • Flatness Error: 0.000000 dB (Target < 0.01)

3. Precision & Isolation

Precision

Type Error (dB) Isolation Ripple GD Std (ms)
butter 2.46e-03 31.3 dB 0.2705 dB 2847.826
cheby1 3.38e-03 40.5 dB 0.1000 dB 3551.677
cheby2 3.26e-03 57.8 dB 29.4187 dB 4790.013
ellip 9.41e-03 54.2 dB 0.1000 dB 4700.881
bessel 5.20e-01 32.5 dB 5.9845 dB 1380.212

4. Performance

Performance

Channels Exec Time (s) Speedup
1 0.626 1.00x
2 1.228 1.02x
4 2.440 1.03x
8 4.847 1.03x
16 9.738 1.03x

View Full Artifacts

@jmrplens
Copy link
Owner Author

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Jan 12, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.github/workflows/manual_verify_install.yml:
- Around line 11-17: The workflow is missing a permissions block limiting
GITHUB_TOKEN scope; add a minimal permissions section under the
verify-pypi-install job (or at workflow root) that explicitly grants only the
least privileges needed (for this job typically contents: read and packages:
read to allow actions/checkout and package access) so the verify-pypi-install
job’s GITHUB_TOKEN cannot use broader scopes.
🧹 Nitpick comments (1)
.github/workflows/python-app.yml (1)

82-85: Consider documenting the hardcoded artifact dependency.

The artifact name test-results-ubuntu-latest-3.13 creates an implicit coupling with the tests job matrix. If the matrix configuration changes (e.g., Python version updated), this reference must be updated manually.

A comment noting this dependency would help future maintainers.

📝 Suggested documentation
     - name: Download coverage report
       uses: actions/download-artifact@v4
       with:
+        # Must match a valid matrix combination from the 'tests' job
         name: test-results-ubuntu-latest-3.13
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 446a667 and 00c9456.

📒 Files selected for processing (3)
  • .github/workflows/manual_verify_install.yml
  • .github/workflows/python-app.yml
  • .github/workflows/release.yml
🧰 Additional context used
🪛 GitHub Check: CodeQL
.github/workflows/manual_verify_install.yml

[warning] 13-35: Workflow does not contain permissions
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {{contents: read}}

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: pr-comment
  • GitHub Check: Sourcery review
🔇 Additional comments (6)
.github/workflows/release.yml (1)

7-9: LGTM!

The paths-ignore configuration correctly prevents release triggers for documentation and CI configuration changes while preserving the workflow_dispatch option for manual releases.

.github/workflows/manual_verify_install.yml (2)

24-32: LGTM!

The explicit shell: bash ensures the conditional logic works consistently across all three operating systems.


34-35: LGTM!

The Python command is cross-platform compatible and doesn't require an explicit shell specification.

.github/workflows/python-app.yml (3)

38-46: LGTM!

The matrix strategy with fail-fast: false ensures comprehensive cross-platform test coverage. All OS/Python combinations will run to completion even if one fails, providing complete visibility into platform-specific issues.


59-59: LGTM!

Switching from editable install to standard install is appropriate for cross-platform testing. Editable installs are retained in the quality and pr-comment jobs which run exclusively on Ubuntu.


64-71: LGTM!

The artifact naming convention properly differentiates test results by OS and Python version, enabling clear identification of platform-specific results.

@github-actions
Copy link
Contributor

CI Results 🚀

Test Summary

Python Version Tests Failures Coverage Status
macos-latest-3.13 75 0 0.0% ✅ Passed
ubuntu-latest-3.13 75 0 0.0% ✅ Passed
windows-latest-3.13 75 0 0.0% ✅ Passed

Technical Benchmark Summary

📊 View Benchmark Details

PyOctaveBand: Technical Benchmark Report

Generated: 2026-01-12 17:02:10

1. Test Signal Parameters

  • Sample Rate: 96.0 kHz
  • Duration: 10.0 seconds
  • Signal Types: White Noise (Stability) / Pure Sine (Precision)
  • Precision: 64-bit Floating Point

2. Crossover (Linkwitz-Riley)

Crossover

  • Flatness Error: 0.000000 dB (Target < 0.01)

3. Precision & Isolation

Precision

Type Error (dB) Isolation Ripple GD Std (ms)
butter 2.46e-03 31.3 dB 0.2705 dB 2847.826
cheby1 3.38e-03 40.5 dB 0.1000 dB 3551.677
cheby2 3.26e-03 57.8 dB 29.4187 dB 4790.013
ellip 9.41e-03 54.2 dB 0.1000 dB 4700.881
bessel 5.20e-01 32.5 dB 5.9845 dB 1380.212

4. Performance

Performance

Channels Exec Time (s) Speedup
1 0.772 1.00x
2 1.514 1.02x
4 2.997 1.03x
8 5.995 1.03x
16 12.018 1.03x

View Full Artifacts

@jmrplens jmrplens merged commit 9189b72 into main Jan 12, 2026
11 of 12 checks passed
@sonarqubecloud
Copy link

@github-actions
Copy link
Contributor

CI Results 🚀

Test Summary

Python Version Tests Failures Coverage Status
macos-latest-3.13 75 0 0.0% ✅ Passed
ubuntu-latest-3.13 75 0 0.0% ✅ Passed
windows-latest-3.13 75 0 0.0% ✅ Passed

Technical Benchmark Summary

📊 View Benchmark Details

PyOctaveBand: Technical Benchmark Report

Generated: 2026-01-12 17:34:21

1. Test Signal Parameters

  • Sample Rate: 96.0 kHz
  • Duration: 10.0 seconds
  • Signal Types: White Noise (Stability) / Pure Sine (Precision)
  • Precision: 64-bit Floating Point

2. Crossover (Linkwitz-Riley)

Crossover

  • Flatness Error: 0.000000 dB (Target < 0.01)

3. Precision & Isolation

Precision

Type Error (dB) Isolation Ripple GD Std (ms)
butter 2.46e-03 31.3 dB 0.2705 dB 2847.826
cheby1 3.38e-03 40.5 dB 0.1000 dB 3551.677
cheby2 3.26e-03 57.8 dB 29.4187 dB 4790.013
ellip 9.41e-03 54.2 dB 0.1000 dB 4700.881
bessel 5.20e-01 32.5 dB 5.9845 dB 1380.212

4. Performance

Performance

Channels Exec Time (s) Speedup
1 0.625 1.00x
2 1.226 1.02x
4 2.443 1.02x
8 4.846 1.03x
16 9.749 1.03x

View Full Artifacts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant