mosaic-zero / tests /README.md
copilot-swe-agent[bot]
Add comprehensive unit tests for mosaic package
8f383ed

A newer version of the Gradio SDK is available: 6.5.1

Upgrade

Mosaic Unit Tests

This directory contains comprehensive unit tests for the Mosaic package.

Running Tests

To run all tests:

pytest tests/

To run tests with coverage report:

pytest tests/ --cov=src/mosaic --cov-report=term-missing

To run a specific test file:

pytest tests/inference/test_data.py -v

Test Structure

  • tests/inference/ - Tests for inference modules
    • test_data.py - Tests for data structures and datasets
    • test_aeon.py - Tests for Aeon inference module
    • test_paladin.py - Tests for Paladin inference module
  • tests/test_gradio_app.py - Tests for Gradio application utilities
  • tests/conftest.py - Pytest configuration and fixtures

Test Coverage

Current test coverage includes:

Data Module (mosaic.inference.data)

  • βœ… Cancer type mapping constants
  • βœ… SiteType enum
  • βœ… TileFeatureTensorDataset class
    • Dataset initialization
    • Feature padding and truncation
    • Data type conversions
    • Site type handling

Aeon Module (mosaic.inference.aeon)

  • βœ… Module constants
  • βœ… Cancer type indices

Paladin Module (mosaic.inference.paladin)

  • βœ… Model map loading
  • βœ… Aeon score loading
  • βœ… Cancer subtype selection
  • βœ… Logits to point estimates conversion
  • βœ… UsageError exception

Gradio App Module (mosaic.gradio_app)

  • βœ… Constants (IHC subtypes, settings columns)
  • βœ… Settings loading and validation
  • βœ… Oncotree code name retrieval
  • βœ… CSV export functionality

Notes

  • Tests use mocking for external dependencies (e.g., mussel models, network requests)
  • Some tests require pytest-mock for mocking functionality
  • Tests are designed to run without requiring full model downloads or GPU access