<s> import unittest <EOL> from . import PlotDeviceTestCase , reference <EOL> from plotdevice import * <EOL> class GeometryTests ( PlotDeviceTestCase ) : <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_graphics_state7 ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> rect ( <NUM_LIT:20> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ) <EOL> with transform ( ) : <EOL> rotate ( <NUM_LIT> ) <EOL> rect ( <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ) <EOL> rect ( <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_math_angle ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> r = <NUM_LIT> <EOL> origin = Point ( WIDTH / <NUM_LIT:2> , HEIGHT / <NUM_LIT:2> ) <EOL> for i in range ( <NUM_LIT:5> ) : <EOL> pt = Point ( random ( WIDTH ) , random ( HEIGHT ) ) <EOL> arc ( pt , r ) <EOL> a = origin . angle ( pt ) <EOL> with transform ( CORNER ) : <EOL> translate ( origin . x , origin . y ) <EOL> rotate ( - a ) <EOL> arrow ( <NUM_LIT:30> , <NUM_LIT:0> , <NUM_LIT:10> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_math_coordinates ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> r = <NUM_LIT> <EOL> origin = Point ( WIDTH / <NUM_LIT:2> , HEIGHT / <NUM_LIT:2> ) <EOL> arc ( origin , r ) <EOL> for i in range ( <NUM_LIT:10> ) : <EOL> a = <NUM_LIT> * i <EOL> pt = origin . coordinates ( <NUM_LIT> , a ) <EOL> arc ( pt , r ) <EOL> line ( origin , pt ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_math_perpendicular ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> stroke ( <NUM_LIT:0.5> ) and nofill ( ) <EOL> path = oval ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) <EOL> for t in range ( <NUM_LIT:50> ) : <EOL> curve = path . point ( t / <NUM_LIT> ) <EOL> a = curve . angle ( curve . ctrl2 ) <EOL> with transform ( CORNER ) : <EOL> translate ( curve . x , curve . y ) <EOL> rotate ( - a + <NUM_LIT> ) <EOL> line ( <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT> , <NUM_LIT:0> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_math_angles ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> with stroke ( <NUM_LIT:0> ) , nofill ( ) : <EOL> arc ( <NUM_LIT:50> , <NUM_LIT> , <NUM_LIT> , range = <NUM_LIT> ) <EOL> geometry ( RADIANS ) <EOL> arc ( <NUM_LIT:50> , <NUM_LIT> , <NUM_LIT> , range = pi ) <EOL> geometry ( PERCENT ) <EOL> arc ( <NUM_LIT:50> , <NUM_LIT> , <NUM_LIT> , range = <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_point_angle ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> src = Point ( <NUM_LIT> , <NUM_LIT> ) <EOL> dst = Point ( <NUM_LIT> , <NUM_LIT> ) <EOL> theta = src . angle ( dst ) <EOL> arc ( src , <NUM_LIT:4> , fill = '<STR_LIT>' ) <EOL> arc ( dst , <NUM_LIT:4> , fill = '<STR_LIT>' ) <EOL> with pen ( dash = <NUM_LIT:5> ) , stroke ( <NUM_LIT> ) , nofill ( ) : <EOL> arc ( src , <NUM_LIT:32> , range = theta ) <EOL> self . assertAlmostEqual ( theta , - <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_point_distance ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> src = Point ( <NUM_LIT> , <NUM_LIT> ) <EOL> dst = Point ( <NUM_LIT:100> , <NUM_LIT:100> ) <EOL> length = src . distance ( dst ) <EOL> arc ( src , <NUM_LIT:4> , fill = '<STR_LIT>' ) <EOL> arc ( dst , <NUM_LIT:4> , fill = '<STR_LIT>' ) <EOL> with pen ( dash = <NUM_LIT:5> ) , stroke ( <NUM_LIT> ) : <EOL> line ( src , dst ) <EOL> self . assertAlmostEqual ( length , <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_point_reflect ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> origin = Point ( <NUM_LIT:50> , <NUM_LIT:50> ) <EOL> src = Point ( <NUM_LIT> , <NUM_LIT> ) <EOL> dst = origin . reflect ( src , d = <NUM_LIT> ) <EOL> arc ( src , <NUM_LIT:4> , fill = '<STR_LIT>' ) <EOL> arc ( dst , <NUM_LIT:4> , fill = '<STR_LIT>' ) <EOL> arc ( origin , <NUM_LIT:4> , fill = <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_point_coordinates ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> origin = Point ( <NUM_LIT:50> , <NUM_LIT:50> ) <EOL> dst = origin . coordinates ( <NUM_LIT:50> , <NUM_LIT> ) <EOL> arc ( origin , <NUM_LIT:4> , fill = <NUM_LIT> ) <EOL> arc ( dst , <NUM_LIT:4> , fill = '<STR_LIT>' ) <EOL> with pen ( dash = <NUM_LIT:3> ) , stroke ( <NUM_LIT> ) , nofill ( ) : <EOL> arc ( origin , <NUM_LIT> , range = <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_region_intersect ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> r1 = Region ( <NUM_LIT:20> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT:30> ) <EOL> r2 = Region ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> ) <EOL> overlap = r1 . intersect ( r2 ) <EOL> with nofill ( ) , stroke ( <NUM_LIT> ) : <EOL> rect ( r1 ) <EOL> rect ( r2 ) <EOL> rect ( overlap , stroke = '<STR_LIT>' , dash = <NUM_LIT:3> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_region_union ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> r1 = Region ( <NUM_LIT:20> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT:30> ) <EOL> r2 = Region ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> ) <EOL> union = r1 . union ( r2 ) <EOL> with nofill ( ) , stroke ( <NUM_LIT> ) : <EOL> rect ( r1 ) <EOL> rect ( r2 ) <EOL> rect ( union , stroke = '<STR_LIT>' , dash = <NUM_LIT:3> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_region_shift ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> r = Region ( <NUM_LIT:20> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT:30> ) <EOL> shifted = r . shift ( <NUM_LIT:20> , <NUM_LIT:15> ) <EOL> nofill ( ) <EOL> rect ( r , stroke = <NUM_LIT> ) <EOL> rect ( shifted , stroke = '<STR_LIT>' , dash = <NUM_LIT:3> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_region_inset ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> r = Region ( <NUM_LIT:30> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) <EOL> shrunk = r . inset ( <NUM_LIT:20> , <NUM_LIT:5> ) <EOL> grown = r . inset ( - <NUM_LIT:20> ) <EOL> nofill ( ) <EOL> rect ( r , stroke = <NUM_LIT> ) <EOL> rect ( shrunk , stroke = '<STR_LIT>' , dash = <NUM_LIT:3> ) <EOL> rect ( grown , stroke = '<STR_LIT>' , dash = <NUM_LIT:3> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_reset ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> font ( <NUM_LIT> ) , fill ( <NUM_LIT> ) <EOL> rotate ( <NUM_LIT> ) <EOL> text ( "<STR_LIT>" , <NUM_LIT:30> , <NUM_LIT> ) <EOL> text ( "<STR_LIT>" , <NUM_LIT> , <NUM_LIT> ) <EOL> reset ( ) <EOL> text ( "<STR_LIT>" , <NUM_LIT> , <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_rotate ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> fill ( <NUM_LIT> ) <EOL> rotate ( - <NUM_LIT> ) <EOL> rect ( <NUM_LIT:30> , <NUM_LIT:30> , <NUM_LIT> , <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_scale ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> fill ( <NUM_LIT> ) <EOL> poly ( <NUM_LIT:30> , <NUM_LIT:30> , <NUM_LIT:20> ) <EOL> scale ( <NUM_LIT:0.5> ) <EOL> poly ( <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT:20> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_skew ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> fill ( <NUM_LIT> ) <EOL> skew ( <NUM_LIT> ) <EOL> rect ( <NUM_LIT:20> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_pop ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> fill ( <NUM_LIT> ) <EOL> fontsize ( <NUM_LIT> ) <EOL> rotate ( <NUM_LIT> ) <EOL> text ( "<STR_LIT>" , <NUM_LIT> , <NUM_LIT> ) <EOL> with transform ( ) : <EOL> rotate ( - <NUM_LIT> ) <EOL> text ( "<STR_LIT>" , <NUM_LIT> , <NUM_LIT> ) <EOL> text ( "<STR_LIT>" , <NUM_LIT:50> , <NUM_LIT> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_translate ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> fill ( <NUM_LIT> ) <EOL> arc ( <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> ) <EOL> translate ( <NUM_LIT:50> , <NUM_LIT:50> ) <EOL> arc ( <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT:20> ) <EOL> @ reference ( '<STR_LIT>' ) <EOL> def test_push ( self ) : <EOL> size ( <NUM_LIT> , <NUM_LIT> ) <EOL> fill ( <NUM_LIT> ) <EOL> fontsize ( <NUM_LIT> ) <EOL> rotate ( <NUM_LIT> ) <EOL> text ( "<STR_LIT>" , <NUM_LIT> , <NUM_LIT> ) <EOL> push ( ) <EOL> rotate ( - <NUM_LIT> ) <EOL> text ( "<STR_LIT>" , <NUM_LIT> , <NUM_LIT> ) <EOL> pop ( ) <EOL> text ( "<STR_LIT>" , <NUM_LIT:50> , <NUM_LIT> ) <EOL> def suite ( ) : <EOL> suite = unittest . TestSuite ( ) <EOL> suite . addTest ( unittest . makeSuite ( GeometryTests ) ) <EOL> return suite </s>
