예제 #1
0
    def test_to_dictionary(self):
        """Tests to_dictionary() signature:"""
        with self.assertRaises(TypeError) as e:
            Rectangle.to_dictionary()
        s = "to_dictionary() missing 1 required positional argument: 'self'"
        self.assertEqual(str(e.exception), s)

        r = Rectangle(1, 2)
        d = {'x': 0, 'y': 0, 'width': 1, 'id': 3, 'height': 2}
        self.assertEqual(r.to_dictionary(), d)

        r = Rectangle(1, 2, 3, 4, 5)
        d = {'x': 3, 'y': 4, 'width': 1, 'id': 5, 'height': 2}
        self.assertEqual(r.to_dictionary(), d)

        r.x = 10
        r.y = 20
        r.width = 30
        r.height = 40
        d = {'x': 10, 'y': 20, 'width': 30, 'id': 5, 'height': 40}
        self.assertEqual(r.to_dictionary(), d)

        r1 = Rectangle(10, 2, 1, 9)
        r1_dictionary = r1.to_dictionary()
        r2 = Rectangle(1, 1)
        r2.update(**r1_dictionary)
        self.assertEqual(str(r1), str(r2))
        self.assertNotEqual(r1, r2)
예제 #2
0
 def test_method_changed_attributes(self):
     r = Rectangle(12, 23, 67, 64, [5])
     r.width = 75
     r.height = 43
     r.x = 13
     r.y = 75
     self.assertEqual("[Rectangle] ([5]) 13/75 - 75/43", str(r))
예제 #3
0
 def test_str_method_changed_attributes(self):
     r = Rectangle(7, 7, 0, 0, [4])
     r.width = 15
     r.height = 1
     r.x = 8
     r.y = 10
     self.assertEqual("[Rectangle] ([4]) 8/10 - 15/1", str(r))
예제 #4
0
 def test_property_range_zero(self):
     """Tests property setting/getting."""
     r = Rectangle(1, 2)
     r.x = 0
     r.y = 0
     self.assertEqual(r.x, 0)
     self.assertEqual(r.y, 0)
예제 #5
0
    def test_trivial(self):
        """ Function: test_trivial
                      to test trivial cases
        """
        Base._nb_objects = 0
        r1 = Rectangle(10, 2)
        r2 = Rectangle(2, 10)
        r3 = Rectangle(10, 2, 0, 0, 12)
        r4 = Rectangle(10, 2, 0, 0, None)
        self.assertEqual(r1.id, 1)
        self.assertEqual(r2.id, 2)
        self.assertEqual(r3.id, 12)
        self.assertEqual(r4.id, 3)

        self.assertEqual(r1.area(), 20)
        self.assertEqual(r2.area(), 20)
        self.assertEqual(r3.area(), 20)
        self.assertEqual(r4.area(), 20)

        x = r1.x
        y = r1.y
        width = r1.width
        height = r1.height
        self.assertEqual(x, 0)
        self.assertEqual(y, 0)
        self.assertEqual(width, 10)
        self.assertEqual(height, 2)
        x = r2.x
        y = r2.y
        width = r2.width
        height = r2.height
        self.assertEqual(x, 0)
        self.assertEqual(y, 0)
        self.assertEqual(width, 2)
        self.assertEqual(height, 10)
        x = r3.x
        y = r3.y
        width = r3.width
        height = r3.height
        self.assertEqual(x, 0)
        self.assertEqual(y, 0)
        self.assertEqual(width, 10)
        self.assertEqual(height, 2)
        x = r4.x
        y = r4.y
        width = r4.width
        height = r4.height
        self.assertEqual(x, 0)
        self.assertEqual(y, 0)
        self.assertEqual(width, 10)
        self.assertEqual(height, 2)
        r4.x = 24
        self.assertEqual(r4.x, 24)
        r3.y = 55
        self.assertEqual(r3.y, 55)
        r2.width = 97
        self.assertEqual(r2.width, 97)
        r1.height = 33
        self.assertEqual(r1.height, 33)
