Beispiel #1
0
    def check_difference(self,
                         cv1,
                         cv2,
                         expected_difference,
                         diff_function):
        """
        Checks the difference between the given count vectors through a
        given difference function.

        :param cv1:                 List of counts to put in the first CV.
        :param cv2:                 List of counts to put in the second CV.
        :param expected_difference: The expected difference value.
        :param diff_function:       The name of the member function to check
                                    (string).
        """
        # Create empty CountVector objects
        count_vector1 = CountVector("", [lambda: False for i in cv1])
        count_vector2 = CountVector("", [lambda: False for i in cv2])
        # Manually hack in the test values
        count_vector1.count_vector = cv1
        count_vector2.count_vector = cv2

        self.assertEqual(getattr(count_vector1, diff_function)(count_vector2),
                         expected_difference,
                         "Difference value for vectors {} and {} doesnt match"
                         ".".format(cv1, cv2))
        self.assertEqual(getattr(count_vector2, diff_function)(count_vector1),
                         expected_difference,
                         "The difference operation is not symmetric.")
Beispiel #2
0
 def test_conversions(self):
     uut = CountVector("varname",
                       [lambda cursor, stack: cursor and stack],
                       [2])
     uut.count_reference(True, True)
     self.assertEqual(str(uut), "[2]")
     self.assertEqual(list(uut), [2])
Beispiel #3
0
 def test_abs(self):
     uut = CountVector("varname",
                       [lambda x: True, lambda x: x])
     self.assertEqual(abs(uut), 0)
     uut.count_reference(True)
     self.assertEqual(abs(uut), sqrt(2))
     uut.count_reference(False)
     self.assertEqual(abs(uut), sqrt(5))
Beispiel #4
0
 def test_counting(self):
     uut = CountVector("varname", [lambda cursor, stack: cursor and stack])
     self.assertEqual(uut.count_vector, [0])
     uut.count_reference(True, True)
     self.assertEqual(uut.count_vector, [1])
     uut.count_reference(True, False)
     self.assertEqual(uut.count_vector, [1])
     self.assertEqual(uut.unweighted, [1])
Beispiel #5
0
 def test_cloning(self):
     uut = CountVector("varname",
                       [lambda cursor, stack: cursor and stack],
                       [2])
     uut.count_reference(True, True)
     clone = uut.create_null_vector("test")
     self.assertEqual(clone.name, "test")
     self.assertEqual(clone.weightings, uut.weightings)
     self.assertEqual(clone.conditions, uut.conditions)
     self.assertEqual(clone.count_vector, [0])