-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtest.py
More file actions
65 lines (50 loc) · 1.85 KB
/
test.py
File metadata and controls
65 lines (50 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from unittest import main, TestCase
from datetime import datetime, timedelta
from span import Span
now = datetime.now()
class SpanTests(TestCase):
def test_intersects(self):
"""
.intersects(), .lintersects(), .rintersects()
"""
s1 = Span(now, now + timedelta(minutes=60))
s2 = Span(now + timedelta(minutes=30), now + timedelta(minutes=90))
self.assertTrue(s1.lintersects(s2))
self.assertFalse(s1.rintersects(s2))
self.assertTrue(s1.intersects(s2))
self.assertTrue(s2.rintersects(s1))
self.assertFalse(s2.lintersects(s1))
self.assertTrue(s2.intersects(s1))
def test_touches(self):
"""
.touches(), .ltouches(), .rtouches()
"""
s1 = Span(now, now + timedelta(minutes=60))
s2 = Span(now + timedelta(minutes=60), now + timedelta(minutes=120))
self.assertTrue(s1.ltouches(s2))
self.assertFalse(s1.rtouches(s2))
self.assertTrue(s1.touches(s2))
self.assertFalse(s2.ltouches(s1))
self.assertTrue(s2.rtouches(s1))
self.assertTrue(s2.touches(s1))
def test_encompasses(self):
"""
.encompasses(), .encompassed_by()
"""
s1 = Span(now, now + timedelta(minutes=60))
s2 = Span(now + timedelta(minutes=15), now + timedelta(minutes=45))
self.assertTrue(s1.encompasses(s2))
self.assertFalse(s2.encompasses(s1))
self.assertTrue(s2.encompassed_by(s1))
self.assertFalse(s1.encompassed_by(s2))
def test_equality(self):
"""
.__eq__(), .__ne__()
"""
s1 = Span(now, now + timedelta(minutes=60))
s2 = Span(now, now + timedelta(minutes=60))
s3 = Span(now, now + timedelta(minutes=59))
self.assertTrue(s1 == s2)
self.assertTrue(s1 != s3)
if __name__ == '__main__':
main()