lsst.afw 22.0.1-48-g5c39d4753+955d02b84f
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
lsst.afw.geom.testUtils.TransformTestBaseClass Class Reference
Inheritance diagram for lsst.afw.geom.testUtils.TransformTestBaseClass:

Public Member Functions

def getTestDir (self)
 
def setUp (self)
 
def makeGoodFrame (cls, name, nAxes=None)
 
def makeFrameSet (self, baseFrame, currFrame)
 
def checkTransformation (self, transform, mapping, msg="")
 
def checkInverseTransformation (self, forward, inverse, msg="")
 
def checkTransformFromMapping (self, fromName, toName)
 
def checkTransformFromFrameSet (self, fromName, toName)
 
def checkInverted (self, fromName, toName)
 
def checkInverseMapping (self, TransformClass, mapping, msg)
 
def checkGetJacobian (self, fromName, toName)
 
def checkThen (self, fromName, midName, toName)
 
def assertTransformsEqual (self, transform1, transform2)
 
def checkPersistence (self, transform)
 

Static Public Member Functions

def makeRawArrayData (nPoints, nAxes, delta=0.123)
 
def makeRawPointData (nAxes, delta=0.123)
 
def makeEndpoint (name, nAxes=None)
 
def makeBadFrames (name)
 
def permuteFrameSetIter (frameSet)
 
def makeJacobian (nIn, nOut, inPoint)
 

Public Attributes

 longMessage
 
 endpointPrefixes
 
 goodNAxes
 
 badNAxes
 
 frameIdentDict
 

Detailed Description

Base class for unit tests of Transform<X>To<Y>

Subclasses must call `TransformTestBaseClass.setUp(self)`
if they provide their own version.

If a package other than afw uses this class then it must
override the `getTestDir` method to avoid writing into
afw's test directory.

Definition at line 330 of file testUtils.py.

Member Function Documentation

◆ assertTransformsEqual()

def lsst.afw.geom.testUtils.TransformTestBaseClass.assertTransformsEqual (   self,
  transform1,
  transform2 
)
Assert that two transforms are equal

Definition at line 1055 of file testUtils.py.

◆ checkGetJacobian()

def lsst.afw.geom.testUtils.TransformTestBaseClass.checkGetJacobian (   self,
  fromName,
  toName 
)
Test Transform<fromName>To<toName>.getJacobian

Parameters
----------
fromName, toName : `str`
    Endpoint name prefix for "from" and "to" endpoints, respectively,
    e.g. "Point2" for `lsst.afw.geom.Point2Endpoint`

Definition at line 943 of file testUtils.py.

◆ checkInverseMapping()

def lsst.afw.geom.testUtils.TransformTestBaseClass.checkInverseMapping (   self,
  TransformClass,
  mapping,
  msg 
)
Test Transform<fromName>To<toName>.inverted for a specific
mapping.

Also check that inverted() and getInverted() return the same
transform.

Parameters
----------
TransformClass : `type`
    The class of transform to test, such as TransformPoint2ToPoint2
mapping : `ast.Mapping`
    The mapping to use for the transform
msg : `str`
    Error message suffix

Definition at line 919 of file testUtils.py.

◆ checkInverseTransformation()

def lsst.afw.geom.testUtils.TransformTestBaseClass.checkInverseTransformation (   self,
  forward,
  inverse,
  msg = "" 
)
Check that two Transforms are each others' inverses.

Parameters
----------
forward : `lsst.afw.geom.Transform`
    the reference Transform to test
inverse : `lsst.afw.geom.Transform`
    the transform that should be the inverse of `forward`
msg : `str`
    error message suffix describing test parameters

Definition at line 699 of file testUtils.py.

◆ checkInverted()

def lsst.afw.geom.testUtils.TransformTestBaseClass.checkInverted (   self,
  fromName,
  toName 
)
Test Transform<fromName>To<toName>.inverted

Parameters
----------
fromName, toName : `str`
    Endpoint name prefix for "from" and "to" endpoints, respectively,
    e.g. "Point2" for `lsst.afw.geom.Point2Endpoint`

Definition at line 891 of file testUtils.py.

◆ checkPersistence()

def lsst.afw.geom.testUtils.TransformTestBaseClass.checkPersistence (   self,
  transform 
)
Check persistence of a transform

Definition at line 1088 of file testUtils.py.

