コード例 #1
0
    def test_str(self):
        """ test string __str__ override """

        rect = rectangle.Rectangle(1, 1, 0, 0)
        base_id = rect.id

        rect1 = rectangle.Rectangle(4, 6, 2, 1, 7)

        self.assertEqual(str(rect1), "[Rectangle] (7) 2/1 - 4/6")

        rect2 = rectangle.Rectangle(5, 5, 1)

        self.assertEqual(str(rect2),
                         "[Rectangle] ({}) 1/0 - 5/5".format(base_id + 1))
コード例 #2
0
    def test_area(self):
        """test rectangle.Rectangle"""

        # small area
        r = rectangle.Rectangle(10, 2, 0, 0, 0)
        self.assertEqual(20, r.area())

        # large area
        r = rectangle.Rectangle(999999999999999, 999999999999999999, 0, 0, 1)
        self.assertEqual(999999999999998999000000000000001, r.area())

        # extra area
        r = rectangle.Rectangle(2, 10, 1, 1, 1)
        r.width = 7
        r.height = 14
        self.assertEqual(98, r.area())
コード例 #3
0
    def test_inherits(self):
        """ verify square inherits rectangle """

        rect = rectangle.Rectangle(1, 1)
        sqre = square.Square(1)

        self.assertTrue(issubclass(type(sqre), type(rect)))
コード例 #4
0
    def test_inherits(self):
        """test if Rectangle inherits from Base"""

        b = base.Base()
        rect = rectangle.Rectangle(1, 1)

        self.assertTrue(issubclass(type(rect), type(b)))
コード例 #5
0
    def test_update_args(self):
        """test rectangle.Rectangle"""

        rect = rectangle.Rectangle(5, 5)

        # check for function
        self.assertTrue('update' in dir(rect))

        # test id update
        rect.update(89)
        self.assertEqual(rect.id, 89)

        # test width update
        rect.update(89, 2)
        self.assertEqual(rect.width, 2)

        # test height upadte
        rect.update(89, 2, 3)
        self.assertEqual(rect.height, 3)

        # test x update
        rect.update(89, 2, 3, 4)
        self.assertEqual(rect.x, 4)

        # test y update
        rect.update(89, 2, 3, 4, 2)
        self.assertEqual(rect.y, 2)
コード例 #6
0
    def test_constructor(self):
        """ verify rect has correct attributes set """

        rect = rectangle.Rectangle(5, 3, 7, 2, 99)

        self.assertEqual(rect.width, 5)
        self.assertEqual(rect.height, 3)
        self.assertEqual(rect.x, 7)
        self.assertEqual(rect.y, 2)
        self.assertEqual(rect.id, 99)
コード例 #7
0
    def test_constructor(self):
        """test rectangle.Rectangle"""

        rect = rectangle.Rectangle(5, 3, 7, 2, 99)

        self.assertEqual(rect.width, 5)
        self.assertEqual(rect.height, 3)
        self.assertEqual(rect.x, 7)
        self.assertEqual(rect.y, 2)
        self.assertEqual(rect.id, 99)
コード例 #8
0
    def test_display(self):
        """ test string representation
            to stdout
        """

        rect = rectangle.Rectangle(2, 2)
        target_out = "##\n##\n"
        stdout = rect.display()

        self.assertEqual(stdout, target_out)
コード例 #9
0
    def test_area(self):
        """test area function of Rectangle"""
        rect = rectangle.Rectangle(7, 3)

        dir_list = dir(rect)

        if 'area' in dir_list:
            result = True
        else:
            print("\t!!!! Missing area function !!!!")
            result = False

        self.assertTrue(result)
        self.assertEqual(rect.area(), 21)
コード例 #10
0
    def test_to_dict(self):
        """ test conversion to dictionary """

        list_of_keys = ['id', 'width', 'height', 'x', 'y']
        result = True

        rect = rectangle.Rectangle(2, 3, 4, 5, 99)
        d = rect.to_dictionary()

        test = {'id': 99, 'width': 2, 'height': 3, 'x': 4, 'y': 5}

        for key in list_of_keys:
            if key not in d:
                result = False
                break
            if test[key] != d[key]:
                result = Faslse
                break

        self.assertTrue(result)
