def test_compute_structured_pathway_abundance_or_coverage_test_coverage_missing_optional_reaction( self): """ Test the compute_structured_pathway_abundance_or_coverage function for a simple structure with coverage Test the PathwaysDatabase add and get pathway structure along with key reactions Test with an optional reaction missing """ # Create the database structure pathways_database_store = store.PathwaysDatabase() structure_string = " A -B C " pathways_database_store.add_pathway_structure("pathway1", structure_string) reaction_scores = {"A": 1, "B": 0, "C": 3} structure = pathways_database_store.get_structure_for_pathway( "pathway1") key_reactions = pathways_database_store.get_key_reactions_for_pathway( "pathway1") median = 1 # Compute the coverage coverage = modules.compute_structured_pathway_abundance_or_coverage( structure, key_reactions, reaction_scores, True, median) # Compute the expected coverage which is the harmonic mean of the chi2cdf for the required reactions del reaction_scores["B"] expected_coverage = modules.harmonic_mean( [chi2cdf.chi2cdf(v, median) for v in reaction_scores.values()]) self.assertEqual(coverage, expected_coverage)
def test_harmonic_mean_empty_list(self): """ Test the harmonmic mean function with an empty list """ result=modules.harmonic_mean([]) expect_result=0 self.assertEqual(result, expect_result)
def test_harmonic_mean_one_zero(self): """ Test the harmonmic mean function with a set of values with on zero """ result=modules.harmonic_mean([1,2,3,0,4]) expect_result=0 self.assertEqual(result, expect_result)
def test_harmonic_mean(self): """ Test the harmonmic mean function """ values=[1,2,3,4] result=modules.harmonic_mean(values) expect_result=len(values)/sum(1.0/v for v in values) self.assertEqual(result, expect_result)