def test_sample_has_correct_shape(self): mapper = mapping.PeakMapper("test", n_peaks=3, atom_names=["N", "H"]) state = mapper.get_initial_state() trial_state = mapper.sample(state) self.assertEqual(trial_state.shape[0], 3)
def test_extract_value_should_fail_with_map_name_mismatch(self): mapper = mapping.PeakMapper("test", n_peaks=10, atom_names=["N", "H"]) m = mapping.PeakMapping(map_name="fail", peak_id=0, atom_name="H") state = mapper.get_initial_state() with self.assertRaises(KeyError): mapper.extract_value(m, state)
def test_atom_groups_length_should_match(self): mapper = mapping.PeakMapper("test", n_peaks=10, atom_names=["N", "H"]) mapper.add_atom_group(N=AtomIndex(0), H=AtomIndex(1)) mapper.add_atom_group(N=AtomIndex(2), H=AtomIndex(3)) mapper.add_atom_group(N=AtomIndex(4), H=AtomIndex(5)) self.assertEqual(mapper.n_atom_groups, 3)
def test_extract_value_should_return_not_mapped(self): mapper = mapping.PeakMapper("test", n_peaks=3, atom_names=["N", "H"]) mapper.add_atom_group(N=AtomIndex(0), H=AtomIndex(1)) state = mapper.get_initial_state() val1 = mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=0, atom_name="N"), state) val2 = mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=0, atom_name="H"), state) val3 = mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=1, atom_name="N"), state) val4 = mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=1, atom_name="H"), state) val5 = mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=2, atom_name="N"), state) val6 = mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=2, atom_name="H"), state) # We have 3 peaks, but only one atom group, so only one peak will # map to something. With the default initialization, this will be # the first peak. self.assertEqual(val1, 0) self.assertEqual(val2, 1) self.assertIsInstance(val3, mapping.NotMapped) self.assertIsInstance(val4, mapping.NotMapped) self.assertIsInstance(val5, mapping.NotMapped) self.assertIsInstance(val6, mapping.NotMapped)
def test_initial_state_should_have_correct_size(self): mapper1 = mapping.PeakMapper("test", n_peaks=3, atom_names=["N", "H"]) mapper1.add_atom_group(N=AtomIndex(0), H=AtomIndex(1)) # mapper1 has 3 peaks, but 1 atom_group # Initial state should have the size of max of these two, # so it should be 3 self.assertEqual(mapper1.get_initial_state().shape[0], 3) mapper2 = mapping.PeakMapper("test", n_peaks=1, atom_names=["N", "H"]) mapper2.add_atom_group(N=AtomIndex(0), H=AtomIndex(1)) mapper2.add_atom_group(N=AtomIndex(2), H=AtomIndex(3)) mapper2.add_atom_group(N=AtomIndex(4), H=AtomIndex(5)) # mapper2 has 1 peak, but 3 atom_group # Initial state should have the size of max of these two, # so it should be 3 self.assertEqual(mapper2.get_initial_state().shape[0], 3)
def test_get_atom_mapping_should_raise_with_bad_peak_id(self): mapper = mapping.PeakMapper("test", n_peaks=10, atom_names=["N", "H"]) with self.assertRaises(KeyError): # no peak_id 10 mapper.get_mapping(peak_id=10, atom_name="H") with self.assertRaises(KeyError): # peak_id -1 is bad mapper.get_mapping(peak_id=-1, atom_name="H")
def test_extract_value_should_raise_with_illegal_peak_id(self): mapper = mapping.PeakMapper("test", n_peaks=1, atom_names=["N", "H"]) mapper.add_atom_group(N=AtomIndex(0), H=AtomIndex(1)) mapper.add_atom_group(N=AtomIndex(2), H=AtomIndex(3)) mapper.add_atom_group(N=AtomIndex(4), H=AtomIndex(5)) state = mapper.get_initial_state() with self.assertRaises(KeyError): mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=1, atom_name="H"), state)
def test_extract_value_should_give_correct_indices_with_equal_length(self): mapper = mapping.PeakMapper("test", n_peaks=3, atom_names=["N", "H"]) mapper.add_atom_group(N=AtomIndex(0), H=AtomIndex(1)) mapper.add_atom_group(N=AtomIndex(2), H=AtomIndex(3)) mapper.add_atom_group(N=AtomIndex(4), H=AtomIndex(5)) state = mapper.get_initial_state() self.assertEqual( mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=0, atom_name="N"), state), 0, ) self.assertEqual( mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=0, atom_name="H"), state), 1, ) self.assertEqual( mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=1, atom_name="N"), state), 2, ) self.assertEqual( mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=1, atom_name="H"), state), 3, ) self.assertEqual( mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=2, atom_name="N"), state), 4, ) self.assertEqual( mapper.extract_value( mapping.PeakMapping(map_name="test", peak_id=2, atom_name="H"), state), 5, )
def test_should_raise_with_negative_n_peeaks(self): with self.assertRaises(ValueError): mapping.PeakMapper("test", n_peaks=-1, atom_names=["N", "H"])
def test_get_atom_mapping_should_have_correct_atom_name(self): mapper = mapping.PeakMapper("test", n_peaks=10, atom_names=["N", "H"]) m = mapper.get_mapping(peak_id=0, atom_name="N") self.assertEqual(m.atom_name, "N")
def test_get_atom_mapping_should_raise_with_name(self): mapper = mapping.PeakMapper("test", n_peaks=10, atom_names=["N", "H"]) with self.assertRaises(KeyError): # no name Q mapper.get_mapping(peak_id=0, atom_name="Q")
def test_should_raise_with_non_atom_index(self): mapper = mapping.PeakMapper("test", n_peaks=10, atom_names=["N", "H"]) with self.assertRaises(ValueError): mapper.add_atom_group(N=0, H=AtomIndex(1))
def test_add_atom_group_should_fail_with_mismatch(self): mapper = mapping.PeakMapper("test", n_peaks=10, atom_names=["N", "H"]) with self.assertRaises(KeyError): # no Q mapper.add_atom_group(N=AtomIndex(0), Q=AtomIndex(1))