void LagrangianDSTest::testcomputeDS() { std::cout << "-->Test: computeDS." <<std::endl; DynamicalSystem * ds(new LagrangianDS(tmpxml2)); SP::LagrangianDS copy = std11::static_pointer_cast<LagrangianDS>(ds); double time = 1.5; ds->initialize("EventDriven", time); ds->computeRhs(time); std::cout << "-->Test: computeDS." <<std::endl; ds->computeJacobianRhsx(time); std::cout << "-->Test: computeDS." <<std::endl; SimpleMatrix M(3, 3); M(0, 0) = 1; M(1, 1) = 2; M(2, 2) = 3; SP::SiconosMatrix jx = ds->jacobianRhsx(); SP::SiconosVector vf = ds->rhs(); CPPUNIT_ASSERT_EQUAL_MESSAGE("testComputeDSI : ", *(vf->vector(0)) == *velocity0, true); CPPUNIT_ASSERT_EQUAL_MESSAGE("testComputeDSJ : ", prod(M, *(vf->vector(1))) == (copy->getFExt() - copy->getFInt() - copy->getFGyr()) , true); CPPUNIT_ASSERT_EQUAL_MESSAGE("testComputeDSL : ", prod(M, *(jx->block(1, 0))) == (copy->getJacobianFL(0)) , true); CPPUNIT_ASSERT_EQUAL_MESSAGE("testComputeDSL : ", prod(M, *(jx->block(1, 1))) == (copy->getJacobianFL(1)) , true); std::cout << "--> computeDS test ended with success." <<std::endl; }