Module to handle spacemaps

Hex Artifact Content
anonymous

Hex Artifact Content

Artifact 5baa66cc41f58563de2a1c42fe0360dc383f54526d9b9165f7c85f375940ad1d:


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                                               .