◆ checkThen()

def lsst.afw.geom.testUtils.TransformTestBaseClass.checkThen (   self,
  fromName,
  midName,
  toName 
)
Test Transform<fromName>To<midName>.then(Transform<midName>To<toName>)

Parameters
----------
fromName : `str`
    the prefix of the starting endpoint (e.g., "Point2" for a
    Point2Endpoint) for the final, concatenated Transform
midName : `str`
    the prefix for the shared endpoint where two Transforms will be
    concatenated
toName : `str`
    the prefix of the ending endpoint for the final, concatenated
    Transform

Definition at line 975 of file testUtils.py.

◆ checkTransformation()

def lsst.afw.geom.testUtils.TransformTestBaseClass.checkTransformation (   self,
  transform,
  mapping,
  msg = "" 
)
Check applyForward and applyInverse for a transform

Parameters
----------
transform : `lsst.afw.geom.Transform`
    The transform to check
mapping : `ast.Mapping`
    The mapping the transform should use. This mapping
    must contain valid forward or inverse transformations,
    but they need not match if both present. Hence the
    mappings returned by make*PolyMap are acceptable.
msg : `str`
    Error message suffix describing test parameters

Definition at line 625 of file testUtils.py.

◆ checkTransformFromFrameSet()

def lsst.afw.geom.testUtils.TransformTestBaseClass.checkTransformFromFrameSet (   self,
  fromName,
  toName 
)
Check Transform_<fromName>_<toName> using the FrameSet constructor

Parameters
----------
fromName, toName : `str`
    Endpoint name prefix for "from" and "to" endpoints, respectively,
    e.g. "Point2" for `lsst.afw.geom.Point2Endpoint`

Definition at line 819 of file testUtils.py.

◆ checkTransformFromMapping()

def lsst.afw.geom.testUtils.TransformTestBaseClass.checkTransformFromMapping (   self,
  fromName,
  toName 
)
Check Transform_<fromName>_<toName> using the Mapping constructor

Parameters
----------
fromName, toName : `str`
    Endpoint name prefix for "from" and "to" endpoints, respectively,
    e.g. "Point2" for `lsst.afw.geom.Point2Endpoint`
fromAxes, toAxes : `int`
    number of axes in fromFrame and toFrame, respectively

Definition at line 764 of file testUtils.py.

◆ getTestDir()

def lsst.afw.geom.testUtils.TransformTestBaseClass.getTestDir (   self)
Return a directory where temporary test files can be written

The default implementation returns the test directory of the `afw`
package.

If this class is used by a test in a package other than `afw`
then the subclass must override this method.

Definition at line 341 of file testUtils.py.

◆ makeBadFrames()

def lsst.afw.geom.testUtils.TransformTestBaseClass.makeBadFrames (   name)
static
Return a list of 0 or more frames that are not a valid match for the
named endpoint

Parameters
----------
name : `str`
    Endpoint class name prefix; the full class name is name + "Endpoint"

Returns
-------
Collection of `ast.Frame`
    A collection of 0 or more frames

Definition at line 494 of file testUtils.py.

◆ makeEndpoint()

def lsst.afw.geom.testUtils.TransformTestBaseClass.makeEndpoint (   name,
  nAxes = None 
)
static
Make an endpoint

Parameters
----------
name : `str`
    Endpoint class name prefix; the full class name is name + "Endpoint"
nAxes : `int` or `None`, optional
    number of axes; an int is required if `name` == "Generic";
    otherwise ignored

Returns
-------
subclass of `lsst.afw.geom.BaseEndpoint`
    The constructed endpoint

Raises
------
TypeError
    If `name` == "Generic" and `nAxes` is None or <= 0

Definition at line 440 of file testUtils.py.

◆ makeFrameSet()

def lsst.afw.geom.testUtils.TransformTestBaseClass.makeFrameSet (   self,
  baseFrame,
  currFrame 
)
Make a FrameSet

The FrameSet will contain 4 frames and three transforms connecting them.
The idenity of each frame is provided by self.frameIdentDict

Frame       Index   Mapping from this frame to the next
`baseFrame`   1     `ast.UnitMap(nIn)`
Frame(nIn)    2     `polyMap`
Frame(nOut)   3     `ast.UnitMap(nOut)`
`currFrame`   4

