def test_different_configs(self): h**o = Homogeniser("mb", "MS") h**o.set_criteria(C(agency__in=["ISC", "BJI"])) h**o.set_selector(selection.Precise) h**o.add_model(LinearModel) self._plot_and_assert(h**o, 'first') h**o.set_criteria(C(before=datetime.now())) ranking = {"ML": ["ISC", "IDC"], "mb": ["ISC", "FUNV"]} h**o.set_selector(selection.AgencyRanking, ranking=ranking) h**o.set_scales("ML", "mb") h**o.add_model(PolynomialModel, order=2) self._plot_and_assert(h**o, 'second') h**o.set_criteria( C(between=(datetime(2010, 2, 28, 4, 11), datetime.now())) & C(agency__in=["NIED", "IDC"]) & C(scale__in=["ML", "mb"])) h**o.set_selector(selection.Precise) h**o.set_missing_uncertainty_strategy(selection.MUSSetDefault, default=0.2) h**o.reset_models() h**o.add_model(LinearModel) h**o.add_model(PolynomialModel, order=3) self._plot_and_assert(h**o, 'fourth') polygon = 'POLYGON((127.40 30.24, 144.36 49.96, 150.22 34.78))' h**o.set_criteria(C(within_polygon=polygon)) h**o.set_missing_uncertainty_strategy(selection.MUSSetEventMaximum) self._plot_and_assert(h**o, 'third') point = 'POINT(138.80 33.80)' distance = 10000000 h**o.set_criteria(C(within_distance_from_point=[point, distance])) h**o.set_missing_uncertainty_strategy(selection.MUSDiscard) self._plot_and_assert(h**o, 'fifth')
class AnHomogeniserShould(unittest.TestCase): def setUp(self): # we can not load the fixtures once, because the MUSSetDefault # is not readonly load_catalog() self.homogeniser = Homogeniser() self.homogeniser.set_scales(native="mb", target="MS") self.i = 0 def _write_and_check(self): self.homogeniser.serialize(ACTUAL_OUTPUT[self.i]) self.assertTrue(path.exists(in_data_dir(ACTUAL_OUTPUT[self.i]))) self.i = self.i + 1 def test_homogenise_easily(self): self.homogeniser.add_model(LinearModel) self.homogeniser.add_model(PolynomialModel, order=2) self._write_and_check() def test_homogenise_different_scales(self): self.homogeniser.set_criteria() self.homogeniser.set_scales(native="mb", target="MS") self.homogeniser.set_missing_uncertainty_strategy( selection.MUSSetDefault, default=0.2) self.homogeniser.add_model(LinearModel) self._write_and_check() def test_filter(self): self.homogeniser.set_criteria( C(agency__in=["ISC", "GCMT"]) & C(magnitude__gt=5.5)) self.assertEqual(7, len(self.homogeniser.measures())) self.assertEqual(set([ "Event 14342120 from EventSource ISC Bulletin", "Event 17273456 from EventSource ISC Bulletin", "Event 14357818 from EventSource ISC Bulletin"]), set([str(e) for e in self.homogeniser.events()])) self.assertEqual(set([u'17273456', u'14342120', u'14357818']), set(self.homogeniser.grouped_measures().keys())) self.homogeniser.set_criteria(C(scale__in=["Mw", "mb"])) self.assertEqual(17, len(self.homogeniser.events())) self.assertEqual(97, len(self.homogeniser.measures())) self.assertEqual(17, len(self.homogeniser.grouped_measures().keys())) self.assertEqual(0, len(self.homogeniser.selected_native_measures())) def test_set_different_mus(self): self.homogeniser.set_scales(native="mb", target="Mw") self.assertEqual(18, len(self.homogeniser.events())) self.assertEqual(334, len(self.homogeniser.measures())) self.assertEqual(18, len(self.homogeniser.grouped_measures().keys())) self.assertEqual(0, len(self.homogeniser.selected_native_measures())) self.homogeniser.set_missing_uncertainty_strategy( selection.MUSSetDefault, default=1) self.assertEqual(18, len(self.homogeniser.events())) self.assertEqual(334, len(self.homogeniser.measures())) self.assertEqual(18, len(self.homogeniser.grouped_measures().keys())) self.assertEqual(1, len(self.homogeniser.selected_native_measures())) def test_group_differently(self): self.assertEqual(18, len(self.homogeniser.grouped_measures().keys())) self.homogeniser.set_grouper( grouping.GroupMeasuresByHierarchicalClustering, args={'t': 1000}) self.assertEqual(14, len(self.homogeniser.grouped_measures().keys())) def test_select_differently(self): self.homogeniser.set_selector(selection.AgencyRanking, ranking={'mb': ['ISC']}) self.assertEqual(14, len(self.homogeniser.selected_native_measures())) self.homogeniser.set_selector(selection.Precise) self.assertEqual(14, len(self.homogeniser.selected_native_measures())) def test_homogenise_after_different_setup_sequences_1(self): self.homogeniser.set_scales(native="MS", target="MW") self.homogeniser.set_criteria(C(magnitude__gt=4)) self.homogeniser.set_grouper( grouping.GroupMeasuresByHierarchicalClustering, args={'t': 100}) self.homogeniser.set_selector(selection.Precise) self.homogeniser.set_missing_uncertainty_strategy( selection.MUSSetDefault, default=1) self.assertTrue(len(self.homogeniser.selected_native_measures()) > 1) self.assertTrue(len(self.homogeniser.selected_target_measures()) > 1) self.homogeniser.add_model(LinearModel) self._write_and_check() def test_homogenise_after_different_setup_sequences_2(self): self.homogeniser.set_scales(native="MS", target="MW") self.homogeniser.set_grouper( grouping.GroupMeasuresByHierarchicalClustering, args={'t': 100}) self.homogeniser.set_criteria(C(magnitude__gt=4)) self.homogeniser.set_selector(selection.Precise) self.homogeniser.set_missing_uncertainty_strategy( selection.MUSSetDefault, default=1) self.assertTrue(len(self.homogeniser.selected_native_measures()) > 1) self.assertTrue(len(self.homogeniser.selected_target_measures()) > 1) self.homogeniser.add_model(LinearModel) self._write_and_check() def tearDown(self): models.CatalogueDatabase().session.commit()