Question: 
Write a function to extract the ranges that are missing from the given list with the given start range and end range values.


Model's Code:
def extract_missing(ranges, start, end):
    missing_ranges = []
    ranges = sorted((min(a, b), max(a, b)) for a, b in ranges)

    current_start = start

    for a, b in ranges:
        if current_start < a:
            missing_ranges.append((current_start, a))
        current_start = max(current_start, b)

    if current_start < end:
        missing_ranges.append((current_start, end))

    return missing_ranges



Sample Correct Code:
def extract_missing(test_list, strt_val, stop_val):
  res = []
  for sub in test_list:
    if sub[0] > strt_val:
      res.append((strt_val, sub[0]))
      strt_val = sub[1]
    if strt_val < stop_val:
      res.append((strt_val, stop_val))
  return (res) 


Asserts:
assert extract_missing([(6, 9), (15, 34), (48, 70)], 2, 100) == [(2, 6), (9, 100), (9, 15), (34, 100), (34, 48), (70, 100)]
assert extract_missing([(7, 2), (15, 19), (38, 50)], 5, 60) == [(5, 7), (2, 60), (2, 15), (19, 60), (19, 38), (50, 60)]
assert extract_missing([(7, 2), (15, 19), (38, 50)], 1, 52) == [(1, 7), (2, 52), (2, 15), (19, 52), (19, 38), (50, 52)]


Tests:
Test 1 of 3: FAIL: AssertionError()

Test 110 of 974: 83/110 (75.45454545454545%): failed