def test_no_match(self): """ Test limit situations where no harmonization should happen """ # model provided does not convert from the native magnitude scale for measure in self.measures: measure.scale = "fake scale" h = Harmoniser(target_scale=self.target_scale) h.add_conversion_formula_from_model(self.a_model) converted, unconverted = h.harmonise(self.measures) self.assertEqual(0, len(converted)) self.assertEqual(self.number_of_measures, len(unconverted)) # no model are provided h = Harmoniser(target_scale=self.target_scale) converted, unconverted = h.harmonise(self.measures) self.assertEqual(0, len(converted)) self.assertEqual(self.number_of_measures, len(unconverted)) # no model matches the target scale h = Harmoniser(target_scale="wrong scale") h.add_conversion_formula_from_model(self.a_model) converted, unconverted = h.harmonise(self.measures) self.assertEqual(0, len(converted)) self.assertEqual(self.number_of_measures, len(unconverted))
def test_disallow_trivial_conversion(self): h = Harmoniser(target_scale=self.target_scale) h.add_conversion_formula_from_model(self.a_model) h.add_conversion_formula_from_model(self.ya_model) converted, unconverted = h.harmonise(self.measures, allow_trivial_conversion=False) self.assertConversion(converted, 20, unconverted, 10)
def test_more_model(self): h = Harmoniser(target_scale=self.target_scale) h.add_conversion_formula_from_model(self.a_model) h.add_conversion_formula_from_model(self.ya_model) converted, unconverted = h.harmonise(self.measures) self.assertConversion(converted, self.number_of_measures, unconverted, 0)
def test_disallow_trivial_conversion(self): h = Harmoniser(target_scale=self.target_scale) h.add_conversion_formula_from_model(self.a_model, C(scale=self.a_native_scale)) h.add_conversion_formula_from_model(self.ya_model, C(scale=self.ya_native_scale)) result = h.harmonise(self.measures, allow_trivial_conversion=False) self.assertConversion(result, 20, 10)
def test_more_model(self): h = Harmoniser(target_scale=self.target_scale) h.add_conversion_formula_from_model(self.a_model, C(scale=self.a_native_scale)) h.add_conversion_formula_from_model(self.ya_model, C(scale=self.ya_native_scale)) result = h.harmonise(self.measures) self.assertConversion(result, self.number_of_measures, 0)
def test_one_model(self): """ Test with one model. Given a target scale, a list of measures (in a single magnitude scales), and an empirical magnitude scaling relationship (between a native scale mb and the considered target scale), an Harmoniser should convert to the target scale only the measure in that native scale """ mismatches = self.number_of_measures / 3 h = Harmoniser(target_scale=self.target_scale) h.add_conversion_formula_from_model(self.a_model) converted, unconverted = h.harmonise(self.measures) self.assertConversion(converted, self.number_of_measures - mismatches, unconverted, mismatches)