예제 #1
0
    def test_error_messages(self):
        """
        Testing to see if error messages work
        """

        r1 = Rectangle(1, 2)

        with self.assertRaisesRegexp(TypeError, "width must be an integer"):
            r1.width = True
        with self.assertRaisesRegexp(TypeError, "width must be an integer"):
            r1.width = "str"
        with self.assertRaisesRegexp(TypeError, "height must be an integer"):
            r1.height = "rts"
        with self.assertRaisesRegexp(TypeError, "height must be an integer"):
            r1.height = True
        with self.assertRaisesRegexp(ValueError, "width must be > 0"):
            r1.width = -3
        with self.assertRaisesRegexp(ValueError, "height must be > 0"):
            r1.height = -4
        with self.assertRaisesRegexp(ValueError, "x must be >= 0"):
            r1.x = -3
        with self.assertRaisesRegexp(TypeError, "x must be an integer"):
            r1.x = True
        with self.assertRaisesRegexp(TypeError, "x must be an integer"):
            r1.x = "str"
        with self.assertRaisesRegexp(ValueError, "y must be >= 0"):
            r1.y = -4
        with self.assertRaisesRegexp(TypeError, "y must be an integer"):
            r1.y = True
        with self.assertRaisesRegexp(TypeError, "y must be an integer"):
            r1.y = "rts"
        with self.assertRaisesRegexp(ValueError, "width must be > 0"):
            r1.width = 0
        with self.assertRaisesRegexp(ValueError, "height must be > 0"):
            r1.height = 0
 def test_height_setter_validations(self):
     """Tests for height setter methods"""
     rectangle_obj1 = Rectangle(3, 10, 0, 0, 10)
     with self.assertRaises(ValueError):
         rectangle_obj1.height = 0
     with self.assertRaises(ValueError):
         rectangle_obj1.height = -4
     with self.assertRaises(TypeError):
         rectangle_obj1.height = True
     rectangle_obj1.height = 3
     self.assertEqual(rectangle_obj1.height, 3)
    def test_height_property_and_setter(self):
        """test for height setter
        """

        r = Rectangle(1, 1)
        with self.assertRaises(TypeError):
            r.height = "r"
        with self.assertRaises(ValueError):
            r.height = -1
        with self.assertRaises(ValueError):
            r.height = 0
    def test_height(self):
        r3 = Rectangle(10, 2)

        # check an exception is raised when trying to access
        # a private attribute
        with self.assertRaises(AttributeError):
            print(r3.__height)

        # check an exception is raised when height not an int
        with self.assertRaises(TypeError, msg="height must be an integer"):
            r3.height = 'hi'

        # check an exception is raised when height is less than 0 or 0
        with self.assertRaises(ValueError, msg="height must be > 0"):
            r3.height = 0
예제 #5
0
    def test_height_not_int(self):
        """ Test's for y method """

        r1 = Rectangle(3, 4, 0, 0)

        with self.assertRaises(TypeError):
            r1.height = "51"
    def test_all(self):
        r1 = Rectangle(10, 2, 20, 30)

        # Check getter for height works
        self.assertEqual(r1.height, 2)

        # check setter for height works
        r1.height = 5
        self.assertEqual(r1.height, 5)

        # Check getter for width works
        self.assertEqual(r1.width, 10)

        # check setter for width works
        r1.width = 12
        self.assertEqual(r1.width, 12)

        # Check getter for x works
        self.assertEqual(r1.x, 20)

        # check setter for x works
        r1.x = 25
        self.assertEqual(r1.x, 25)

        # Check getter for y works
        self.assertEqual(r1.y, 30)

        # check setter for y works
        r1.y = 35
        self.assertEqual(r1.y, 35)
예제 #7
0
 def test_str_method_attr(self):
     r = Rectangle(7, 8, 14, 12, [13])
     r.width = 13
     r.height = 11
     r.x = 81
     r.y = 100
     self.assertEqual("[Rectangle] ([13]) 81/100 - 13/11", str(r))
