Esempio n. 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)]])
Esempio n. 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)]
         ])
Esempio n. 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))
Esempio n. 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)]
         ]
     )
Esempio n. 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
Esempio n. 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
Esempio n. 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))
Esempio n. 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)]])
Esempio n. 9
0
 def test_single_term(self):
     self.assertEquals([[("A", 1)]], utils.parse_label_vector("A"))
Esempio n. 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")
Esempio n. 11
0
 def test_remove_irrelevant_terms(self):
     self.assertEquals([[("A", 2)]], utils.parse_label_vector("A^2 + B^0"))
Esempio n. 12
0
 def test_sum_negative_terms(self):
     self.assertEquals([[("A", -7)]],
                       utils.parse_label_vector("A^-3 * A^-4"))
Esempio n. 13
0
 def test_sum_negative_terms(self):
     self.assertEquals([[("A", -7)]], utils.parse_label_vector("A^-3 * A^-4"))
Esempio n. 14
0
 def test_single_term_explicit_float_negative(self):
     self.assertEquals([[("A", -1.5)]], utils.parse_label_vector("A^-1.5"))
Esempio n. 15
0
 def test_remove_irrelevant_terms(self):
     self.assertEquals([[("A", 2)]], utils.parse_label_vector("A^2 + B^0"))
Esempio n. 16
0
 def test_sum_terms(self):
     self.assertEquals([[("A", 5)]], utils.parse_label_vector("A^3 * A^2"))
Esempio n. 17
0
 def test_no_genuine_term(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^0")
Esempio n. 18
0
 def test_single_term_explicit_float_negative(self):
     self.assertEquals([[("A", -1.5)]], utils.parse_label_vector("A^-1.5"))
Esempio n. 19
0
 def test_single_term_explicit_float(self):
     self.assertEquals([[("A", 1.2)]], utils.parse_label_vector("A^1.2"))
Esempio n. 20
0
 def test_single_term(self):
     self.assertEquals([[("A", 1)]], utils.parse_label_vector("A"))
Esempio n. 21
0
 def test_invalid_powers(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^B")
Esempio n. 22
0
 def test_single_term_explicit_float(self):
     self.assertEquals([[("A", 1.2)]], utils.parse_label_vector("A^1.2"))
Esempio n. 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"))
Esempio n. 24
0
 def test_no_genuine_term(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^0")
Esempio n. 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")
Esempio n. 26
0
 def test_sum_terms(self):
     self.assertEquals([[("A", 5)]], utils.parse_label_vector("A^3 * A^2"))
Esempio n. 27
0
 def test_nan_powers(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^nan")
Esempio n. 28
0
 def test_ignore_irrelevant_terms(self):        
     self.assertEquals([[("A", 3)]], utils.parse_label_vector("A^3 * B^0"))
Esempio n. 29
0
 def test_nan_powers(self):
     with self.assertRaises(ValueError):
         utils.parse_label_vector("A^nan")