예제 #6
0
    def test_x(self):
        """ Test's for x method """

        r1 = Rectangle(3, 4, 0, 0)
        r1.x = 5191

        self.assertTrue(Rectangle.x.__doc__)
        self.assertEqual(r1.x, 5191)
예제 #7
0
 def test_Value(self):
     r = Rectangle(10, 2)
     with self.assertRaises(ValueError):
         r.height = -2
         r.height = 0
         r.width = -1
         r.width = 0
         r.x = ""
         r.x = {}
         r.x = []
         r.x = ()
         r.x = 1.2
         r.y = ""
         r.y = {}
         r.y = []
         r.y = ()
         r.y = 1.2
 def test_3_data_check_2(self):
     """test for wrong input data 3"""
     try:
         r = Rectangle(10, 2)
         r.x = {}
     except Exception as e:
         self.assertEqual("[{}] {}".format(e.__class__.__name__, e),
                          "[TypeError] x must be an integer")
예제 #9
0
    def test_validate_attributes(self):

        with self.assertRaises(TypeError):
            r4 = Rectangle("w", 10)
        with self.assertRaises(TypeError):
            r4 = Rectangle(10, "g")
        with self.assertRaises(TypeError):
            r4 = Rectangle(10, 10)
            r4.width = "w"
        with self.assertRaises(TypeError):
            r4.height = "h"
        with self.assertRaises(TypeError):
            r4.x = "x"
        with self.assertRaises(TypeError):
            r4.y = "y"
        with self.assertRaises(TypeError):
             r = Rectangle(10, 2)
             r.x = {}
 def test_noy1(self):
     """ Display no Y """
     r1 = Rectangle(2, 3, 1)
     r1.x = 3
     dp = "   ##\n   ##\n   ##\n"
     with patch('sys.stdout', new=io.StringIO()) as p:
         r1.display()
         st = p.getvalue()
     self.assertEqual(st, dp)
예제 #11
0
 def test_params_setters(self):
     r9 = Rectangle(32, 34)
     r9.width = 21
     self.assertEqual(r9.width, 21)
     r9.height = 87
     self.assertEqual(r9.height, 87)
     r9.x = 55
     self.assertEqual(r9.x, 55)
     r9.y = 444
     self.assertEqual(r9.y, 444)
예제 #12
0
 def test_aa_setters(self):
     gt = Rectangle(4, 5, 8, 1, 20)
     gt.width = 30
     self.assertEqual(gt.width, 30)
     gt.height = 33
     self.assertEqual(gt.height, 33)
     gt.x = 56
     self.assertEqual(gt.x, 56)
     gt.y = 14
     self.assertEqual(gt.y, 14)
 def test_args_setter(self):
     """check args setter"""
     A = Rectangle(3, 2)
     A.width = 1
     self.assertEqual(A.width, 1)
     A.height = 5
     self.assertEqual(A.height, 5)
     A.x = 10
     self.assertEqual(A.x, 10)
     A.y = 20
     self.assertEqual(A.y, 20)
 def test_setters_ok(self):
     """ Test for setters with good values. """
     r1 = Rectangle(1, 5)
     r1.width = 2
     r1.height = 6
     r1.x = 3
     r1.y = 4
     self.assertEqual(r1.width, 2)
     self.assertEqual(r1.height, 6)
     self.assertEqual(r1.x, 3)
     self.assertEqual(r1.y, 4)
 def test_validate_attr(self):
     with self.assertRaisesRegex(TypeError, "height must be an integer"):
         r1 = Rectangle(10, "2")
     with self.assertRaisesRegex(ValueError, "width must be > 0"):
         r = Rectangle(10, 2)
         r.width = -10
     with self.assertRaisesRegex(TypeError, "x must be an integer"):
         r = Rectangle(10, 2)
         r.x = {}
     with self.assertRaisesRegex(ValueError, "y must be >= 0"):
         Rectangle(10, 2, 3, -1)
    def test_display(self):
        """ check if the display function show the rectangle correctly """
        r6 = Rectangle(1, 1)
        expected_out = '#\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)

        r6.width = 2
        r6.height = 3
        expected_out = '##\n##\n##\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)
        r6.x = 1
        r6.y = 3
        expected_out = '\n\n\n ##\n ##\n ##\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)

        r6.x = 1
        r6.y = 0
        expected_out = ' ##\n ##\n ##\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)

        r6.x = 4
        r6.y = 1
        r6.width = 1
        r6.height = 1
        expected_out = '\n    #\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)
