コード例 #1
0
ファイル: interval_tests.cpp プロジェクト: 447327642/mesos
TEST(IntervalTest, IntersectionTest)
{
  Interval<int> interval((Bound<int>::open(4), Bound<int>::closed(6)));
  Interval<int> interval2((Bound<int>::closed(1), Bound<int>::closed(5)));
  Interval<int> interval3((Bound<int>::closed(7), Bound<int>::closed(8)));

  IntervalSet<int> set((Bound<int>::closed(1), Bound<int>::closed(3)));
  IntervalSet<int> set2((Bound<int>::open(2), Bound<int>::open(4)));
  IntervalSet<int> set3((Bound<int>::open(6), Bound<int>::closed(7)));

  EXPECT_FALSE(set.intersects(interval));
  EXPECT_TRUE(set2.intersects(interval2));
  EXPECT_TRUE(set3.intersects(interval3));

  EXPECT_FALSE(set2.intersects(interval));
  EXPECT_TRUE(set2.intersects(interval2));
  EXPECT_FALSE(set2.intersects(interval3));

  EXPECT_TRUE(set.intersects(set2));
  EXPECT_TRUE(set2.intersects(set));
  EXPECT_FALSE(set3.intersects(set2));

  EXPECT_TRUE(interval.intersects(interval2));
  EXPECT_FALSE(interval2.intersects(interval3));
  EXPECT_FALSE(interval3.intersects(interval));
}
コード例 #2
0
void TestQcInterval::constructor()
{
  QcIntervalInt interval1(1, 10);
  QcIntervalInt interval2(2, 20);

  QVERIFY(interval1.inf() == 1);
  QVERIFY(interval1.sup() == 10);
}
コード例 #3
0
ファイル: interval_tests.cpp プロジェクト: 447327642/mesos
TEST(IntervalTest, IntervalEqual)
{
  Interval<int> interval((Bound<int>::closed(1), Bound<int>::open(3)));
  Interval<int> interval2((Bound<int>::closed(1), Bound<int>::open(3)));
  Interval<int> interval3((Bound<int>::open(1), Bound<int>::open(1)));
  Interval<int> interval4((Bound<int>::open(1), Bound<int>::open(1)));
  Interval<int> interval5((Bound<int>::open(2), Bound<int>::closed(3)));

  EXPECT_EQ(interval, interval2);
  EXPECT_EQ(interval3, interval4);
  EXPECT_NE(interval, interval3);
  EXPECT_NE(interval2, interval5);
  EXPECT_NE(interval3, interval5);
}
コード例 #4
0
TEST(PolynomialValuesTest, PolnomialDegree2Values)
{
	SurgSim::Math::Polynomial<double, 2> quadraticPoly(-8.0, 6.0, 2.0);
	SurgSim::Math::Interval<double> interval1(-1.0, 10.0);
	SurgSim::Math::Interval<double> interval2(-2.0, 10.0);
	PolynomialValues<double, 2> quadraticValues(quadraticPoly);
	EXPECT_DOUBLE_EQ(quadraticPoly.getCoefficient(0), quadraticValues.getPolynomial().getCoefficient(0));
	EXPECT_DOUBLE_EQ(quadraticPoly.getCoefficient(1), quadraticValues.getPolynomial().getCoefficient(1));
	EXPECT_DOUBLE_EQ(quadraticPoly.getCoefficient(2), quadraticValues.getPolynomial().getCoefficient(2));
	EXPECT_NEAR(6.0, quadraticValues.getDerivative().getCoefficient(0), epsilon);
	EXPECT_NEAR(4.0, quadraticValues.getDerivative().getCoefficient(1), epsilon);
	EXPECT_EQ(1, quadraticValues.getLocationsOfExtrema().getNumRoots());
	EXPECT_NEAR(-1.5, quadraticValues.getLocationsOfExtrema()[0], epsilon);
	EXPECT_TRUE(Interval<double>(-12.0, 252.0).isApprox(quadraticValues.valuesOverInterval(interval1), epsilon));
	EXPECT_TRUE(Interval<double>(-12.5, 252.0).isApprox(quadraticValues.valuesOverInterval(interval2), epsilon));
};
コード例 #5
0
TEST(PolynomialValuesTest, PolnomialDegree3Values)
{
	SurgSim::Math::Polynomial<double, 3> cubicPoly(7.0, -63.0, -6.0, 1.0);
	SurgSim::Math::Interval<double> interval1(-10.0, 20.0);
	SurgSim::Math::Interval<double> interval2(-4.0, 10.0);
	PolynomialValues<double, 3> cubicValues(cubicPoly);
	EXPECT_DOUBLE_EQ(cubicPoly.getCoefficient(0), cubicValues.getPolynomial().getCoefficient(0));
	EXPECT_DOUBLE_EQ(cubicPoly.getCoefficient(1), cubicValues.getPolynomial().getCoefficient(1));
	EXPECT_DOUBLE_EQ(cubicPoly.getCoefficient(2), cubicValues.getPolynomial().getCoefficient(2));
	EXPECT_DOUBLE_EQ(cubicPoly.getCoefficient(3), cubicValues.getPolynomial().getCoefficient(3));
	EXPECT_NEAR(-63.0, cubicValues.getDerivative().getCoefficient(0), epsilon);
	EXPECT_NEAR(-12.0, cubicValues.getDerivative().getCoefficient(1), epsilon);
	EXPECT_NEAR(3.0, cubicValues.getDerivative().getCoefficient(2), epsilon);
	EXPECT_EQ(2, cubicValues.getLocationsOfExtrema().getNumRoots());
	EXPECT_NEAR(-3.0, cubicValues.getLocationsOfExtrema()[0], epsilon);
	EXPECT_NEAR(7.0, cubicValues.getLocationsOfExtrema()[1], epsilon);
	EXPECT_TRUE(Interval<double>(-963.0, 4347.0).isApprox(cubicValues.valuesOverInterval(interval1), epsilon));
	EXPECT_TRUE(Interval<double>(-385.0, 115.0).isApprox(cubicValues.valuesOverInterval(interval2), epsilon));
};