def run (autoTester):
    squares = [i * i for i in range (10) if i % 2]
    autoTester.check (squares)
    
    tuples = [
        (x, y, z)
        for x in (100, 200, 300, 400, 500, 600, 700)
            for y in (10, 20, 30, 40, 50, 60, 70) if 20 < y  < 60
                for z in (1, 2, 3, 4, 5, 6, 7) if 200 < x < 600 if 2 < z < 6
    ]
    autoTester.check (tuples)
    
    tricky = [(2 * x, 3 * y) for x, y in ((10, 11), (20, 21))]
    autoTester.check (tricky)
    
    nested = [2 * x for x in [x * x for x in range (3)]]
    autoTester.check (nested)
    
    a = 100
    x = 5
    scopeTest = [x + a for x in range (5)]
    autoTester.check (x)
    autoTester.check (scopeTest)
