Source code for fudge.gnds.reactionData.test.test_crossSection

#!/usr/bin/env python
# encoding: utf-8

# <<BEGIN-copyright>>
# <<END-copyright>>

"""
test fudge/gnds/reactionData/
dbrown, 12/5/2012
"""

import unittest
from fudge.gnds.reactionData.crossSection import *
defaultAccuracy = 0.001
from xData import XYs

[docs]class TestPointwise( unittest.TestCase ):
[docs] def test_basic_stuff(self): ptwise_const=XYs1d(axes=XYs1d.defaultAxes(labelsUnits={ XYs.yAxisIndex : ( 'crossSection', 'b' ), XYs.xAxisIndex : ( 'energy_in', 'eV' ) }), data=[ [1e-5,1.0], [20.0e6,1.0] ] ) self.assertEqual(ptwise_const.domainUnit, 'eV' ) self.assertEqual(ptwise_const.toXMLList(), [ '<XYs1d>', ' <axes>', ' <axis index="1" label="energy_in" unit="eV"/>', ' <axis index="0" label="crossSection" unit="b"/></axes>', ' <values>', ' 1.00000000e-05 1.00000000e+00 2.00000000e+07 1.00000000e+00</values></XYs1d>'] )
[docs] def test_group(self): ptwise=XYs1d(axes=XYs1d.defaultAxes(), data=[ [1e-5,1.0], [1.0,1.0], [10.0,2.0], [100.0,3.0], [1000.0,1.0], [20.0e6,1.0] ] ) # ptwise.plot() ptwise.group( [1e-5,1.0,1000.0,20.e6] )#.plot()
[docs] def test_evaluate(self): ptwise_const=XYs1d(axes=XYs1d.defaultAxes(labelsUnits={ \ XYs.yAxisIndex : ( 'crossSection', 'b' ), \ XYs.xAxisIndex : ( 'energy_in', 'eV' ) }), data=[ [1e-5,1.0], [20.0e6,1.0] ] ) self.assertEqual(ptwise_const.evaluate( 10.0e6 ), 1.0 )
[docs]class TestCrossSection( unittest.TestCase ):
[docs] def setUp(self): # A constant (kind of like (n,el)) self.xs_const = component() self.ptwise_const=XYs1d(label='eval',axes=XYs1d.defaultAxes(labelsUnits={ \ XYs.yAxisIndex : ( 'crossSection', 'b' ), \ XYs.xAxisIndex : ( 'energy_in', 'eV' ) }), \ data=[ [1e-5,1.0], [20.0e6,1.0] ] ) self.xs_const.add(self.ptwise_const) # A triangle (kind of like (n,2n), if you squint real hard) self.xs_triangle = component() self.ptwise_triangle=XYs1d(label='eval',axes=XYs1d.defaultAxes(labelsUnits={ \ XYs.yAxisIndex : ( 'crossSection', 'b' ), \ XYs.xAxisIndex : ( 'energy_in', 'eV' ) }), \ data=[ [1e6,0.0], [10.0e6,1.0], [20.0e6,0.0] ] ) self.xs_triangle.add(self.ptwise_triangle)
[docs] def test_basic_stuff(self): self.assertTrue( isinstance( self.xs_const, component ) ) self.assertEqual( self.xs_const.attribute, None ) self.assertEqual( self.xs_const.moniker, 'crossSection' ) self.assertEqual( self.xs_const.domainUnit, 'eV' )
[docs] def test_parent(self): ''' Tests of traversing up GNDS hierarchy ''' self.assertEqual( self.xs_const.ancestor, None ) self.assertEqual( self.xs_const.getRootAncestor(), self.xs_const ) self.assertEqual( self.xs_const.ancestor, None ) self.xs_const.setAncestor( 'fred' ) self.assertEqual( self.xs_const.ancestor, 'fred' )
[docs] def test_ancestry(self): ''' FIXME: findAttributeInAncestry FIXME: findClassInAncestry ''' pass
[docs] def test_forms(self): self.assertItemsEqual( [x.moniker for x in self.xs_const.allowedClasses], ['Ys1d','XYs1d','regions1d','gridded1d','resonancesWithBackground','reference'] ) self.xs_const.remove('gridded')
[docs] def test_evaluated(self): self.assertEqual( self.xs_const.evaluated.label, 'eval' ) self.assertEqual( self.xs_const.evaluated.moniker, 'XYs1d' ) self.assertEqual( self.xs_const.evaluated.evaluate(1.4e5), 1.0 )
[docs] def test_domains(self): for form in self.xs_const: self.assertEqual(form.domainMax, 20e6 ) self.assertEqual(form.domainMax, 20.0e6 ) self.assertEqual(form.domainMin, 1.0e-5 ) self.assertEqual(form.domainUnitConversionFactor('MeV'), 1e-6 ) self.assertEqual(form.domainMin, 1e-05 ) self.assertEqual(form.domainMax, 20000000.0 ) self.assertEqual(form.domainUnit, 'eV' ) self.assertEqual( self.xs_const.domainMax, 20.0e6 ) self.assertEqual( self.xs_const.domainMin, 1.0e-5 ) self.assertEqual( self.xs_const.domainUnitConversionFactor('MeV'), 1e-6 ) self.assertEqual( self.xs_const.domainMin, 1e-05 ) self.assertEqual( self.xs_const.domainMax, 20000000.0 ) self.assertEqual( self.xs_const.domainUnit, 'eV' )
[docs] def test_check(self): from pqu import PQU info = {'Q':1.0,'kinematicFactor':1.0,'dThreshold':PQU.PQU('1e-4 b'), 'crossSectionEnergyMin':PQU.PQU('1.0e-5 eV'), 'crossSectionEnergyMax':PQU.PQU('20.0 MeV'), 'CoulombChannel':False} self.assertEqual( self.xs_const.check(info), [] )
[docs] def test_xml_output(self): self.assertEqual( self.xs_const.toXLink(), '/crossSection' ) self.assertEqual( self.xs_const.toXMLList(), [ '<crossSection>', ' <XYs1d label="eval">', ' <axes>', ' <axis index="1" label="energy_in" unit="eV"/>', ' <axis index="0" label="crossSection" unit="b"/></axes>', ' <values>', ' 1.00000000e-05 1.00000000e+00 2.00000000e+07 1.00000000e+00</values></XYs1d></crossSection>'] )
if __name__=="__main__": unittest.main()