Example #1
0
 def setUp(self):
     # Probamos con el triangulo:
     # (0,0) (20,0) (10,1)
     self.function = TriangularFunction(
         Point(0, 0),
         Point(20, 0),
         Point(10, 1)
     )
Example #2
0
class TriangularTests(unittest.TestCase):
    def setUp(self):
        # Probamos con el triangulo:
        # (0,0) (20,0) (10,1)
        self.function = TriangularFunction(
            Point(0, 0),
            Point(20, 0),
            Point(10, 1)
        )

    def test_evaluate_equal_to_A(self):
        self.assertEqual(self.function.evaluate(0), 0)

    def test_evaluate_equal_to_B(self):
        self.assertEqual(self.function.evaluate(20), 0)

    def test_evaluate_lower_than_A(self):
        self.assertEqual(self.function.evaluate(-1), 0)

    def test_evaluate_greather_than_B(self):
        self.assertEqual(self.function.evaluate(21), 0)

    def test_evaluate_between_A_C(self):
        self.assertEqual(self.function.evaluate(5), 0.5)

    def test_evaluate_between_C_B(self):
        self.assertEqual(self.function.evaluate(15), 0.5)

    def test_evaluate_in_the_middle(self):
        self.assertEqual(self.function.evaluate(10), 1)

    def test_truncate_middle(self):
        func = self.function.truncate(0.5)
        self.assertIsInstance(func, TrapezoidalFunction)
        self.assertEqual(func.a, self.function.a)
        self.assertEqual(func.b, self.function.b)
        self.assertEqual(func.c, Point(5, 0.5))
        self.assertEqual(func.d, Point(15, 0.5))

    def test_truncate_higher(self):
        func = self.function.truncate(1.1)
        self.assertIsInstance(func, TriangularFunction)
        self.assertEqual(func.a, self.function.a)
        self.assertEqual(func.b, self.function.b)
        self.assertEqual(func.c, self.function.c)

    def test_truncate_zero(self):
        func = self.function.truncate(0)
        self.assertIsInstance(func, TrapezoidalFunction)
        self.assertEqual(func.a, self.function.a)
        self.assertEqual(func.b, self.function.b)
        self.assertEqual(func.c, self.function.a)
        self.assertEqual(func.d, self.function.b)

    def test_truncate_triangle_rectangle(self):
        # Cambiamos los puntos para que sea un triangulo rectangulo
        self.function.b = Point(10, 0)
        self.function.c = Point(10, 1)

        func = self.function.truncate(0.5)
        self.assertIsInstance(func, TrapezoidalFunction)
        self.assertEqual(func.a, self.function.a)
        self.assertEqual(func.b, self.function.b)
        self.assertEqual(func.c, Point(5, 0.5))
        self.assertEqual(func.d, Point(10, 0.5))