Update of /cvsroot/jsbsim/JSBSim/tests
In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29910/tests
Modified Files:
jsbsim.pxd jsbsim.pyx TestLGearSteer.py
Log Message:
Check that FGLGear::GetSteerNorm does not generate a division by zero for non steerable gears.
Index: jsbsim.pxd
===================================================================
RCS file: /cvsroot/jsbsim/JSBSim/tests/jsbsim.pxd,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** jsbsim.pxd 25 Feb 2017 14:23:20 -0000 1.4
--- jsbsim.pxd 11 Mar 2017 12:06:34 -0000 1.5
***************
*** 66,69 ****
--- 66,79 ----
bool HasNode(string path)
+ cdef extern from "models/FGGroundReactions.h" namespace "JSBSim":
+ cdef cppclass c_FGGroundReactions "JSBSim::FGGroundReactions":
+ c_FGGroundReactions(c_FGFDMExec* fdm)
+ c_FGLGear* GetGearUnit(int gear)
+ int GetNumGearUnits()
+
+ cdef extern from "models/FGLGear.h" namespace "JSBSim":
+ cdef cppclass c_FGLGear "JSBSim::FGLGear":
+ double GetSteerNorm()
+
cdef extern from "FGFDMExec.h" namespace "JSBSim":
cdef cppclass c_FGFDMExec "JSBSim::FGFDMExec":
***************
*** 126,127 ****
--- 136,138 ----
c_FGPropagate* GetPropagate()
c_FGPropertyManager* GetPropertyManager()
+ c_FGGroundReactions* GetGroundReactions()
Index: jsbsim.pyx
===================================================================
RCS file: /cvsroot/jsbsim/JSBSim/tests/jsbsim.pyx,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** jsbsim.pyx 25 Feb 2017 14:23:20 -0000 1.13
--- jsbsim.pyx 11 Mar 2017 12:06:34 -0000 1.14
***************
*** 88,91 ****
--- 88,116 ----
return self.thisptr.HasNode(path)
+ cdef class FGGroundReactions:
+
+ cdef c_FGGroundReactions *thisptr
+
+ def __init__(self):
+ self.thisptr = NULL
+
+ def get_gear_unit(self, gear):
+ lgear = FGLGear()
+ lgear.thisptr = self.thisptr.GetGearUnit(gear)
+ return lgear
+
+ def get_num_gear_units(self):
+ return self.thisptr.GetNumGearUnits()
+
+ cdef class FGLGear:
+
+ cdef c_FGLGear *thisptr
+
+ def __init__(self):
+ self.thisptr = NULL
+
+ def get_steer_norm(self):
+ return self.thisptr.GetSteerNorm()
+
# this is the python wrapper class
cdef class FGFDMExec:
***************
*** 564,565 ****
--- 589,595 ----
pm.thisptr = self.thisptr.GetPropertyManager()
return pm
+
+ def get_ground_reactions(self):
+ grndreact = FGGroundReactions()
+ grndreact.thisptr = self.thisptr.GetGroundReactions()
+ return grndreact
Index: TestLGearSteer.py
===================================================================
RCS file: /cvsroot/jsbsim/JSBSim/tests/TestLGearSteer.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** TestLGearSteer.py 16 May 2016 17:29:46 -0000 1.1
--- TestLGearSteer.py 11 Mar 2017 12:06:34 -0000 1.2
***************
*** 20,23 ****
--- 20,24 ----
import os
+ import fpectl
import xml.etree.ElementTree as et
from JSBSim_utils import JSBSimTestCase, CreateFDM, RunTest, CopyAircraftDef
***************
*** 33,36 ****
--- 34,48 ----
self.assertAlmostEqual(fdm['fcs/steer-cmd-norm'], 0.0)
self.assertAlmostEqual(fdm['fcs/steer-pos-deg'], 0.0)
+
+ # Should be part of a unit test in C++ ?
+ fpectl.turnon_sigfpe()
+
+ grndreact = fdm.get_ground_reactions()
+ for i in xrange(grndreact.get_num_gear_units()):
+ gear = grndreact.get_gear_unit(i)
+ self.assertEqual(gear.get_steer_norm(), 0.0)
+
+ fpectl.turnoff_sigfpe()
+
fdm['fcs/steer-pos-deg'] = 5.0
self.assertAlmostEqual(fdm['fcs/steer-pos-deg'], 5.0)
|