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))
def testCoordEnum(self): """Verify that makeCoordEnum throws an exception for non-existant systems.""" self.assertRaises(pexEx.Exception, lambda: afwCoord.makeCoordEnum("FOO"))