예제 #17
0
 def test_rectangle_validate_attributes(self):
     """test for the validation cases for the input arguments"""
     self.assertRaises(ValueError, Rectangle, 0, 50)
     self.assertRaises(ValueError, Rectangle, 10, 0)
     self.assertRaises(TypeError, Rectangle, "A", 20)
     self.assertRaises(TypeError, Rectangle, 20, "N")
     self.assertRaises(TypeError, Rectangle, 2.5, 20)
     self.assertRaises(TypeError, Rectangle, 20, 8.5)
     self.assertRaises(ValueError, Rectangle, -5, 10)
     self.assertRaises(ValueError, Rectangle, 10, -8)
     self.assertRaises(ValueError, Rectangle, 0, 10)
     self.assertRaises(ValueError, Rectangle, 10, 0)
     p5 = Rectangle(9, 2)
     with self.assertRaises(ValueError):
         p5.width = 0
     with self.assertRaises(ValueError):
         p5.height = 0
     with self.assertRaises(ValueError):
         p5.width = -10
     with self.assertRaises(ValueError):
         p5.height = -8
     with self.assertRaises(ValueError):
         p5.x = -1
     with self.assertRaises(ValueError):
         p5.y = -3
     with self.assertRaises(TypeError):
         p5.height = 1.5
     with self.assertRaises(TypeError):
         p5.width = 2.3
     with self.assertRaises(TypeError):
         p5.x = 1.5
     with self.assertRaises(TypeError):
         p5.y = 1.5
     with self.assertRaises(TypeError):
         p5.height = "Holberton"
     with self.assertRaises(TypeError):
         p5.width = "School"
     with self.assertRaises(TypeError):
         p5.x = "Holberton"
     with self.assertRaises(TypeError):
         p5.y = "Holberton"
 def testsetelements(self):
     rec = Rectangle(1, 2)
     rec.width = 5
     rec.height = 3
     rec.x = 4
     rec.y = 8
     rec.id = 98
     self.assertEqual(rec.width, 5)
     self.assertEqual(rec.height, 3)
     self.assertEqual(rec.x, 4)
     self.assertEqual(rec.y, 8)
     self.assertEqual(rec.id, 98)
 def test_set(self):
     r = Rectangle(1, 3)
     r.width = 5
     r.height = 6
     r.id = 4
     r.x = 3
     r.y = 2
     self.assertEqual(r.width, 5)
     self.assertEqual(r.height, 6)
     self.assertEqual(r.x, 3)
     self.assertEqual(r.y, 2)
     self.assertEqual(r.id, 4)
 def test_attributes(self):
     """ """
     with self.assertRaises(TypeError):
         Rectangle(10, "2")
     with self.assertRaises(ValueError):
         r = Rectangle(10, 2)
         r.width = -10
     with self.assertRaises(TypeError):
         r = Rectangle(10, 2)
         r.x = {}
     with self.assertRaises(ValueError):
         Rectangle(10, 2, 3, -1)
예제 #21
0
 def test_setters(self):
     r4 = Rectangle(3, 5, 6, 7, 14)
     r4.width = 5
     self.assertEqual(r4.width, 5)
     r4.height = 8
     self.assertEqual(r4.height, 8)
     r4.x = 3
     self.assertEqual(r4.x, 3)
     r4.y = 1
     self.assertEqual(r4.y, 1)
     r4.id = 2
     self.assertEqual(r4.id, 2)
