Guest User

Inlay intervals algorithm tests

a guest
Apr 11th, 2024
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 26.47 KB | None | 0 0
  1. from typing import Callable
  2. from unittest import TestCase
  3. from data_interval import DataInterval, inlay_data_intervals
  4.  
  5.  
  6. def _example():
  7.     # data intervals (example):
  8.     #    0    1    2    3    4    5    6    7    8    9    10
  9.     # 1            [___]                            
  10.     # 2    [___________________________________]    
  11.     # 3    [_______]                                
  12.     # 8        [_______________________]            
  13.     # 7                        [___________________]
  14.     # 6                                    [___]    
  15.     # 4        [_______________________]  
  16.  
  17.     # (data, start, stop)
  18.     intervals = [
  19.         DataInterval(data, start, stop) for (data, start, stop) in [
  20.             (0, 9, 2),
  21.             (0, 2, 3),
  22.             (1, 7, 8),
  23.             (1, 7, 4),
  24.             (3, 4, 1),
  25.             (5, 10, 5),
  26.             (8, 9, 6),
  27.         ]
  28.     ]
  29.    
  30. class TestInlayTwoIntervals(TestCase):
  31.     extract_value: Callable[[DataInterval], float] = lambda interv: (-interv.data, (interv.stop - interv.start), -interv.start)
  32.    
  33.     # All cases for two intervals:
  34.     #    0    1    2    3    4    5    6    7    8    9
  35.     #                   [______________]              
  36.     #                                                  
  37.     #  1 [_________]    |              |                 altc_altd_bltc_bltd
  38.     #  2      [_________]              |                 altc_altd_beqc_bltd
  39.     #  3           [_________]         |                 altc_altd_bgtc_bltd
  40.     #  4                [_________]    |                 aeqc_altd_bgtc_bltd
  41.     #  5                |     [___]    |                 agtc_altd_bgtc_bltd
  42.     #  6                [______________]                 aeqc_altd_bgtc_beqd
  43.     #  7           [___________________]                 altc_altd_bgtc_beqd
  44.     #  8           [________________________]            altc_altd_bgtc_bgtd
  45.     #  9                [___________________]            aeqc_altd_bgtc_bgtd
  46.     # 10                |    [_________]                 agtc_altd_bgtc_beqd
  47.     # 11                |         [_________]            agtc_altd_bgtc_bgtd
  48.     # 12                |              [_________]       agtc_aeqb_bgtc_bgtd
  49.     # 13                |              |    [_________]  agtc_agtd_bgtc_bgtd
  50.    
  51.     def lists_are_equal(self, nums1: list[float], nums2: list[float]):
  52.         return nums1 == nums2
  53.    
  54.     def build_error_message(self, inputs, expected, actual):
  55.         return 'Test FAILED!\n' + \
  56.             f'inputs: {[self.from_data_interval(interval) for interval in inputs]},\n' + \
  57.             f'expected: {[self.from_data_interval(interval) for interval in expected]},\n' + \
  58.             f'actual: {[self.from_data_interval(interval) for interval in actual]}\n'
  59.    
  60.     def from_data_interval(self, interval: DataInterval):
  61.         return (interval.data, interval.start, interval.stop)
  62.    
  63.     # value left > value right
  64.     def test_max_altc_altd_bltc_bltd_abgtcd(self):
  65.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 0, 2)]]
  66.         expected = [DataInterval(*params) for params in [(1, 0, 2), (2, 3, 6)]]
  67.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  68.         self.assertTrue(
  69.             self.lists_are_equal(
  70.                 [self.from_data_interval(interval) for interval in actual],
  71.                 [self.from_data_interval(interval) for interval in expected]
  72.             ),
  73.             self.build_error_message(inputs, expected, actual)
  74.         )
  75.    
  76.     def test_max_altc_altd_beqc_bltd_abgtcd(self):
  77.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 1, 3)]]
  78.         expected = [DataInterval(*params) for params in [(1, 1, 3), (2, 3, 6)]]
  79.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  80.         self.assertTrue(
  81.             self.lists_are_equal(
  82.                 [self.from_data_interval(interval) for interval in actual],
  83.                 [self.from_data_interval(interval) for interval in expected]
  84.             ),
  85.             self.build_error_message(inputs, expected, actual)
  86.         )
  87.    
  88.     def test_max_altc_altd_bgtc_bltd_abgtcd(self):
  89.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 2, 4)]]
  90.         expected = [DataInterval(*params) for params in [(1, 2, 3), (2, 3, 6)]]
  91.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  92.         self.assertTrue(
  93.             self.lists_are_equal(
  94.                 [self.from_data_interval(interval) for interval in actual],
  95.                 [self.from_data_interval(interval) for interval in expected]
  96.             ),
  97.             self.build_error_message(inputs, expected, actual)
  98.         )
  99.    
  100.     def test_max_aeqc_altd_bgtc_bltd_abgtcd(self):
  101.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 3, 5)]]
  102.         expected = [DataInterval(*params) for params in [(2, 3, 6)]]
  103.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  104.         self.assertTrue(
  105.             self.lists_are_equal(
  106.                 [self.from_data_interval(interval) for interval in actual],
  107.                 [self.from_data_interval(interval) for interval in expected]
  108.             ),
  109.             self.build_error_message(inputs, expected, actual)
  110.         )
  111.    
  112.     def test_max_agtc_altd_bgtc_bltd_abgtcd(self):
  113.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 4, 5)]]
  114.         expected = [DataInterval(*params) for params in [(2, 3, 6)]]
  115.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  116.         self.assertTrue(
  117.             self.lists_are_equal(
  118.                 [self.from_data_interval(interval) for interval in actual],
  119.                 [self.from_data_interval(interval) for interval in expected]
  120.             ),
  121.             self.build_error_message(inputs, expected, actual)
  122.         )
  123.    
  124.     def test_max_aeqc_altd_bgtc_beqd_abgtcd(self):
  125.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 3, 6)]]
  126.         expected = [DataInterval(*params) for params in [(2, 3, 6)]]
  127.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  128.         self.assertTrue(
  129.             self.lists_are_equal(
  130.                 [self.from_data_interval(interval) for interval in actual],
  131.                 [self.from_data_interval(interval) for interval in expected]
  132.             ),
  133.             self.build_error_message(inputs, expected, actual)
  134.         )
  135.    
  136.     def test_max_altc_altd_bgtc_beqd_abgtcd(self):
  137.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 2, 6)]]
  138.         expected = [DataInterval(*params) for params in [(1, 2, 3), (2, 3, 6)]]
  139.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  140.         self.assertTrue(
  141.             self.lists_are_equal(
  142.                 [self.from_data_interval(interval) for interval in actual],
  143.                 [self.from_data_interval(interval) for interval in expected]
  144.             ),
  145.             self.build_error_message(inputs, expected, actual)
  146.         )
  147.    
  148.     def test_max_altc_altd_bgtc_bgtd_abgtcd(self):
  149.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 2, 7)]]
  150.         expected = [DataInterval(*params) for params in [(1, 2, 3), (2, 3, 6), (1, 6, 7)]]
  151.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  152.         self.assertTrue(
  153.             self.lists_are_equal(
  154.                 [self.from_data_interval(interval) for interval in actual],
  155.                 [self.from_data_interval(interval) for interval in expected]
  156.             ),
  157.             self.build_error_message(inputs, expected, actual)
  158.         )
  159.    
  160.     def test_max_aeqc_altd_bgtc_bgtd_abgtcd(self):
  161.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 3, 7)]]
  162.         expected = [DataInterval(*params) for params in [(2, 3, 6), (1, 6, 7)]]
  163.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  164.         self.assertTrue(
  165.             self.lists_are_equal(
  166.                 [self.from_data_interval(interval) for interval in actual],
  167.                 [self.from_data_interval(interval) for interval in expected]
  168.             ),
  169.             self.build_error_message(inputs, expected, actual)
  170.         )
  171.    
  172.     def test_max_agtc_altd_bgtc_beqd_abgtcd(self):
  173.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 4, 6)]]
  174.         expected = [DataInterval(*params) for params in [(2, 3, 6)]]
  175.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  176.         self.assertTrue(
  177.             self.lists_are_equal(
  178.                 [self.from_data_interval(interval) for interval in actual],
  179.                 [self.from_data_interval(interval) for interval in expected]
  180.             ),
  181.             self.build_error_message(inputs, expected, actual)
  182.         )
  183.    
  184.     def test_max_agtc_altd_bgtc_bgtd_abgtcd(self):
  185.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 5, 7)]]
  186.         expected = [DataInterval(*params) for params in [(2, 3, 6), (1, 6, 7)]]
  187.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  188.         self.assertTrue(
  189.             self.lists_are_equal(
  190.                 [self.from_data_interval(interval) for interval in actual],
  191.                 [self.from_data_interval(interval) for interval in expected]
  192.             ),
  193.             self.build_error_message(inputs, expected, actual)
  194.         )
  195.    
  196.     def test_max_agtc_aeqb_bgtc_bgtd_abgtcd(self):
  197.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 6, 8)]]
  198.         expected = [DataInterval(*params) for params in [(2, 3, 6), (1, 6, 8)]]
  199.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  200.         self.assertTrue(
  201.             self.lists_are_equal(
  202.                 [self.from_data_interval(interval) for interval in actual],
  203.                 [self.from_data_interval(interval) for interval in expected]
  204.             ),
  205.             self.build_error_message(inputs, expected, actual)
  206.         )
  207.    
  208.     def test_max_agtc_agtd_bgtc_bgtd_abgtcd(self):
  209.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (1, 7, 9)]]
  210.         expected = [DataInterval(*params) for params in [(2, 3, 6), (1, 7, 9)]]
  211.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  212.         self.assertTrue(
  213.             self.lists_are_equal(
  214.                 [self.from_data_interval(interval) for interval in actual],
  215.                 [self.from_data_interval(interval) for interval in expected]
  216.             ),
  217.             self.build_error_message(inputs, expected, actual)
  218.         )
  219.    
  220.     # value left == value right
  221.     def test_max_altc_altd_bltc_bltd_abeqcd(self):
  222.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 0, 2)]]
  223.         expected = [DataInterval(*params) for params in [(2, 0, 2), (2, 3, 6)]]
  224.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  225.         self.assertTrue(
  226.             self.lists_are_equal(
  227.                 [self.from_data_interval(interval) for interval in actual],
  228.                 [self.from_data_interval(interval) for interval in expected]
  229.             ),
  230.             self.build_error_message(inputs, expected, actual)
  231.         )
  232.    
  233.     def test_max_altc_altd_beqc_bltd_abeqcd(self):
  234.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 1, 3)]]
  235.         expected = [DataInterval(*params) for params in [(2, 1, 3), (2, 3, 6)]]
  236.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  237.         self.assertTrue(
  238.             self.lists_are_equal(
  239.                 [self.from_data_interval(interval) for interval in actual],
  240.                 [self.from_data_interval(interval) for interval in expected]
  241.             ),
  242.             self.build_error_message(inputs, expected, actual)
  243.         )
  244.    
  245.     def test_max_altc_altd_bgtc_bltd_abeqcd(self):
  246.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 2, 4)]]
  247.         expected = [DataInterval(*params) for params in [(2, 2, 4), (2, 4, 6)]]
  248.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  249.         self.assertTrue(
  250.             self.lists_are_equal(
  251.                 [self.from_data_interval(interval) for interval in actual],
  252.                 [self.from_data_interval(interval) for interval in expected]
  253.             ),
  254.             self.build_error_message(inputs, expected, actual)
  255.         )
  256.    
  257.     def test_max_aeqc_altd_bgtc_bltd_abeqcd(self):
  258.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 3, 5)]]
  259.         expected = [DataInterval(*params) for params in [(2, 3, 5), (2, 5, 6)]]
  260.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  261.         self.assertTrue(
  262.             self.lists_are_equal(
  263.                 [self.from_data_interval(interval) for interval in actual],
  264.                 [self.from_data_interval(interval) for interval in expected]
  265.             ),
  266.             self.build_error_message(inputs, expected, actual)
  267.         )
  268.    
  269.     def test_max_agtc_altd_bgtc_bltd_abeqcd(self):
  270.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 4, 5)]]
  271.         expected = [DataInterval(*params) for params in [(2, 3, 4), (2, 4, 5), (2, 5, 6)]]
  272.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  273.         self.assertTrue(
  274.             self.lists_are_equal(
  275.                 [self.from_data_interval(interval) for interval in actual],
  276.                 [self.from_data_interval(interval) for interval in expected]
  277.             ),
  278.             self.build_error_message(inputs, expected, actual)
  279.         )
  280.    
  281.     def test_max_aeqc_altd_bgtc_beqd_abeqcd(self):
  282.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 3, 6)]]
  283.         expected = [DataInterval(*params) for params in [(2, 3, 6)]]
  284.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  285.         self.assertTrue(
  286.             self.lists_are_equal(
  287.                 [self.from_data_interval(interval) for interval in actual],
  288.                 [self.from_data_interval(interval) for interval in expected]
  289.             ),
  290.             self.build_error_message(inputs, expected, actual)
  291.         )
  292.    
  293.     def test_max_altc_altd_bgtc_beqd_abeqcd(self):
  294.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 2, 6)]]
  295.         expected = [DataInterval(*params) for params in [(2, 2, 3), (2, 3, 6)]]
  296.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  297.         self.assertTrue(
  298.             self.lists_are_equal(
  299.                 [self.from_data_interval(interval) for interval in actual],
  300.                 [self.from_data_interval(interval) for interval in expected]
  301.             ),
  302.             self.build_error_message(inputs, expected, actual)
  303.         )
  304.    
  305.     def test_max_altc_altd_bgtc_bgtd_abeqcd(self):
  306.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 2, 7)]]
  307.         expected = [DataInterval(*params) for params in [(2, 2, 3), (2, 3, 6), (2, 6, 7)]]
  308.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  309.         self.assertTrue(
  310.             self.lists_are_equal(
  311.                 [self.from_data_interval(interval) for interval in actual],
  312.                 [self.from_data_interval(interval) for interval in expected]
  313.             ),
  314.             self.build_error_message(inputs, expected, actual)
  315.         )
  316.    
  317.     def test_max_aeqc_altd_bgtc_bgtd_abeqcd(self):
  318.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 3, 7)]]
  319.         expected = [DataInterval(*params) for params in [(2, 3, 6), (2, 6, 7)]]
  320.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  321.         self.assertTrue(
  322.             self.lists_are_equal(
  323.                 [self.from_data_interval(interval) for interval in actual],
  324.                 [self.from_data_interval(interval) for interval in expected]
  325.             ),
  326.             self.build_error_message(inputs, expected, actual)
  327.         )
  328.    
  329.     def test_max_agtc_altd_bgtc_beqd_abeqcd(self):
  330.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 4, 6)]]
  331.         expected = [DataInterval(*params) for params in [(2, 3, 4), (2, 4, 6)]]
  332.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  333.         self.assertTrue(
  334.             self.lists_are_equal(
  335.                 [self.from_data_interval(interval) for interval in actual],
  336.                 [self.from_data_interval(interval) for interval in expected]
  337.             ),
  338.             self.build_error_message(inputs, expected, actual)
  339.         )
  340.    
  341.     def test_max_agtc_altd_bgtc_bgtd_abeqcd(self):
  342.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 5, 7)]]
  343.         expected = [DataInterval(*params) for params in [(2, 3, 5), (2, 5, 7)]]
  344.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  345.         self.assertTrue(
  346.             self.lists_are_equal(
  347.                 [self.from_data_interval(interval) for interval in actual],
  348.                 [self.from_data_interval(interval) for interval in expected]
  349.             ),
  350.             self.build_error_message(inputs, expected, actual)
  351.         )
  352.    
  353.     def test_max_agtc_aeqb_bgtc_bgtd_abeqcd(self):
  354.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 6, 8)]]
  355.         expected = [DataInterval(*params) for params in [(2, 3, 6), (2, 6, 8)]]
  356.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  357.         self.assertTrue(
  358.             self.lists_are_equal(
  359.                 [self.from_data_interval(interval) for interval in actual],
  360.                 [self.from_data_interval(interval) for interval in expected]
  361.             ),
  362.             self.build_error_message(inputs, expected, actual)
  363.         )
  364.    
  365.     def test_max_agtc_agtd_bgtc_bgtd_abeqcd(self):
  366.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (2, 7, 9)]]
  367.         expected = [DataInterval(*params) for params in [(2, 3, 6), (2, 7, 9)]]
  368.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  369.         self.assertTrue(
  370.             self.lists_are_equal(
  371.                 [self.from_data_interval(interval) for interval in actual],
  372.                 [self.from_data_interval(interval) for interval in expected]
  373.             ),
  374.             self.build_error_message(inputs, expected, actual)
  375.         )
  376.  
  377.     # value left < value right
  378.     def test_max_altc_altd_bltc_bltd_abltcd(self):
  379.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 0, 2)]]
  380.         expected = [DataInterval(*params) for params in [(3, 0, 2), (2, 3, 6)]]
  381.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  382.         self.assertTrue(
  383.             self.lists_are_equal(
  384.                 [self.from_data_interval(interval) for interval in actual],
  385.                 [self.from_data_interval(interval) for interval in expected]
  386.             ),
  387.             self.build_error_message(inputs, expected, actual)
  388.         )
  389.    
  390.     def test_max_altc_altd_beqc_bltd_abltcd(self):
  391.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 1, 3)]]
  392.         expected = [DataInterval(*params) for params in [(3, 1, 3), (2, 3, 6)]]
  393.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  394.         self.assertTrue(
  395.             self.lists_are_equal(
  396.                 [self.from_data_interval(interval) for interval in actual],
  397.                 [self.from_data_interval(interval) for interval in expected]
  398.             ),
  399.             self.build_error_message(inputs, expected, actual)
  400.         )
  401.    
  402.     def test_max_altc_altd_bgtc_bltd_abltcd(self):
  403.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 2, 4)]]
  404.         expected = [DataInterval(*params) for params in [(3, 2, 4), (2, 4, 6)]]
  405.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  406.         self.assertTrue(
  407.             self.lists_are_equal(
  408.                 [self.from_data_interval(interval) for interval in actual],
  409.                 [self.from_data_interval(interval) for interval in expected]
  410.             ),
  411.             self.build_error_message(inputs, expected, actual)
  412.         )
  413.    
  414.     def test_max_aeqc_altd_bgtc_bltd_abltcd(self):
  415.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 3, 5)]]
  416.         expected = [DataInterval(*params) for params in [(3, 3, 5), (2, 5, 6)]]
  417.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  418.         self.assertTrue(
  419.             self.lists_are_equal(
  420.                 [self.from_data_interval(interval) for interval in actual],
  421.                 [self.from_data_interval(interval) for interval in expected]
  422.             ),
  423.             self.build_error_message(inputs, expected, actual)
  424.         )
  425.    
  426.     def test_max_agtc_altd_bgtc_bltd_abltcd(self):
  427.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 4, 5)]]
  428.         expected = [DataInterval(*params) for params in [(2, 3, 4), (3, 4, 5), (2, 5, 6)]]
  429.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  430.         self.assertTrue(
  431.             self.lists_are_equal(
  432.                 [self.from_data_interval(interval) for interval in actual],
  433.                 [self.from_data_interval(interval) for interval in expected]
  434.             ),
  435.             self.build_error_message(inputs, expected, actual)
  436.         )
  437.    
  438.     def test_max_aeqc_altd_bgtc_beqd_abltcd(self):
  439.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 3, 6)]]
  440.         expected = [DataInterval(*params) for params in [(3, 3, 6)]]
  441.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  442.         self.assertTrue(
  443.             self.lists_are_equal(
  444.                 [self.from_data_interval(interval) for interval in actual],
  445.                 [self.from_data_interval(interval) for interval in expected]
  446.             ),
  447.             self.build_error_message(inputs, expected, actual)
  448.         )
  449.    
  450.     def test_max_altc_altd_bgtc_beqd_abltcd(self):
  451.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 2, 6)]]
  452.         expected = [DataInterval(*params) for params in [(3, 2, 6)]]
  453.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  454.         self.assertTrue(
  455.             self.lists_are_equal(
  456.                 [self.from_data_interval(interval) for interval in actual],
  457.                 [self.from_data_interval(interval) for interval in expected]
  458.             ),
  459.             self.build_error_message(inputs, expected, actual)
  460.         )
  461.    
  462.     def test_max_altc_altd_bgtc_bgtd_abltcd(self):
  463.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 2, 7)]]
  464.         expected = [DataInterval(*params) for params in [(3, 2, 7)]]
  465.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  466.         self.assertTrue(
  467.             self.lists_are_equal(
  468.                 [self.from_data_interval(interval) for interval in actual],
  469.                 [self.from_data_interval(interval) for interval in expected]
  470.             ),
  471.             self.build_error_message(inputs, expected, actual)
  472.         )
  473.    
  474.     def test_max_aeqc_altd_bgtc_bgtd_abltcd(self):
  475.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 3, 7)]]
  476.         expected = [DataInterval(*params) for params in [(3, 3, 7)]]
  477.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  478.         self.assertTrue(
  479.             self.lists_are_equal(
  480.                 [self.from_data_interval(interval) for interval in actual],
  481.                 [self.from_data_interval(interval) for interval in expected]
  482.             ),
  483.             self.build_error_message(inputs, expected, actual)
  484.         )
  485.    
  486.     def test_max_agtc_altd_bgtc_beqd_abltcd(self):
  487.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 4, 6)]]
  488.         expected = [DataInterval(*params) for params in [(2, 3, 4), (3, 4, 6)]]
  489.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  490.         self.assertTrue(
  491.             self.lists_are_equal(
  492.                 [self.from_data_interval(interval) for interval in actual],
  493.                 [self.from_data_interval(interval) for interval in expected]
  494.             ),
  495.             self.build_error_message(inputs, expected, actual)
  496.         )
  497.    
  498.     def test_max_agtc_altd_bgtc_bgtd_abltcd(self):
  499.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 5, 7)]]
  500.         expected = [DataInterval(*params) for params in [(2, 3, 5), (3, 5, 7)]]
  501.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  502.         self.assertTrue(
  503.             self.lists_are_equal(
  504.                 [self.from_data_interval(interval) for interval in actual],
  505.                 [self.from_data_interval(interval) for interval in expected]
  506.             ),
  507.             self.build_error_message(inputs, expected, actual)
  508.         )
  509.    
  510.     def test_max_agtc_aeqb_bgtc_bgtd_abltcd(self):
  511.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 6, 8)]]
  512.         expected = [DataInterval(*params) for params in [(2, 3, 6), (3, 6, 8)]]
  513.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  514.         self.assertTrue(
  515.             self.lists_are_equal(
  516.                 [self.from_data_interval(interval) for interval in actual],
  517.                 [self.from_data_interval(interval) for interval in expected]
  518.             ),
  519.             self.build_error_message(inputs, expected, actual)
  520.         )
  521.    
  522.     def test_max_agtc_agtd_bgtc_bgtd_abltcd(self):
  523.         inputs = [DataInterval(*params) for params in [(2, 3, 6), (3, 7, 9)]]
  524.         expected = [DataInterval(*params) for params in [(2, 3, 6), (3, 7, 9)]]
  525.         actual = list(inlay_data_intervals(inputs, key=TestInlayTwoIntervals.extract_value))
  526.         self.assertTrue(
  527.             self.lists_are_equal(
  528.                 [self.from_data_interval(interval) for interval in actual],
  529.                 [self.from_data_interval(interval) for interval in expected]
  530.             ),
  531.             self.build_error_message(inputs, expected, actual)
  532.         )
Tags: intervals
Advertisement
Add Comment
Please, Sign In to add comment