where:
- `nIn` = `baseFrame.nAxes`
- `nOut` = `currFrame.nAxes`
- `polyMap` = `makeTwoWayPolyMap(nIn, nOut)`

Returns
------
`ast.FrameSet`
    The FrameSet as described above

Parameters
----------
baseFrame : `ast.Frame`
    base frame
currFrame : `ast.Frame`
    current frame

Definition at line 522 of file testUtils.py.

◆ makeGoodFrame()

def lsst.afw.geom.testUtils.TransformTestBaseClass.makeGoodFrame (   cls,
  name,
  nAxes = None 
)
Return the appropriate frame for the given name and nAxes

Parameters
----------
name : `str`
    Endpoint class name prefix; the full class name is name + "Endpoint"
nAxes : `int` or `None`, optional
    number of axes; an int is required if `name` == "Generic";
    otherwise ignored

Returns
-------
`ast.Frame`
    The constructed frame

Raises
------
TypeError
    If `name` == "Generic" and `nAxes` is `None` or <= 0

Definition at line 470 of file testUtils.py.

◆ makeJacobian()

def lsst.afw.geom.testUtils.TransformTestBaseClass.makeJacobian (   nIn,
  nOut,
  inPoint 
)
static
Make a Jacobian matrix for the equation described by
`makeTwoWayPolyMap`.

Parameters
----------
nIn, nOut : `int`
    the dimensions of the input and output data; see makeTwoWayPolyMap
inPoint : `numpy.ndarray`
    an array of size `nIn` representing the point at which the Jacobian
    is measured

Returns
-------
J : `numpy.ndarray`
    an `nOut` x `nIn` array of first derivatives

Definition at line 595 of file testUtils.py.

◆ makeRawArrayData()

def lsst.afw.geom.testUtils.TransformTestBaseClass.makeRawArrayData (   nPoints,
  nAxes,
  delta = 0.123 
)
static
Make an array of generic point data

The data will be suitable for spherical points

Parameters
----------
nPoints : `int`
    Number of points in the array
nAxes : `int`
    Number of axes in the point

Returns
-------
np.array of floats with shape (nAxes, nPoints)
    The values are as follows; if nAxes != 2:
        The first point has values `[0, delta, 2*delta, ..., (nAxes-1)*delta]`
        The Nth point has those values + N
    if nAxes == 2 then the data is scaled so that the max value of axis 1
        is a bit less than pi/2

Definition at line 389 of file testUtils.py.

◆ makeRawPointData()

def lsst.afw.geom.testUtils.TransformTestBaseClass.makeRawPointData (   nAxes,
  delta = 0.123 
)
static
Make one generic point

Parameters
----------
nAxes : `int`
    Number of axes in the point
delta : `float`
    Increment between axis values

Returns
-------
A list of `nAxes` floats with values `[0, delta, ..., (nAxes-1)*delta]

Definition at line 423 of file testUtils.py.

◆ permuteFrameSetIter()

def lsst.afw.geom.testUtils.TransformTestBaseClass.permuteFrameSetIter (   frameSet)
static
Iterator over 0 or more frameSets with SkyFrames axes permuted

Only base and current SkyFrames are permuted. If neither the base nor
the current frame is a SkyFrame then no frames are returned.

Returns
-------
iterator over `PermutedFrameSet`

Definition at line 573 of file testUtils.py.

◆ setUp()

def lsst.afw.geom.testUtils.TransformTestBaseClass.setUp (   self)
Set up a test

Subclasses should call this method if they override setUp.

Definition at line 352 of file testUtils.py.

Member Data Documentation

◆ badNAxes

lsst.afw.geom.testUtils.TransformTestBaseClass.badNAxes

Definition at line 374 of file testUtils.py.

◆ endpointPrefixes

lsst.afw.geom.testUtils.TransformTestBaseClass.endpointPrefixes

Definition at line 362 of file testUtils.py.

◆ frameIdentDict

lsst.afw.geom.testUtils.TransformTestBaseClass.frameIdentDict

Definition at line 381 of file testUtils.py.

◆ goodNAxes

lsst.afw.geom.testUtils.TransformTestBaseClass.goodNAxes

Definition at line 366 of file testUtils.py.

◆ longMessage

lsst.afw.geom.testUtils.TransformTestBaseClass.longMessage

Definition at line 359 of file testUtils.py.


The documentation for this class was generated from the following file: