def test1(self): 'numpy array --> spin' arr = numpy.array( [1., 2.] ) ptr = getdataptr( arr ) spin = bpext.wrap_ptr( ptr, 'NeutronSpin' ) self.assertEqual( spin.s1, 1 ) self.assertEqual( spin.s2, 2 ) return
def test2(self): 'numpy array --> cevent' arr = numpy.arange( 0, 10, 1. ) ptr = getdataptr( arr ) event = bpext.wrap_ptr( ptr, 'cNeutronEvent' ) self.assertEqual( event.x, 0 ) self.assertEqual( event.y, 1 ) self.assertEqual( event.z, 2 ) return
def test1(self): "bpext bpext" from danse.ins.bpext import _examplebpbinding as example v = example.vec_d(5) v[:] = 0,1,0,3,0 p = bpext.extract_ptr( v, 'vec_double' ) v1 = bpext.wrap_ptr( p, 'vec_double' ) v1[3] = 88 self.assertAlmostEqual( v[3], v1[3] ) self.assertAlmostEqual( v[3], 88 ) return
def test3(self): 'numpy array --> event buffer' arr = numpy.arange( 0, 20, 1. ) ptr = getdataptr( arr ) cevents = bpext.wrap_ptr( ptr, 'cNeutronEvent' ) events = mcni.neutron_buffer(2) events.fromCevents( cevents, 2 ) for event in events: print event return
def cevents_from_npyarr(npyarr): '''convert a numpy array to a boost-python instance of Neutron::cEvent pointer''' try: from danse.ins.numpyext import getdataptr except ImportError: from numpyext import getdataptr import warnings warnings.warn("Using old numpyext. Should use danse.ins.numpyext") ptr = getdataptr( npyarr ) try: from danse.ins import bpext except ImportError: import bpext import warnings warnings.warn("Using old bpext. Should use danse.ins.bpext") import mcni.mcni cevents = bpext.wrap_ptr( ptr, 'cNeutronEvent' ) cevents.origin = npyarr return cevents