Ejemplo n.º 1
0
    def test_320_hash_equality(self):
        internet1 = InternetTime(100)
        # same thing
        internet2 = InternetTime(100)
        assert hash(internet1) == hash(internet2)
        internet3 = InternetTime.from_time_pair(Fraction(1, 5),
                                                Fraction(-1, 10))
        assert hash(internet1) == hash(internet3)
        internet4 = InternetTime.from_time_pair(Fraction(9, 10),
                                                Fraction(1, 5))
        assert hash(internet1) == hash(internet4)
        internet5 = InternetTime.from_time_pair(Fraction(1, 20),
                                                Fraction(-19, 20))
        assert hash(internet1) == hash(internet5)

        dic = {internet1: 1}
        dic[internet2] = 2
        assert len(dic) == 1
        assert dic[internet1] == 2
        assert dic[internet2] == 2
        dic[internet3] = 2
        assert len(dic) == 1
        assert dic[internet3] == 2
        dic[internet4] = 2
        assert len(dic) == 1
        assert dic[internet4] == 2
        dic[internet5] = 2
        assert len(dic) == 1
        assert dic[internet5] == 2
Ejemplo n.º 2
0
 def test_011_ko_constructor_time_pair_values(self):
     for par in (Fraction(1000001,
                          1000000), Fraction(1), Fraction(-1, 1000000)):
         with pytest.raises(ValueError):
             InternetTime.from_time_pair(par, Fraction(1, 2))
     for par in (Fraction(1000001, 1000000), Fraction(1), Fraction(-1),
                 Fraction(-1000001, 1000000)):
         with pytest.raises(ValueError):
             InternetTime.from_time_pair(Fraction(1, 2), par)
Ejemplo n.º 3
0
 def test_011_ok_constructor_time_pair_values(self):
     for test_row in internet_time_test_data:
         internet2 = InternetTime.from_time_pair(Fraction(test_row[0]),
                                                 Fraction(0))
         assert internet2.beat == Fraction(test_row[1])
         internet2 = InternetTime.from_time_pair(Fraction(test_row[0]),
                                                 Fraction('1/3'))
         assert internet2.beat == Fraction(test_row[2])
         internet3 = InternetTime.from_time_pair(Fraction(test_row[0]),
                                                 Fraction('-1/5'))
         assert internet3.beat == Fraction(test_row[3])
Ejemplo n.º 4
0
 def test_010_ok_constructor_time_pair_types(self):
     internet1 = InternetTime.from_time_pair(Fraction("3/4"),
                                             Fraction(-0.5))
     assert type(internet1.beat) == Fraction
     # with overflow
     internet2 = InternetTime.from_time_pair(Fraction("3/4"), Fraction(0.5))
     assert type(internet2.beat) == Fraction
     # with underflow
     internet3 = InternetTime.from_time_pair(Fraction("1/4"),
                                             Fraction(-0.5))
     assert type(internet3.beat) == Fraction
Ejemplo n.º 5
0
 def test_400_to_and_from_time_pair(self):
     for test_row in internet_time_test_data:
         internet1 = InternetTime(test_row[1])
         assert internet1.to_time_pair() == (Fraction(test_row[0]),
                                             Fraction(-1, 24))
         internet2 = InternetTime.from_time_pair(test_row[2],
                                                 Fraction("-1/3"))
         assert internet2.to_time_pair() == (Fraction(test_row[0]),
                                             Fraction(-1, 24))
         internet3 = InternetTime.from_time_pair(test_row[3],
                                                 Fraction("1/5"))
         assert internet3.to_time_pair() == (Fraction(test_row[0]),
                                             Fraction(-1, 24))
Ejemplo n.º 6
0
 def test_100_ko_write_attribute(self):
     internet1 = InternetTime(10)
     with pytest.raises(AttributeError):
         internet1.beat = 3
     internet2 = InternetTime.from_time_pair(Fraction(2, 7), Fraction(0.5))
     with pytest.raises(AttributeError):
         internet1.beat = 3
