Beispiel #1
0
 def test_complex_parse(self):
     self.assertEquals(
         utils.parse_label_vector(
             "A^4 + B^4*C^3 + D^2 *E * F^1 + G^4.3*H + J^0*G^6 * G^-6"),
         [[("A", 4)], [("B", 4),
                       ("C", 3)], [("D", 2), ("E", 1),
                                   ("F", 1)], [("G", 4.3), ("H", 1)]])
Beispiel #2
0
 def test_parsing_with_columns(self):
     self.assertEquals(utils.parse_label_vector("A + B^2 + C^3 + A*B",
         columns=["C", "A", "B"]),
         [
             [(1, 1)],
             [(2, 2)],
             [(0, 3)],
             [(1, 1), (2, 1)]
         ])
Beispiel #3
0
 def test_valid_label_vector(self):
     label_vector = [
         [("A", 4)],
         [("B", 4), ("C", 3)],
         [("D", 2), ("E", 1), ("F", 1)],
         [("G", 4.3), ("H", 1)]
     ]
     self.assertTrue(utils.is_structured_label_vector(label_vector))
     self.assertEquals(label_vector, utils.parse_label_vector(label_vector))
Beispiel #4
0
 def test_complex_parse(self):
     self.assertEquals(utils.parse_label_vector(
         "A^4 + B^4*C^3 + D^2 *E * F^1 + G^4.3*H + J^0*G^6 * G^-6"),
         [
             [("A", 4)],
             [("B", 4), ("C", 3)],
             [("D", 2), ("E", 1), ("F", 1)],
             [("G", 4.3), ("H", 1)]
         ]
     )
Beispiel #5
0
    def test_set_label_vector(self):
        m = self.get_model()
        label_vector = "A + B + C + D + E"

        m.label_vector = label_vector
        self.assertEqual(m.label_vector, utils.parse_label_vector(label_vector))
        self.assertEqual("1 + A + B + C + D + E", m.human_readable_label_vector)

        with self.assertRaises(ValueError):
            m.label_vector = "A + G"

        m.label_vector = None
        self.assertIsNone(m.label_vector)

        for item in (True, False, 0, 1.0):
            with self.assertRaises(TypeError):
                m.label_vector = item
Beispiel #6
0
    def test_set_label_vector(self):
        m = self.get_model()
        label_vector = "A + B + C + D + E"

        m.label_vector = label_vector
        self.assertEqual(m.label_vector,
                         utils.parse_label_vector(label_vector))
        self.assertEqual("1 + A + B + C + D + E",
                         m.human_readable_label_vector)

        with self.assertRaises(ValueError):
            m.label_vector = "A + G"

        m.label_vector = None
        self.assertIsNone(m.label_vector)

        for item in (True, False, 0, 1.0):
            with self.assertRaises(TypeError):
                m.label_vector = item
Beispiel #7
0
 def test_valid_label_vector(self):
     label_vector = [[("A", 4)], [("B", 4), ("C", 3)],
                     [("D", 2), ("E", 1), ("F", 1)], [("G", 4.3), ("H", 1)]]
     self.assertTrue(utils.is_structured_label_vector(label_vector))
     self.assertEquals(label_vector, utils.parse_label_vector(label_vector))
Beispiel #8
0
 def test_parsing_with_columns(self):
     self.assertEquals(
         utils.parse_label_vector("A + B^2 + C^3 + A*B",
                                  columns=["C", "A", "B"]),
         [[(1, 1)], [(2, 2)], [(0, 3)], [(1, 1), (2, 1)]])
Beispiel #9
0
 def test_single_term(self):
     self.assertEquals([[("A", 1)]], utils.parse_label_vector("A"))
Beispiel #10
0
    def test_infinte_powers(self): # Ha!
        with self.assertRaises(ValueError):
            utils.parse_label_vector("A^inf")

        with self.assertRaises(ValueError):
            utils.parse_label_vector("A^-inf")
Beispiel #11
0
 def test_remove_irrelevant_terms(self):
     self.assertEquals([[("A", 2)]], utils.parse_label_vector("A^2 + B^0"))
Beispiel #12
0
 def test_sum_negative_terms(self):
     self.assertEquals([[("A", -7)]],
                       utils.parse_label_vector("A^-3 * A^-4"))
Beispiel #13
0
 def test_sum_negative_terms(self):
     self.assertEquals([[("A", -7)]], utils.parse_label_vector("A^-3 * A^-4"))
Beispiel #14
0
 def test_single_term_explicit_float_negative(self):
     self.assertEquals([[("A", -1.5)]], utils.parse_label_vector("A^-1.5"))
Beispiel #15
0
 def test_remove_irrelevant_terms(self):
     self.assertEquals([[("A", 2)]], utils.parse_label_vector("A^2 + B^0"))
Beispiel #16
0
 def test_sum_terms(self):
     self.assertEquals([[("A", 5)]], utils.parse_label_vector("A^3 * A^2"))
Beispiel #17
0
 def test_no_genuine_term(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^0")
Beispiel #18
0
 def test_single_term_explicit_float_negative(self):
     self.assertEquals([[("A", -1.5)]], utils.parse_label_vector("A^-1.5"))
Beispiel #19
0
 def test_single_term_explicit_float(self):
     self.assertEquals([[("A", 1.2)]], utils.parse_label_vector("A^1.2"))
Beispiel #20
0
 def test_single_term(self):
     self.assertEquals([[("A", 1)]], utils.parse_label_vector("A"))
Beispiel #21
0
 def test_invalid_powers(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^B")
Beispiel #22
0
 def test_single_term_explicit_float(self):
     self.assertEquals([[("A", 1.2)]], utils.parse_label_vector("A^1.2"))
Beispiel #23
0
 def test_parse_mixed_cross_terms(self):
     self.assertEquals([[("A", 2.0), ("B", -4.23), ("C", 1)]],
         utils.parse_label_vector("A^2.0 * B^-4.23 * C"))
Beispiel #24
0
 def test_no_genuine_term(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^0")
Beispiel #25
0
    def test_infinte_powers(self):  # Ha!
        with self.assertRaises(ValueError):
            utils.parse_label_vector("A^inf")

        with self.assertRaises(ValueError):
            utils.parse_label_vector("A^-inf")
Beispiel #26
0
 def test_sum_terms(self):
     self.assertEquals([[("A", 5)]], utils.parse_label_vector("A^3 * A^2"))
Beispiel #27
0
 def test_nan_powers(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^nan")
Beispiel #28
0
 def test_ignore_irrelevant_terms(self):        
     self.assertEquals([[("A", 3)]], utils.parse_label_vector("A^3 * B^0"))
Beispiel #29
0
 def test_nan_powers(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^nan")