예제 #22
0
 def test_b1_setters(self):
     """testing setters"""
     r = Rectangle(3, 7, 9, 1, 2)
     r.width = 11
     self.assertEqual(r.width, 11)
     r.height = 22
     self.assertEqual(r.height, 22)
     r.x = 33
     self.assertEqual(r.x, 33)
     r.y = 44
     self.assertEqual(r.y, 44)
     r.id = 55
     self.assertEqual(r.id, 55)
예제 #23
0
 def test_values(self):
     """Testing input validation
     """
     r4 = Rectangle(10, 2)
     with self.assertRaises(TypeError):
         r4.x = {}
     with self.assertRaises(TypeError):
         r4.y = True
     with self.assertRaises(TypeError):
         r4.height = True
     with self.assertRaises(TypeError):
         r4.x = True
     with self.assertRaises(TypeError):
         r4.width = True
     with self.assertRaises(TypeError):
         r5 = Rectangle("2", 10)
     r6 = Rectangle(10, 2)
     with self.assertRaises(ValueError):
         r6.width = -10
     with self.assertRaises(ValueError):
         r6.height = -10
     with self.assertRaises(ValueError):
         r6.y = -3
     with self.assertRaises(ValueError):
         r6.x = -3
     with self.assertRaises(ValueError):
         r6.width = 0
     with self.assertRaises(ValueError):
         r6.height = 0
     with self.assertRaises(TypeError):
         r7 = Rectangle()
     with self.assertRaises(TypeError):
         r8 = Rectangle(3.14159, 1)
     with self.assertRaises(TypeError):
         r9 = Rectangle(3, 1.41421)
     with self.assertRaises(TypeError):
         r10 = Rectangle(3, 1, 3.14159, 1)
     with self.assertRaises(TypeError):
         r11 = Rectangle(3, 1, 3, 1.41421)
 def test_raise_error_type(self):
     """ TypeError rectangle """
     self.assertRaises(TypeError, Rectangle, 2, [1, 2])
     self.assertRaises(TypeError, Rectangle, 2, {})
     self.assertRaises(TypeError, Rectangle, "", "2")
     self.assertRaises(TypeError, Rectangle, (2, 4))
     "None arguments"
     self.assertRaises(TypeError, Rectangle)
     """Float arguments """
     self.assertRaises(TypeError, Rectangle, float("inf"))
     self.assertRaises(TypeError, Rectangle, float("NaN"))
     with self.assertRaises(TypeError):
         r = Rectangle(10, 2)
         r.x = {}
 def check_change_att(self):
     """check if print changed"""
     r3 = Rectangle(7, 1, 1, 2, 3)
     r3_result = "[Rectangle] (3) 1/2 - 7/1"
     with patch('sys.stdout', new=StringIO()) as string:
         self.assertEqual(string.getvalue(), r3_result)
     r3.id = 5
     r3.x = 0
     r3.y = 0
     r3.width = 7
     r3.height = 7
     r3_new_result = "[Rectangle] (5) 0/0 - 7/7"
     with patch('sys.stdout', new=StringIO()) as string:
         self.assertEqual(string.getvalue(), r3_new_result)
