def test_makePDFBaseline(self): '''check the makePDFBaseline wrapper. ''' pbl = makePDFBaseline('parabolabaseline', parabola_baseline, a=1, b=2, c=3) self.assertEqual(3, pbl(0)) self.assertEqual(6, pbl(1)) self.assertEqual(11, pbl(2)) pbl.b = 0 self.assertEqual([7, 3, 28], map(pbl, [-2, 0, 5])) pbl2 = pbl.clone() self.assertEqual(1, pbl2.a) self.assertEqual(0, pbl2.b) self.assertEqual(3, pbl2.c) self.assertEqual([7, 3, 28], map(pbl2, [-2, 0, 5])) pbl3 = PDFBaseline.createByType('parabolabaseline') self.assertEqual(1, pbl3.a) self.assertEqual(2, pbl3.b) self.assertEqual(3, pbl3.c) # fail if this baseline type already exists. self.assertRaises(RuntimeError, makePDFBaseline, 'linear', parabola_baseline, a=1, b=2, c=3) self.assertRaises(RuntimeError, makePDFBaseline, 'parabolabaseline', parabola_baseline, a=1, b=2, c=3) # check replacement of an existing type. makePDFBaseline('linear', parabola_baseline, replace=True, a=1, b=2, c=4) pbl4 = PDFBaseline.createByType('linear') self.assertEqual(set(('a', 'b', 'c')), pbl4._namesOfDoubleAttributes()) self.assertEqual(4, pbl4.c) # check baseline with no attributes pbl5 = makePDFBaseline('myzero', lambda x: 0.0) self.assertEqual(0, pbl5(33)) self.assertEqual(set(), pbl5._namesOfDoubleAttributes()) return
def test_makePDFBaseline(self): '''check the makePDFBaseline wrapper. ''' pbl = makePDFBaseline('parabolabaseline', parabola_baseline, a=1, b=2, c=3) self.assertEqual(3, pbl(0)) self.assertEqual(6, pbl(1)) self.assertEqual(11, pbl(2)) pbl.b = 0 self.assertEqual([7, 3, 28], [pbl(x) for x in [-2, 0, 5]]) pbl2 = pbl.clone() self.assertEqual(1, pbl2.a) self.assertEqual(0, pbl2.b) self.assertEqual(3, pbl2.c) self.assertEqual([7, 3, 28], [pbl2(x) for x in [-2, 0, 5]]) pbl3 = PDFBaseline.createByType('parabolabaseline') self.assertEqual(1, pbl3.a) self.assertEqual(2, pbl3.b) self.assertEqual(3, pbl3.c) pbl.foo = 'bar' pbl4 = pickle.loads(pickle.dumps(pbl)) self.assertEqual([7, 3, 28], [pbl4(x) for x in [-2, 0, 5]]) self.assertEqual('bar', pbl4.foo) # fail if this baseline type already exists. self.assertRaises(RuntimeError, makePDFBaseline, 'linear', parabola_baseline, a=1, b=2, c=3) self.assertRaises(RuntimeError, makePDFBaseline, 'parabolabaseline', parabola_baseline, a=1, b=2, c=3) # check replacement of an existing type. makePDFBaseline('linear', parabola_baseline, replace=True, a=1, b=2, c=4) pbl4 = PDFBaseline.createByType('linear') self.assertEqual(set(('a', 'b', 'c')), pbl4._namesOfDoubleAttributes()) self.assertEqual(4, pbl4.c) # check baseline with no attributes pbl5 = makePDFBaseline('myzero', lambda x: 0.0) self.assertEqual(0, pbl5(33)) self.assertEqual(set(), pbl5._namesOfDoubleAttributes()) return
def test_picking_owned(self): '''verify pickling of PDFBaseline owned by PDF calculators. ''' pbl = makePDFBaseline('parabolabaseline', parabola_baseline, a=1, b=2, c=3) pbl.a = 7 pbl.foobar = 'asdf' pc = PDFCalculator() pc.baseline = pbl self.assertIs(pbl, pc.baseline) pc2 = pickle.loads(pickle.dumps(pc)) pbl2 = pc2.baseline self.assertEqual(7, pbl2.a) self.assertEqual('asdf', pbl2.foobar) self.assertEqual('parabolabaseline', pbl2.type()) return
def test_makePDFBaseline(self): '''check the makePDFBaseline wrapper. ''' pbl = makePDFBaseline('parabolabaseline', parabola_baseline, a=1, b=2, c=3) self.assertEqual(3, pbl(0)) self.assertEqual(6, pbl(1)) self.assertEqual(11, pbl(2)) pbl.b = 0 self.assertEqual([7, 3, 28], map(pbl, [-2, 0, 5])) pbl2 = pbl.clone() self.assertEqual(1, pbl2.a) self.assertEqual(0, pbl2.b) self.assertEqual(3, pbl2.c) self.assertEqual([7, 3, 28], map(pbl2, [-2, 0, 5])) pbl3 = PDFBaseline.createByType('parabolabaseline') self.assertEqual(1, pbl3.a) self.assertEqual(2, pbl3.b) self.assertEqual(3, pbl3.c) return