Esempio n. 1
0
class FractionsIaddMethodTests(unittest.TestCase):
    """Тестируем действия с дробями: сложение с присваиванием"""

    def setUp(self):
        self.A = Fraction(1, 3)
        self.B = Fraction(2, 3)

    def test_iadd_fraction(self):
        """тест: составное присваивание - накопление результата"""
        for i in range(1, 5):
            self.A += 1
        self.assertEqual(self.A.__str__(), '4(1/3)')

    def test_iadd_two_fractions(self):
        """тест: накопление одной дроби в другой"""
        for i in range(1, 5):
            self.A += self.B
        self.assertEqual(self.A.__str__(), '3')
 def test_display_if_den_negative(self):
     """тест: если по ошибке введи отрицательный знаменатель"""
     F = Fraction(3, -4)
     self.assertEqual(F.__str__(), '3/4')
 def test_display_if_num_and_den_nedative(self):
     """тест: учитываем знак только в числителе"""
     F = Fraction(-3, -4)
     self.assertEqual(F.__str__(), '-3/4')
 def test_display_fraction_simplified_gcd(self):
     """тест: дробь упрощается с помошью НОД (наименьшее общее кратное)"""
     F = Fraction(8, 16)
     self.assertEqual(F.__str__(), '1/2')
class FractionTests(unittest.TestCase):
    """Тестируем класс Fraction - дробь"""
    def setUp(self):
        """Дроби для тестов"""
        self.A = Fraction(3, 4)

    def test_fraction(self):
        """тест: у дроби есть числитель и знаменатель"""
        self.assertEqual(self.A.num, 3)
        self.assertEqual(self.A.den, 4)

    def test_display_fraction(self):
        """тест: представление дроби при вызове str(), print()"""
        self.assertEqual(self.A.__str__(), '3/4')

    def test_print_correct_fraction(self):
        """тест: печатает правильную дробь"""
        F = Fraction(7, 3)
        self.assertEqual(F.__str__(), '2(1/3)')

    def test_print_negative_correct_fraction(self):
        """тест: печатает отрицательную правильную дробь"""
        F = Fraction(-3, 5)
        self.assertEqual(F.__str__(), '-3/5')

    def test_print_negative_incorrect_fraction(self):
        """тест: показывает отрицательную не правильную дробь"""
        F = Fraction(-9, 5)
        self.assertEqual(F.__str__(), '-1(4/5)')

    def test_display_num_equal_den(self):
        """тест: числитель равен знаменателю"""
        F = Fraction(3, 3)
        self.assertEqual(F.__str__(), '1')

    def test_display_num_div_den_none_remain(self):
        """тест: числитель делится на знаменатель без остатка"""
        F = Fraction(6, 2)
        self.assertEqual(F.__str__(), '3')

    def test_display_fraction_simplified_gcd(self):
        """тест: дробь упрощается с помошью НОД (наименьшее общее кратное)"""
        F = Fraction(8, 16)
        self.assertEqual(F.__str__(), '1/2')

    def test_getNum_method(self):
        """тест: getNum возвращает числитель"""
        self.assertEqual(self.A.getNum(), '3')

    def test_getDen_method(self):
        """тест: getDen возвращает числитель"""
        self.assertEqual(self.A.getDen(), '4')

    def test_display_error_type_in_input_not_integer(self):
        """тест: возбуждаем исключение, если введены не целые числа"""
        with self.assertRaises(TypeError):
            Fraction(2.3, 3)

    def test_display_if_den_negative(self):
        """тест: если по ошибке введи отрицательный знаменатель"""
        F = Fraction(3, -4)
        self.assertEqual(F.__str__(), '3/4')

    def test_display_if_num_and_den_nedative(self):
        """тест: учитываем знак только в числителе"""
        F = Fraction(-3, -4)
        self.assertEqual(F.__str__(), '-3/4')

    def test_display_repr_method(self):
        """тест: отображаем дробь при вызове repr()"""
        self.assertEqual(repr(self.A), 'Дробь: 3/4')
 def test_display_num_div_den_none_remain(self):
     """тест: числитель делится на знаменатель без остатка"""
     F = Fraction(6, 2)
     self.assertEqual(F.__str__(), '3')
 def test_display_num_equal_den(self):
     """тест: числитель равен знаменателю"""
     F = Fraction(3, 3)
     self.assertEqual(F.__str__(), '1')
 def test_print_negative_incorrect_fraction(self):
     """тест: показывает отрицательную не правильную дробь"""
     F = Fraction(-9, 5)
     self.assertEqual(F.__str__(), '-1(4/5)')
 def test_print_negative_correct_fraction(self):
     """тест: печатает отрицательную правильную дробь"""
     F = Fraction(-3, 5)
     self.assertEqual(F.__str__(), '-3/5')
 def test_print_correct_fraction(self):
     """тест: печатает правильную дробь"""
     F = Fraction(7, 3)
     self.assertEqual(F.__str__(), '2(1/3)')