from edgefirst.schemas import builtin_interfaces
class TestTime:
def test_time_creation_defaults(self):
time = builtin_interfaces.Time()
assert time.sec == 0
assert time.nanosec == 0
def test_time_with_values(self):
time = builtin_interfaces.Time(sec=100, nanosec=500000000)
assert time.sec == 100
assert time.nanosec == 500000000
def test_time_serialize_deserialize(self, sample_time):
data = sample_time.serialize()
assert isinstance(data, bytes)
assert len(data) > 0
restored = builtin_interfaces.Time.deserialize(data)
assert restored.sec == sample_time.sec
assert restored.nanosec == sample_time.nanosec
def test_time_equality(self):
t1 = builtin_interfaces.Time(sec=100, nanosec=200)
t2 = builtin_interfaces.Time(sec=100, nanosec=200)
t3 = builtin_interfaces.Time(sec=100, nanosec=300)
assert t1 == t2
assert t1 != t3
def test_time_max_nanosec(self):
time = builtin_interfaces.Time(sec=0, nanosec=999999999)
data = time.serialize()
restored = builtin_interfaces.Time.deserialize(data)
assert restored.nanosec == 999999999
def test_time_large_sec(self):
time = builtin_interfaces.Time(sec=2147483647, nanosec=0)
data = time.serialize()
restored = builtin_interfaces.Time.deserialize(data)
assert restored.sec == 2147483647
def test_time_zero(self):
time = builtin_interfaces.Time(sec=0, nanosec=0)
data = time.serialize()
restored = builtin_interfaces.Time.deserialize(data)
assert restored.sec == 0
assert restored.nanosec == 0
class TestDuration:
def test_duration_creation_defaults(self):
duration = builtin_interfaces.Duration()
assert duration.sec == 0
assert duration.nanosec == 0
def test_duration_with_values(self):
duration = builtin_interfaces.Duration(sec=60, nanosec=500000000)
assert duration.sec == 60
assert duration.nanosec == 500000000
def test_duration_serialize_deserialize(self, sample_duration):
data = sample_duration.serialize()
assert isinstance(data, bytes)
restored = builtin_interfaces.Duration.deserialize(data)
assert restored.sec == sample_duration.sec
assert restored.nanosec == sample_duration.nanosec
def test_duration_negative_sec(self):
duration = builtin_interfaces.Duration(sec=-10, nanosec=500000000)
data = duration.serialize()
restored = builtin_interfaces.Duration.deserialize(data)
assert restored.sec == -10
assert restored.nanosec == 500000000
def test_duration_equality(self):
d1 = builtin_interfaces.Duration(sec=10, nanosec=200)
d2 = builtin_interfaces.Duration(sec=10, nanosec=200)
d3 = builtin_interfaces.Duration(sec=10, nanosec=300)
assert d1 == d2
assert d1 != d3
def test_duration_zero(self):
duration = builtin_interfaces.Duration(sec=0, nanosec=0)
data = duration.serialize()
restored = builtin_interfaces.Duration.deserialize(data)
assert restored.sec == 0
assert restored.nanosec == 0