예제 #8
0
 def test_excep3(self):
     with self.assertRaises(ValueError):
         r5 = Rectangle(10, 2)
         r5.height = -10
         self.g1.height = -10
         self.g2.height = -10
         self.g3.height = -10
예제 #9
0
 def test_excep2(self):
     with self.assertRaises(TypeError):
         r5 = Rectangle(10, 2)
         r5.height = "8"
         self.g1.height = "8"
         self.g2.height = "8"
         self.g3.height = "8"
 def test_heightsettervalidationfornegative(self):
     """This function tests height setter validation for 0"""
     Rectangle.reset_objects()
     with self.assertRaises(ValueError) as e:
         r1 = Rectangle(25, 20, 30, 35, 100)
         r1.height = -1
     self.assertEqual(str(e.exception), 'height must be > 0')
예제 #11
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))
 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))
예제 #13
0
 def test_variables(self):
     r1 = Rectangle(2, 4, 6, 9, 10)
     self.assertEqual(r1.id, 10)
     self.assertEqual(r1.width, 2)
     self.assertEqual(r1.height, 4)
     self.assertEqual(r1.x, 6)
     self.assertEqual(r1.y, 9)
     r1.width = 7
     self.assertEqual(r1.width, 7)
     r1.height = 11
     self.assertEqual(r1.height, 11)
     r1.x = 8
     self.assertEqual(r1.x, 8)
     r1.y = 5
     self.assertEqual(r1.y, 5)
     """Error"""
     self.assertRaises(TypeError, Rectangle, "string", 3)
     self.assertRaises(TypeError, Rectangle, 4, "string")
     self.assertRaises(TypeError, Rectangle, 2, 4, "string")
     self.assertRaises(TypeError, Rectangle, 2, 4, 3, "string")
     self.assertRaises(TypeError, Rectangle)
     self.assertRaises(TypeError, Rectangle, 2)
     self.assertRaises(ValueError, Rectangle, -1, 3)
     self.assertRaises(ValueError, Rectangle, 4, -2)
     self.assertRaises(ValueError, Rectangle, 2, 4, -3)
     self.assertRaises(ValueError, Rectangle, 2, 4, 3, -4)
 def try_wrong_case(self):
     """when a size can be 0 but it is not possible"""
     self.set_up()
     r2 = Rectangle(3, 1)
     self.assertEqual(r2.height, 1)
     with self.assertRaisesRegex(ValueError, "height must be > 0"):
         r2.height = 0
 def test_heightsettervalidation(self):
     """This function tests height setter validation"""
     Rectangle.reset_objects()
     with self.assertRaises(TypeError) as e:
         r1 = Rectangle(25, 20, 30, 35, 100)
         r1.height = "foo"
     self.assertEqual(str(e.exception), 'height must be an integer')
    def test_I_area(self):
        '''Tests area() method compuation.'''
        r = Rectangle(5, 6)
        self.assertEqual(r.area(), 30)
        w = randrange(10) + 1
        h = randrange(10) + 1
        r.width = w
        r.height = h
        self.assertEqual(r.area(), w * h)
        w = randrange(10) + 1
        h = randrange(10) + 1
        r = Rectangle(w, h, 7, 8, 9)
        self.assertEqual(r.area(), w * h)
        w = randrange(10) + 1
        h = randrange(10) + 1
        r = Rectangle(w, h, y=7, x=8, id=9)
        self.assertEqual(r.area(), w * h)

        r1 = Rectangle(3, 2)
        self.assertEqual(r1.area(), 6)

        r2 = Rectangle(2, 10)
        self.assertEqual(r2.area(), 20)

        r3 = Rectangle(8, 7, 0, 0, 12)
        self.assertEqual(r3.area(), 56)
예제 #17
0
 def test_height_get_set(self):
     r = Rectangle(2, 4, 1, 2)
     with self.assertRaises(AttributeError):
         r.__height
     self.assertEqual(r.height, 4)
     r.height = 42
     self.assertEqual(r.height, 42)
