import sys
import unittest
from dataclasses import dataclass
from typing import *
sys.setrecursionlimit(10**6)
## mixed data is represented by sum types; in Python
## we express this using Union
## PLEASE PLEASE no undeclared sentinel values
MaybeYear = Union[int,None]
# has it been 10 years since the thing happened?
def ten_years_elapsed(thing_year : MaybeYear, this_year : int) -> bool:
match thing_year:
case None:
return False
case i:
return (this_year - i) > 10
class MyTests(unittest.TestCase):
def test_ten_years_elapsed(self):
self.assertEqual(False,ten_years_elapsed(None,2025))
self.assertEqual(False,ten_years_elapsed(2023,2025))
self.assertEqual(True,ten_years_elapsed(2010,2025))