def test_events_code_generating(tmpfile): dsargs, _ = vanDerPol() dsargs['nobuild'] = True ev_args = { 'name': 'monitor', 'eventtol': 1e-4, 'eventdelay': 1e-5, 'starttime': 0, 'active': True, 'term': False, 'precise': True } ev = Events.makeZeroCrossEvent('y', 0, ev_args, ['y'], targetlang='c') dsargs['events'] = [ev] ode = Radau_ODEsystem(dsargs) ode.makeLibSource(fname=tmpfile) with open(tmpfile) as g: code = g.read() assert 'double monitor(unsigned n_, double t, double *Y_, double *p_, unsigned wkn_, double *wk_, unsigned xvn_, double *xv_);' in code assert 'int N_EVENTS = 1;' in code assert 'void assignEvents(EvFunType *events){\n events[0] = &monitor;\n\n}' in code assert '\n'.join([ 'double monitor(unsigned n_, double t, double *Y_, double *p_, unsigned wkn_, double *wk_, unsigned xvn_, double *xv_) {', 'return y; ', '}' ]) in code
def test_events_code_generating(tmpfile): dsargs, _ = vanDerPol() dsargs['nobuild'] = True ev_args = { 'name': 'monitor', 'eventtol': 1e-4, 'eventdelay': 1e-5, 'starttime': 0, 'active': True, 'term': False, 'precise': True } ev = Events.makeZeroCrossEvent('y', 0, ev_args, ['y'], targetlang='c') dsargs['events'] = [ev] ode = Radau_ODEsystem(dsargs) ode.makeLibSource(fname=tmpfile) with open(tmpfile) as g: code = g.read() assert 'double monitor(unsigned n_, double t, double *Y_, double *p_, unsigned wkn_, double *wk_, unsigned xvn_, double *xv_);' in code assert 'int N_EVENTS = 1;' in code assert 'void assignEvents(EvFunType *events){\n events[0] = &monitor;\n\n}' in code assert '\n'.join([ 'double monitor(unsigned n_, double t, double *Y_, double *p_, unsigned wkn_, double *wk_, unsigned xvn_, double *xv_) {', 'return y; ', '}']) in code
def test_radau_support_mass_matrix(tmpfile): dsargs = dae() dsargs['nobuild'] = True ode = Radau_ODEsystem(dsargs) ode.makeLibSource(fname=tmpfile) mm_src = '\n'.join( ['f_[0][0] = 0;', 'f_[0][1] = 0;', 'f_[1][0] = 0;', 'f_[1][1] = 1;']) with open(tmpfile) as g: assert mm_src in g.read()
def test_radau_support_mass_matrix(tmpfile): dsargs = dae() dsargs['nobuild'] = True ode = Radau_ODEsystem(dsargs) ode.makeLibSource(fname=tmpfile) mm_src = '\n'.join([ 'f_[0][0] = 0;', 'f_[0][1] = 0;', 'f_[1][0] = 0;', 'f_[1][1] = 1;' ]) with open(tmpfile) as g: assert mm_src in g.read()