예제 #18
0
 def test_two_update(self):
     r = Rectangle(10, 10, 3, 10, 10)
     r.update(13)
     r.height = 53
     r.update(5)
     r.id = 32
     self.assertEqual("[Rectangle] (32) 3/10 - 10/53", str(r))
    def test_print(self):
        r = Rectangle(1, 1)
        f = io.StringIO()
        with redirect_stdout(f):
            r.display()
        s = "#\n"
        self.assertEqual(f.getvalue(), s)
        r.width = 3
        r.height = 5
        f = io.StringIO()
        with redirect_stdout(f):
            r.display()
        s = "\
###\n\
###\n\
###\n\
###\n\
###\n\
"

        self.assertEqual(f.getvalue(), s)
        r = Rectangle(5, 6, 7, 8)
        f = io.StringIO()
        with redirect_stdout(f):
            r.display()
예제 #20
0
    def test_dictionary(self):
        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': 1, '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)
예제 #21
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)
 def test_width_height_morethan0(self):
     """Test if width or height > 0"""
     with self.assertRaisesRegex(ValueError, "width must be > 0"):
         r3 = Rectangle(10, 2)
         r3.width = -10
     with self.assertRaisesRegex(ValueError, "height must be > 0"):
         r4 = Rectangle(10, 5)
         r4.height = -10
예제 #23
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_area_validations(self):
     """Tests for area method"""
     rectangle_obj2 = Rectangle(8, 2, 1, 1, 7)
     self.assertEqual(rectangle_obj2.area(), 16)
     with self.assertRaises(TypeError):
         rectangle_obj2.area(45)
     rectangle_obj2.height = 8
     self.assertEqual(rectangle_obj2.area(), 64)
예제 #25
0
 def test_area_2(self):
     """ Checking the return value of area method """
     new = Rectangle(2, 2)
     self.assertEqual(new.area(), 4)
     new.width = 5
     self.assertEqual(new.area(), 10)
     new.height = 5
     self.assertEqual(new.area(), 25)
예제 #26
0
    def test_height(self):
        """ Test's for height method """

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

        self.assertTrue(Rectangle.height.__doc__)
        self.assertEqual(r1.height, 5191)
예제 #27
0
 def test_setter_getter(self):
     r1 = Rectangle(1, 2)
     self.assertEqual(r1.width, 1)
     self.assertEqual(r1.height, 2)
     r1.width = 7
     r1.height = 8
     self.assertEqual(r1.width, 7)
     self.assertEqual(r1.height, 8)
 def test_x_and_y(self):
     r = Rectangle(5, 10)
     self.assertEqual(r.width, 5)
     self.assertEqual(r.height, 10)
     r.width = 10
     r.height = 5
     self.assertEqual(r.width, 10)
     self.assertEqual(r.height, 5)
     del r
    def test_area(self):
        """ check if the area is calculate correctly """

        r5 = Rectangle(2, 3, 4, 5)
        self.assertEqual(r5.area(), 6)
        r5.width = 1
        self.assertEqual(r5.area(), 3)
        r5.height = 1
        self.assertEqual(r5.area(), 1)
    def test_rectangle_display(self):
        r = Rectangle(1, 1)

        with redirect_stdout(io.StringIO()) as f:
            r.display()
        self.assertEqual("#\n", f.getvalue())

        r.height = 2
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        self.assertEqual("#\n#\n", f.getvalue())

        r.width = 5
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        self.assertEqual("#####\n#####\n", f.getvalue())

        r.height = 5
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        self.assertEqual("#####\n#####\n#####\n#####\n#####\n", f.getvalue())

        r = Rectangle(5, 2, 3, 3)
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        answer = ("\n\n\n" + "   #####\n" + "   #####\n")
        self.assertEqual(answer, f.getvalue())

        r.width = 2
        r.y = 0
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        answer = ("   ##\n" + "   ##\n")
        self.assertEqual(answer, f.getvalue())

        r.height = 4
        r.y = 1
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        answer = ("\n" + "   ##\n" + "   ##\n" + "   ##\n" + "   ##\n")
        self.assertEqual(answer, f.getvalue())

        with self.assertRaises(TypeError):
            r.display(4, 4)