0000: 64 65 66 20 74 65 73 74 28 29 3a 0a 09 64 65 66 def test():..def
0010: 20 63 68 65 63 6b 28 64 65 73 63 2c 20 63 6f 72 check(desc, cor
0020: 72 65 63 74 2c 20 72 65 73 75 6c 74 29 3a 0a 09 rect, result):..
0030: 09 69 66 20 63 6f 72 72 65 63 74 20 3d 3d 20 72 .if correct == r
0040: 65 73 75 6c 74 3a 0a 09 09 09 70 72 69 6e 74 28 esult:....print(
0050: 27 50 41 53 53 45 44 3a 27 2c 20 64 65 73 63 2c 'PASSED:', desc,
0060: 20 27 3d 3d 27 20 2c 20 72 65 73 75 6c 74 2c 20 '==' , result,
0070: 27 3d 3d 27 2c 20 63 6f 72 72 65 63 74 29 0a 09 '==', correct)..
0080: 09 65 6c 73 65 3a 0a 09 09 09 70 72 69 6e 74 28 .else:....print(
0090: 27 46 41 49 4c 45 44 3a 27 2c 20 64 65 73 63 2c 'FAILED:', desc,
00a0: 20 27 3d 3d 27 20 2c 20 72 65 73 75 6c 74 2c 20 '==' , result,
00b0: 27 21 3d 27 2c 20 63 6f 72 72 65 63 74 29 0a 0a '!=', correct)..
00c0: 09 63 68 65 63 6b 28 27 5b 34 3a 38 29 20 2d 20 .check('[4:8) -
00d0: 5b 30 3a 32 29 2c 5b 33 3a 35 29 27 2c 20 53 70 [0:2),[3:5)', Sp
00e0: 61 63 65 4d 61 70 28 7b 35 3a 38 7d 29 2c 20 53 aceMap({5:8}), S
00f0: 70 61 63 65 4d 61 70 28 7b 34 3a 38 7d 29 20 2d paceMap({4:8}) -
0100: 20 53 70 61 63 65 4d 61 70 28 7b 30 3a 32 2c 20 SpaceMap({0:2,
0110: 33 3a 35 7d 29 29 0a 09 63 68 65 63 6b 28 27 5b 3:5}))..check('[
0120: 34 3a 38 29 2c 5b 38 3a 39 30 29 27 2c 20 53 70 4:8),[8:90)', Sp
0130: 61 63 65 4d 61 70 28 7b 34 3a 39 30 7d 29 2c 20 aceMap({4:90}),
0140: 53 70 61 63 65 4d 61 70 28 7b 34 3a 38 2c 20 38 SpaceMap({4:8, 8
0150: 3a 39 30 7d 29 29 0a 09 63 68 65 63 6b 28 27 5b :90}))..check('[
0160: 34 3a 38 29 2c 5b 38 30 3a 39 30 29 20 2d 20 5b 4:8),[80:90) - [
0170: 30 3a 32 29 27 2c 20 53 70 61 63 65 4d 61 70 28 0:2)', SpaceMap(
0180: 7b 34 3a 38 2c 20 38 30 3a 39 30 7d 29 2c 20 53 {4:8, 80:90}), S
0190: 70 61 63 65 4d 61 70 28 7b 34 3a 38 2c 20 38 30 paceMap({4:8, 80
01a0: 3a 39 30 7d 29 20 2d 20 53 70 61 63 65 4d 61 70 :90}) - SpaceMap
01b0: 28 7b 30 3a 32 7d 29 29 0a 09 63 68 65 63 6b 28 ({0:2}))..check(
01c0: 27 5b 34 3a 38 29 2c 5b 38 30 3a 39 30 29 20 2d '[4:8),[80:90) -
01d0: 20 5b 30 3a 31 30 29 27 2c 20 53 70 61 63 65 4d [0:10)', SpaceM
01e0: 61 70 28 7b 38 30 3a 39 30 7d 29 2c 20 53 70 61 ap({80:90}), Spa
01f0: 63 65 4d 61 70 28 7b 34 3a 38 2c 20 38 30 3a 39 ceMap({4:8, 80:9
0200: 30 7d 29 20 2d 20 53 70 61 63 65 4d 61 70 28 7b 0}) - SpaceMap({
0210: 30 3a 31 30 7d 29 29 0a 09 63 68 65 63 6b 28 27 0:10}))..check('
0220: 5b 34 3a 38 29 2c 5b 38 30 3a 39 30 29 20 2d 20 [4:8),[80:90) -
0230: 5b 31 30 3a 32 30 29 27 2c 20 53 70 61 63 65 4d [10:20)', SpaceM
0240: 61 70 28 7b 34 3a 38 2c 20 38 30 3a 39 30 7d 29 ap({4:8, 80:90})
0250: 2c 20 53 70 61 63 65 4d 61 70 28 7b 34 3a 38 2c , SpaceMap({4:8,
0260: 20 38 30 3a 39 30 7d 29 20 2d 20 53 70 61 63 65 80:90}) - Space
0270: 4d 61 70 28 7b 31 30 3a 32 30 7d 29 29 0a 09 63 Map({10:20}))..c
0280: 68 65 63 6b 28 27 5b 34 3a 38 29 2c 5b 38 30 3a heck('[4:8),[80:
0290: 39 30 29 20 2d 20 5b 31 30 3a 32 30 29 27 2c 20 90) - [10:20)',
02a0: 53 70 61 63 65 4d 61 70 28 7b 34 3a 38 7d 29 2c SpaceMap({4:8}),
02b0: 20 53 70 61 63 65 4d 61 70 28 7b 34 3a 38 2c 20 SpaceMap({4:8,
02c0: 38 30 3a 39 30 7d 29 20 2d 20 53 70 61 63 65 4d 80:90}) - SpaceM
02d0: 61 70 28 7b 31 30 3a 31 30 30 7d 29 29 0a 09 63 ap({10:100}))..c
02e0: 68 65 63 6b 28 27 5b 32 3a 39 29 20 2d 20 5b 31 heck('[2:9) - [1
02f0: 30 3a 31 35 29 2c 5b 32 30 3a 34 38 29 2c 5b 36 0:15),[20:48),[6
0300: 30 3a 31 30 30 29 27 2c 20 53 70 61 63 65 4d 61 0:100)', SpaceMa
0310: 70 28 7b 34 38 3a 20 36 30 2c 20 32 3a 20 31 30 p({48: 60, 2: 10
0320: 2c 20 31 35 3a 20 32 30 7d 29 2c 20 53 70 61 63 , 15: 20}), Spac
0330: 65 4d 61 70 28 7b 32 3a 39 30 7d 29 20 2d 20 53 eMap({2:90}) - S
0340: 70 61 63 65 4d 61 70 28 7b 31 30 3a 31 35 2c 20 paceMap({10:15,
0350: 32 30 3a 34 38 2c 20 36 30 3a 31 30 30 7d 29 29 20:48, 60:100}))
0360: 0a 09 63 68 65 63 6b 28 27 5b 32 3a 35 29 20 61 ..check('[2:5) a
0370: 6e 64 20 5b 31 30 3a 31 35 29 27 2c 20 53 70 61 nd [10:15)', Spa
0380: 63 65 4d 61 70 28 7b 32 3a 20 35 2c 20 31 30 3a ceMap({2: 5, 10:
0390: 20 31 35 7d 29 2c 20 53 70 61 63 65 4d 61 70 28 15}), SpaceMap(
03a0: 7b 32 3a 20 35 7d 29 20 61 6e 64 20 53 70 61 63 {2: 5}) and Spac
03b0: 65 4d 61 70 28 7b 31 30 3a 20 31 35 7d 29 29 0a eMap({10: 15})).
03c0: 09 72 65 74 75 72 6e 28 4e 6f 6e 65 29 0a 0a 09 .return(None)...
03d0: 70 72 69 6e 74 28 53 70 61 63 65 4d 61 70 28 7b print(SpaceMap({
03e0: 34 3a 38 7d 29 20 2d 20 53 70 61 63 65 4d 61 70 4:8}) - SpaceMap
03f0: 28 7b 30 3a 34 7d 29 29 0a 09 70 72 69 6e 74 28 ({0:4}))..print(
0400: 53 70 61 63 65 4d 61 70 28 7b 34 3a 38 7d 29 20 SpaceMap({4:8})
0410: 2d 20 53 70 61 63 65 4d 61 70 28 7b 30 3a 35 7d - SpaceMap({0:5}
0420: 29 29 0a 09 70 72 69 6e 74 28 53 70 61 63 65 4d ))..print(SpaceM
0430: 61 70 28 7b 34 3a 38 7d 29 20 2d 20 53 70 61 63 ap({4:8}) - Spac
0440: 65 4d 61 70 28 7b 30 3a 38 7d 29 29 0a 09 70 72 eMap({0:8}))..pr
0450: 69 6e 74 28 53 70 61 63 65 4d 61 70 28 7b 34 3a int(SpaceMap({4:
0460: 38 7d 29 20 2d 20 53 70 61 63 65 4d 61 70 28 7b 8}) - SpaceMap({
0470: 30 3a 31 30 7d 29 29 0a 09 70 72 69 6e 74 28 53 0:10}))..print(S
0480: 70 61 63 65 4d 61 70 28 7b 34 3a 38 7d 29 20 2d paceMap({4:8}) -
0490: 20 53 70 61 63 65 4d 61 70 28 7b 34 3a 34 7d 29 SpaceMap({4:4})
04a0: 29 0a 09 70 72 69 6e 74 28 53 70 61 63 65 4d 61 )..print(SpaceMa
04b0: 70 28 7b 34 3a 38 7d 29 20 2d 20 53 70 61 63 65 p({4:8}) - Space
04c0: 4d 61 70 28 7b 34 3a 35 7d 29 29 0a 09 70 72 69 Map({4:5}))..pri
04d0: 6e 74 28 53 70 61 63 65 4d 61 70 28 7b 34 3a 38 nt(SpaceMap({4:8
04e0: 7d 29 20 2d 20 53 70 61 63 65 4d 61 70 28 7b 34 }) - SpaceMap({4
04f0: 3a 38 7d 29 29 0a 09 70 72 69 6e 74 28 53 70 61 :8}))..print(Spa
0500: 63 65 4d 61 70 28 7b 34 3a 38 7d 29 20 2d 20 53 ceMap({4:8}) - S
0510: 70 61 63 65 4d 61 70 28 7b 34 3a 31 30 7d 29 29 paceMap({4:10}))
0520: 0a 09 70 72 69 6e 74 28 53 70 61 63 65 4d 61 70 ..print(SpaceMap
0530: 28 7b 34 3a 38 7d 29 20 2d 20 53 70 61 63 65 4d ({4:8}) - SpaceM
0540: 61 70 28 7b 35 3a 35 7d 29 29 0a 09 70 72 69 6e ap({5:5}))..prin
0550: 74 28 53 70 61 63 65 4d 61 70 28 7b 34 3a 38 7d t(SpaceMap({4:8}
0560: 29 20 2d 20 53 70 61 63 65 4d 61 70 28 7b 35 3a ) - SpaceMap({5:
0570: 38 7d 29 29 0a 09 70 72 69 6e 74 28 53 70 61 63 8}))..print(Spac
0580: 65 4d 61 70 28 7b 34 3a 38 7d 29 20 2d 20 53 70 eMap({4:8}) - Sp
0590: 61 63 65 4d 61 70 28 7b 35 3a 31 30 7d 29 29 0a aceMap({5:10})).
05a0: 09 70 72 69 6e 74 28 53 70 61 63 65 4d 61 70 28 .print(SpaceMap(
05b0: 7b 34 3a 38 7d 29 20 2d 20 53 70 61 63 65 4d 61 {4:8}) - SpaceMa
05c0: 70 28 7b 38 3a 38 7d 29 29 0a 09 70 72 69 6e 74 p({8:8}))..print
05d0: 28 53 70 61 63 65 4d 61 70 28 7b 34 3a 38 7d 29 (SpaceMap({4:8})
05e0: 20 2d 20 53 70 61 63 65 4d 61 70 28 7b 38 3a 31 - SpaceMap({8:1
05f0: 30 7d 29 29 0a 09 70 72 69 6e 74 28 53 70 61 63 0}))..print(Spac
0600: 65 4d 61 70 28 7b 34 3a 38 7d 29 20 2d 20 53 70 eMap({4:8}) - Sp
0610: 61 63 65 4d 61 70 28 7b 31 30 3a 31 30 7d 29 29 aceMap({10:10}))
0620: 0a .