예제 #26
0
 def test_rectangle_getters_setters(self):
     obj = Rectangle(1, 2)
     self.assertEqual(obj.width, 1)
     self.assertEqual(obj.height, 2)
     self.assertEqual(obj.x, 0)
     self.assertEqual(obj.y, 0)
     obj.width = 10
     obj.height = 20
     obj.x = 5
     obj.y = 6
     self.assertEqual(obj.width, 10)
     self.assertEqual(obj.height, 20)
     self.assertEqual(obj.x, 5)
     self.assertEqual(obj.y, 6)
    def test_rectangle_x(self):
        r = Rectangle(10, 3)
        self.assertEqual(r.x, 0)
        r.x = 1
        self.assertEqual(r.x, 1)
        r.x = 0
        self.assertEqual(r.x, 0)

        with self.assertRaises(TypeError):
            r.x = "11"
            r.x = [2, 3, 4, 5]
            r.x = {2: 3, 4: 5}
            r.x = (2, 3, 4, 5)
            r.x = 2.342,
            r.x = None,
            r.x = float('inf')
            r.x = float('nan')

        with self.assertRaises(ValueError):
            r.x = -2
    def test_init_attributes(self):
        """Checks when id is none
        """
        r1 = Rectangle(10, 60)
        self.assertEqual(r1.id, 1)
        self.assertEqual(r1.width, 10)
        self.assertEqual(r1.height, 60)
        self.assertEqual(r1.x, 0)
        self.assertEqual(r1.y, 0)

        r2 = Rectangle(20, 40)
        self.assertEqual(r2.id, 2)
        self.assertEqual(r2.width, 20)
        self.assertEqual(r2.height, 40)
        self.assertEqual(r2.x, 0)
        self.assertEqual(r2.y, 0)

        r3 = Rectangle(10, 2, 4, 5)
        self.assertEqual(r3.id, 3)
        self.assertEqual(r3.width, 10)
        self.assertEqual(r3.height, 2)
        self.assertEqual(r3.x, 4)
        self.assertEqual(r3.y, 5)

        r4 = Rectangle(10, 2, 6)
        self.assertEqual(r4.id, 4)
        self.assertEqual(r4.width, 10)
        self.assertEqual(r4.height, 2)
        self.assertEqual(r4.x, 6)
        self.assertEqual(r4.y, 0)

        r5 = Rectangle(10, 2, 4, 5, 50)
        self.assertEqual(r5.id, 50)
        self.assertEqual(r5.width, 10)
        self.assertEqual(r5.height, 2)
        self.assertEqual(r5.x, 4)
        self.assertEqual(r5.y, 5)

        r6 = Rectangle(10, 2, 4, 5, 180)
        r6.id = 50
        self.assertEqual(r6.id, 50)
        r6.width = 100
        self.assertEqual(r6.width, 100)
        r6.height = 200
        self.assertEqual(r6.height, 200)
        r6.x = 40
        self.assertEqual(r6.x, 40)
        r6.y = 50
        self.assertEqual(r6.y, 50)
 def test_str5(self):
     """ Test for __str__ """
     r1 = Rectangle(2, 3, 5, 6, 85)
     r1.id = 9
     r1.x = 8
     r1.y = 7
     r1.width = 6
     r1.height = 5
     st = "[Rectangle] (9) 8/7 - 6/5"
     strP = str(r1)
     self.assertEqual(st, strP)
     with patch('sys.stdout', new=io.StringIO()) as p:
         print(r1, end='')
         pr = p.getvalue()
     self.assertEqual(st, pr)
 def test_case2_2(self):
     """Test type errors for attributes"""
     with self.assertRaises(TypeError):
         r = Rectangle("value", 2, 3, 4, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(1, "value", 3, 4, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(1, 2, "value", 4, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(1, 2, 3, "value", 5)
     with self.assertRaises(TypeError):
         r = Rectangle([1, 2], 2, 3, 4, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(1, {'value': 2}, 3, 4, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(1, 2, (3, 4), 4, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(1, 2, 3, None, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(3.35, 2, 3, 4, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(1, float("NaN"), 3, 4, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(1, 2, float("inf"), 4, 5)
     with self.assertRaises(TypeError):
         r = Rectangle(1, 2, 3, {}, 5)
     a = "[TypeError] height must be an integer"
     b = "[ValueError] width must be > 0"
     c = "[TypeError] x must be an integer"
     d = "[ValueError] y must be >= 0"
     try:
         Rectangle(10, "2")
     except Exception as e:
         self.assertEqual("[{}] {}".format(e.__class__.__name__, e), a)
     try:
         r = Rectangle(10, 2)
         r.width = -10
     except Exception as e:
         self.assertEqual("[{}] {}".format(e.__class__.__name__, e), b)
     try:
         r = Rectangle(10, 2)
         r.x = {}
     except Exception as e:
         self.assertEqual("[{}] {}".format(e.__class__.__name__, e), c)
     try:
         Rectangle(10, 2, 3, -1)
     except Exception as e:
         self.assertEqual("[{}] {}".format(e.__class__.__name__, e), d)