Example #1
0
    def testFactory(self):
        """Test the Factory function makeCoord()"""

        # make a (eg galactic) coord with the constructor, and with the factory
        # and see if they agree.
        for constructor, enum, cast, stringName in self.coordList:
            con = constructor(self.l * afwGeom.degrees, self.b * afwGeom.degrees)
            self.assertEqual(con.getCoordSystem(), enum)
            factories = []
            factories.append(afwCoord.makeCoord(enum, self.l * afwGeom.degrees, self.b * afwGeom.degrees))
            factories.append(afwCoord.makeCoord(afwCoord.makeCoordEnum(stringName), self.l * afwGeom.degrees, self.b * afwGeom.degrees))
            factories.append(afwCoord.makeCoord(enum, afwGeom.Point2D(self.l, self.b), afwGeom.degrees))

            print("Factory: ")
            for fac in factories:
                self.assertEqual(fac.getCoordSystem(), enum)
                self.assertAlmostEqual(con[0], fac[0])
                self.assertAlmostEqual(con[1], fac[1])
                print(" tried ", fac[0], fac[1],
                     "(expected ", con[0], con[1], ")")

                
            # can we create an empty coord, and use reset() to fill it?
            c = afwCoord.makeCoord(enum)
            c.reset(1.0 * afwGeom.degrees, 1.0 * afwGeom.degrees, 2000.0)
            myCoord = cast(c)
            self.assertEqual(myCoord.getLongitude().asDegrees(), 1.0)
            self.assertEqual(myCoord.getLatitude().asDegrees(), 1.0)


        # verify that makeCoord throws when given an epoch for an epochless system
        self.assertRaises(pexEx.Exception,
                          lambda: afwCoord.makeCoord(afwCoord.GALACTIC, self.l * afwGeom.degrees, self.b * afwGeom.degrees, 2000.0))
        self.assertRaises(pexEx.Exception,
                          lambda: afwCoord.makeCoord(afwCoord.ICRS, self.l * afwGeom.degrees, self.b * afwGeom.degrees, 2000.0))
Example #2
0
 def testCoordEnum(self):
     """Verify that makeCoordEnum throws an exception for non-existant systems."""
     self.assertRaises(pexEx.Exception, lambda: afwCoord.makeCoordEnum("FOO"))