Ejemplo n.º 7
0
    def test_305_compare(self):
        internet1 = InternetTime(250)
        internet2 = InternetTime.from_time_pair(Fraction("3/4"), Fraction(0.5))
        internet3 = InternetTime.from_time_pair(Fraction("3/4"),
                                                Fraction(-0.5))
        internet4 = InternetTime.from_time_pair(Fraction("1/10"),
                                                Fraction(17, 20))
        assert internet1 == internet2
        assert internet1 <= internet2
        assert internet1 >= internet2
        assert internet1 == internet3
        assert internet1 <= internet3
        assert internet1 >= internet3
        assert internet1 == internet4
        assert internet1 <= internet4
        assert internet1 >= internet4
        assert internet2 <= internet3
        assert internet2 >= internet3
        assert internet2 == internet4
        assert internet2 == internet4
        assert internet2 <= internet4
        assert internet2 >= internet4
        assert internet3 == internet4
        assert internet3 <= internet4
        assert internet3 >= internet4
        assert not internet1 != internet2
        assert not internet1 < internet2
        assert not internet1 > internet2
        assert not internet1 != internet3
        assert not internet1 < internet3
        assert not internet1 > internet3
        assert not internet1 != internet4
        assert not internet1 < internet4
        assert not internet1 > internet4
        assert not internet2 != internet3
        assert not internet2 < internet3
        assert not internet2 > internet3
        assert not internet2 != internet4
        assert not internet2 < internet4
        assert not internet2 > internet4
        assert not internet2 != internet4
        assert not internet2 < internet4
        assert not internet2 > internet4
        assert not internet3 != internet4
        assert not internet3 < internet4
        assert not internet3 > internet4

        internet5 = InternetTime.from_time_pair(Fraction(1, 2), Fraction(0))
        assert internet1 < internet5
        assert internet2 < internet5
        assert internet3 < internet5
        assert internet4 < internet5
        assert internet5 > internet1
        assert internet5 > internet2
        assert internet5 > internet3
        assert internet5 > internet4
        assert internet1 <= internet5
        assert internet2 <= internet5
        assert internet3 <= internet5
        assert internet4 <= internet5
        assert internet5 >= internet1
        assert internet5 >= internet2
        assert internet5 >= internet3
        assert internet5 >= internet4
        assert internet1 != internet5
        assert internet2 != internet5
        assert internet3 != internet5
        assert internet4 != internet5
        assert internet5 != internet1
        assert internet5 != internet2
        assert internet5 != internet3
        assert internet5 != internet4
        assert not internet1 == internet5
        assert not internet2 == internet5
        assert not internet3 == internet5
        assert not internet4 == internet5
        assert not internet5 == internet1
        assert not internet5 == internet2
        assert not internet5 == internet3
        assert not internet5 == internet4
        assert not internet1 > internet5
        assert not internet2 > internet5
        assert not internet3 > internet5
        assert not internet4 > internet5
        assert not internet5 < internet1
        assert not internet5 < internet2
        assert not internet5 < internet3
        assert not internet5 < internet4
        assert not internet1 >= internet5
        assert not internet2 >= internet5
        assert not internet3 >= internet5
        assert not internet4 >= internet5
        assert not internet5 <= internet1
        assert not internet5 <= internet2
        assert not internet5 <= internet3
        assert not internet5 <= internet4
Ejemplo n.º 8
0
    def test_010_ko_constructor_time_pair_types(self):
        # exception with none, one or three parameters
        with pytest.raises(TypeError):
            InternetTime.from_time_pair()
        with pytest.raises(TypeError):
            InternetTime.from_time_pair(Fraction(1))
        with pytest.raises(TypeError):
            InternetTime.from_time_pair(Fraction(1), Fraction(0.5),
                                        Fraction(0.5))

        # exception with non-numeric types
        for par in ("1", (1, ), [1], {1: 1}, (), [], {}, None):
            with pytest.raises(TypeError):
                InternetTime.from_time_pair(par, Fraction(0.5))
            with pytest.raises(TypeError):
                InternetTime.from_time_pair(Fraction(0.5), par)

        # exception with invalid numeric types
        for par in (1, 1.0, Decimal(1), 1j, 1 + 1j, INF, NAN):
            with pytest.raises(TypeError):
                InternetTime.from_time_pair(par, Fraction(0.5))
            with pytest.raises(TypeError):
                InternetTime.from_time_pair(Fraction(0.5), par)