Exemple #1
0
    #These two lines do the exact same thing.  However, the first is preferred as it only creates
    #a shape in generating the mask, as opposed to an entire Region.  Therefore, the serialization
    #of R after the first call is smaller than the serialization of R after only running the second
    #line.
    R("INT", "SQUARE", Location(0, 0), Location(31, 19))
    R &= Region("SQUARE", Location(0, 0), Location(31, 19))

    l1 = Location(15, 10)
    assert l1 in R
    R("XOR", "SQUARE", Location(0, 0), Location(31, 19))
    assert l1 not in R
    R ^= Region("SQUARE", Location(0, 0), Location(31, 19))
    assert l1 in R
    print R

    assert l1.move(6, 2) not in R
    for l2 in R:
        assert l2 in R

    S = Region(R)
    assert S == R
    S("ADD", "LINE", Location(0, 0), Location(31, 19), 3)
    S("ADD", "LINE", Location(0, 19), Location(31, 0), 3)
    assert S != R
    S = Region(R.dehydrate())
    assert S == R
    S("ADD", "CIRCLE", Location(4, 12), 3)
    assert S != R

    assert Location(0, 0) in Region("CIRCLE", Location(0, 0), 10)