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
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)
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])
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
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))
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
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
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)