Coverage for tests/test_append.py : 12%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
"""Create a FrameSet with the specified dimensions.
The FrameSet shall have the following Frames: "base"(nIn, #1) | +-------------- | | "mid"(4, #2) "fork"(1, #4) | "current"(nOut, #3) """ frameSet = FrameSet(Frame(nIn, "Ident=base")) frameSet.addFrame(FrameSet.CURRENT, makeTwoWayPolyMap(nIn, 4), Frame(4, "Ident=mid")) frameSet.addFrame(FrameSet.CURRENT, makeTwoWayPolyMap(4, nOut), Frame(nOut, "Ident=current")) frameSet.addFrame(FrameSet.BASE, makeTwoWayPolyMap(nIn, 1), Frame(1, "Ident=fork"))
frameSet.current = 3 assert frameSet.nFrame == 4 assert frameSet.base == 1 assert frameSet.getFrame(FrameSet.BASE).ident == "base" assert frameSet.getFrame(2).ident == "mid" assert frameSet.current == 3 assert frameSet.getFrame(FrameSet.CURRENT).ident == "current" assert frameSet.getFrame(4).ident == "fork" return frameSet
"""Check that a concatenated FrameSet transforms correctly. """ set1 = self.makeFrameSet(2, 3) set2 = self.makeFrameSet(3, 1) set12 = append(set1, set2)
# Can't match 1D output to 2D input with self.assertRaises(RuntimeError): append(set2, set1)
x = [1.2, 3.4] y_merged = set12.applyForward(x) y_separate = set2.applyForward(set1.applyForward(x)) assert_allclose(y_merged, y_separate)
y = [-0.3] x_merged = set12.applyInverse(y) x_separate = set1.applyInverse(set2.applyInverse(y)) assert_allclose(x_merged, x_separate)
# No side effects self.assertEqual(set1.base, 1) self.assertEqual(set1.current, 3) self.assertEqual(set2.base, 1) self.assertEqual(set2.current, 3)
"""Check that a concatenated FrameSet preserves all Frames. """ set1 = self.makeFrameSet(1, 3) # AST docs say FrameSets always have contiguously numbered frames, # but let's make sure set1.removeFrame(2) set2 = self.makeFrameSet(3, 2) set12 = append(set1, set2)
self.assertEqual(set1.nFrame + set2.nFrame, set12.nFrame) for i in range(1, 1+set1.nFrame): oldFrame = set1.getFrame(i) newFrame = set12.getFrame(i) self.assertEqual(oldFrame.ident, newFrame.ident) self.assertEqual(oldFrame.nAxes, newFrame.nAxes) if i == set1.base: self.assertTrue(i == set12.base) else: self.assertFalse(i == set12.base) for i in range(1, 1+set2.nFrame): offset = set1.nFrame oldFrame = set2.getFrame(i) newFrame = set12.getFrame(offset + i) self.assertEqual(oldFrame.ident, newFrame.ident) self.assertEqual(oldFrame.nAxes, newFrame.nAxes) if i == set2.current: self.assertTrue(offset + i == set12.current) else: self.assertFalse(offset + i == set12.current)
"""Check that a concatenated FrameSet is not affected by changes to its constituents. """ set1 = self.makeFrameSet(3, 3) set2 = self.makeFrameSet(3, 3) set12 = append(set1, set2)
nTotal = set12.nFrame x = [1.2, 3.4, 5.6] y = set12.applyForward(x)
set1.addFrame(2, makeTwoWayPolyMap(4, 2), Frame(2, "Ident=extra")) set1.addFrame(1, makeTwoWayPolyMap(3, 3), Frame(3, "Ident=legume")) set1.removeFrame(3) set2.addFrame(4, makeForwardPolyMap(1, 4), Frame(4, "Ident=extra")) set2.base = 2
# Use exact equality because nothing should change self.assertEqual(set12.nFrame, nTotal) self.assertEqual(set12.applyForward(x), y)
"""Check that append behaves as expected when joining non-identical frames. """ set1 = self.makeFrameSet(3, 2) set2 = self.makeFrameSet(2, 3) set1.addFrame(FrameSet.CURRENT, makeForwardPolyMap(2, 2), SkyFrame("Ident=sky")) set12 = append(set1, set2)
x = [1.2, 3.4, 5.6] y_merged = set12.applyForward(x) y_separate = set2.applyForward(set1.applyForward(x)) assert_allclose(y_merged, y_separate)
iFrom = set1.current iTo = set1.nFrame + set2.base self.assertIsInstance(set12.getFrame(iFrom), SkyFrame) self.assertNotIsInstance(set12.getFrame(iTo), SkyFrame) self.assertIsInstance(set12.getMapping(iFrom, iTo), UnitMap)
unittest.main() |