This directory contains a comprehensive suite of unit tests for the Cassiopeia project, which is a framework for phylogenetic analysis and lineage tracing. The tests cover various modules and functionalities of the project, including data handling, preprocessing, simulation, solving algorithms, plotting, and utility functions.
The test suite verifies the correctness and reliability of Cassiopeia’s core functionalities:
Data handling: Tests for character matrices, tree topologies, and data structures used in phylogenetic analysis.
Preprocessing: Validates sequence alignment, allele calling, lineage group assignment, and UMI collapsing.
Simulation: Ensures correct functionality of various simulators for tree generation and spatial data.
Solving algorithms: Tests different phylogenetic tree reconstruction methods, including Neighbor Joining, ILP, Greedy, and Spectral solvers.
Plotting: Verifies 2D and 3D plotting capabilities, including integration with iTOL for online visualization.
Utility functions: Tests helper functions for tasks like dissimilarity calculations and parameter estimation.
These tests help maintain the integrity of the Cassiopeia framework, ensuring that researchers can rely on its results for lineage tracing and phylogenetic analyses.
Most tests use in-memory configurations or sample data created within the test methods. Some specific configurations include:
iTOL plotting tests may require a configuration file (~/.itolconfig) for credentials.
Some tests use random seeds for reproducibility.
CCPhylo tests check for a config.ini file and a ccphylo_path setting.
ILP solver tests may be skipped if Gurobi is not installed.
Overall, this comprehensive test suite ensures the reliability and accuracy of the Cassiopeia framework across its various modules and functionalities.