コード例 #11
0
    def test_validator(self):
        """ validate the validation of attributes """

        # width type validation
        with self.assertRaises(TypeError) as cm:
            rectangle.Rectangle('1', 2)

        msg = cm.exception
        self.assertEqual('width must be an integer', str(msg))

        # height type validation
        with self.assertRaises(TypeError) as cm:
            rectangle.Rectangle(1, '2')

        msg = cm.exception
        self.assertEqual('height must be an integer', str(msg))

        # width value validation
        with self.assertRaises(ValueError) as cm:
            rectangle.Rectangle(0, 2)

        msg = cm.exception
        self.assertEqual('width must be > 0', str(msg))

        # height value validation
        with self.assertRaises(ValueError) as cm:
            rectangle.Rectangle(1, -2)

        msg = cm.exception
        self.assertEqual('height must be > 0', str(msg))

        # x value validation
        with self.assertRaises(ValueError) as cm:
            rectangle.Rectangle(1, 1, -1, 1)

        msg = cm.exception
        self.assertEqual('x must be >= 0', str(msg))

        # y value validation
        with self.assertRaises(ValueError) as cm:
            rectangle.Rectangle(1, 1, 1, -1)

        msg = cm.exception
        self.assertEqual('y must be >= 0', str(msg))
コード例 #12
0
    def test_has_attributes(self):
        """verify has specific attributes with getters and setters"""

        rect = rectangle.Rectangle(1, 1)
        list_of_attr = dir(rect)
        attr = [
            'id', '_Rectangle__width', '_Rectangle__height', '_Rectangle__x',
            '_Rectangle__y'
        ]
        getter_setter = ['height', 'width', 'x', 'y']

        result = True

        for item in attr:
            if item not in list_of_attr:
                print("\t!!!! Not Found: ", item, " !!!!")
                result = False

        for item in getter_setter:
            if item not in list_of_attr:
                print("\t!!!!! Not Found: ", item, " !!!!")
                result = False

        self.assertTrue(result)
コード例 #13
0
    def test_update_kwargs(self):
        """test rectangle.Rectangle"""

        rect = rectangle.Rectangle(1, 1, 0, 0, 1)

        # test id update
        rect.update(id=89)
        self.assertEqual(rect.id, 89)

        # test width update
        rect.update(width=10)
        self.assertEqual(rect.width, 10)

        # test height update
        rect.update(height=10)
        self.assertEqual(rect.height, 10)

        # test x update
        rect.update(x=5)
        self.assertEqual(rect.x, 5)

        # test y update
        rect.update(y=5)
        self.assertEqual(rect.y, 5)
コード例 #14
0
 def test_y_private(self):
     with self.assertRaises(AttributeError):
         print(rectangle.Rectangle(5, 5, 0, 0, 1).__y)
コード例 #15
0
 def test_more_than_five_args(self):
     with self.assertRaises(TypeError):
         rectangle.Rectangle(1, 2, 3, 4, 5, 6)
コード例 #16
0
 def test_five_args(self):
     self.assertEqual(7, rectangle.Rectangle(10, 2, 0, 0, 7).id)
コード例 #17
0
 def test_four_args(self):
     r1 = rectangle.Rectangle(1, 2, 3, 4)
     r2 = rectangle.Rectangle(4, 3, 2, 1)
     self.assertEqual(r1.id, r2.id - 1)
コード例 #18
0
 def test_three_args(self):
     r1 = rectangle.Rectangle(2, 2, 4)
     r2 = rectangle.Rectangle(4, 4, 2)
     self.assertEqual(r1.id, r2.id - 1)
コード例 #19
0
 def test_no_args(self):
     with self.assertRaises(TypeError):
         rectangle.Rectangle()
コード例 #20
0
 def test_area2(self):
     """Test to the area function"""
     o = r.Rectangle(2, 10)
     self.assertEqual(o.area(), 20)
コード例 #21
0
 def test_area1(self):
     """Test to the area function"""
     o = r.Rectangle(3, 2)
     self.assertEqual(o.area(), 6)
コード例 #22
0
 def test_one_arg(self):
     with self.assertRaises(TypeError):
         rectangle.Rectangle(1)
コード例 #23
0
 def test_area3(self):
     """Test to the area function"""
     o = r.Rectangle(8, 7, 0, 0, 12)
     self.assertEqual(o.area(), 56)
コード例 #24
0
 def test_two_args(self):
     r1 = rectangle.Rectangle(10, 2)
     r2 = rectangle.Rectangle(2, 10)
     self.assertEqual(r1.id, r2.id - 1)