def test_arc_shape(self):
        """ Arc shapes are generated correctly. """
        parser = EagleXML()

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='180')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, 0)
        self.assertEqual(s.start_angle, 0.0)
        self.assertEqual(s.end_angle, 1.0)
        self.assertEqual(s.radius, parser.make_length('25.4'))

        w = wire(x1='-25.4', y1='0', x2='25.4', y2='0', curve='180')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, 0)
        self.assertEqual(s.start_angle, 1.0)
        self.assertEqual(s.end_angle, 0.0)
        self.assertEqual(s.radius, parser.make_length('25.4'))

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='90')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, self.make_length('-25.4'))
        self.assertEqual(s.start_angle, 0.25)
        self.assertEqual(s.end_angle, 0.75)
        self.assertEqual(s.radius, parser.make_length('35.915'))

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='-90')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, self.make_length('25.4'))
        self.assertEqual(s.start_angle, 1.25)
        self.assertEqual(s.end_angle, 1.75)
        self.assertEqual(s.radius, parser.make_length('35.915'))

        w = wire(x1='0', y1='25.4', x2='0', y2='-25.4', curve='90')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, self.make_length('25.4'))
        self.assertEqual(s.y, 0)
        self.assertEqual(s.start_angle, 0.75)
        self.assertEqual(s.end_angle, 1.25)
        self.assertEqual(s.radius, parser.make_length('35.915'))

        w = wire(x1='0', y1='25.4', x2='0', y2='-25.4', curve='-180')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, 0)
        self.assertEqual(s.start_angle, 1.5)
        self.assertEqual(s.end_angle, 0.5)
        self.assertEqual(s.radius, parser.make_length('25.4'))

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='270')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, self.make_length('25.4'))
        self.assertEqual(s.start_angle, 1.75)
        self.assertEqual(s.end_angle, 1.25)
        self.assertEqual(s.radius, parser.make_length('35.915'))

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='-270')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, self.make_length('-25.4'))
        self.assertEqual(s.start_angle, 0.75)
        self.assertEqual(s.end_angle, 0.25)
        self.assertEqual(s.radius, parser.make_length('35.915'))
    def test_arc_shape(self):
        """ Arc shapes are generated correctly. """
        parser = EagleXML()

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='180')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, 0)
        self.assertEqual(s.start_angle, 0.0)
        self.assertEqual(s.end_angle, 1.0)
        self.assertEqual(s.radius, parser.make_length('25.4'))

        w = wire(x1='-25.4', y1='0', x2='25.4', y2='0', curve='180')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, 0)
        self.assertEqual(s.start_angle, 1.0)
        self.assertEqual(s.end_angle, 0.0)
        self.assertEqual(s.radius, parser.make_length('25.4'))

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='90')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, self.make_length('-25.4'))
        self.assertEqual(s.start_angle, 0.25)
        self.assertEqual(s.end_angle, 0.75)
        self.assertEqual(s.radius, parser.make_length('35.915'))

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='-90')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, self.make_length('25.4'))
        self.assertEqual(s.start_angle, 1.25)
        self.assertEqual(s.end_angle, 1.75)
        self.assertEqual(s.radius, parser.make_length('35.915'))

        w = wire(x1='0', y1='25.4', x2='0', y2='-25.4', curve='90')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, self.make_length('25.4'))
        self.assertEqual(s.y, 0)
        self.assertEqual(s.start_angle, 0.75)
        self.assertEqual(s.end_angle, 1.25)
        self.assertEqual(s.radius, parser.make_length('35.915'))

        w = wire(x1='0', y1='25.4', x2='0', y2='-25.4', curve='-180')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, 0)
        self.assertEqual(s.start_angle, 1.5)
        self.assertEqual(s.end_angle, 0.5)
        self.assertEqual(s.radius, parser.make_length('25.4'))

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='270')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, self.make_length('25.4'))
        self.assertEqual(s.start_angle, 1.75)
        self.assertEqual(s.end_angle, 1.25)
        self.assertEqual(s.radius, parser.make_length('35.915'))

        w = wire(x1='25.4', y1='0', x2='-25.4', y2='0', curve='-270')
        s = parser.make_shape_for_wire(w)
        self.assertEqual(s.x, 0)
        self.assertEqual(s.y, self.make_length('-25.4'))
        self.assertEqual(s.start_angle, 0.75)
        self.assertEqual(s.end_angle, 0.25)
        self.assertEqual(s.radius, parser.make_length('35.915'))