// шаблон - ещё под вопросом нужно ли и как сделать если да
}
+void ApplyFitRoutine(std::vector< RVec > fr1, std::vector< RVec > fr2, std::vector< RVec > fr3, std::vector< std::pair< unsigned int, unsigned int > > testPairs, double x, double y, double z, double A, double B, double C, RVec &md1, RVec &md2) {
+ fr3.resize(0);
+ fr3 = fr2;
+ ApplyFit(fr3, x, y, z, A, B, C);
+ CalcMid(fr1, fr3, md1, md2, testPairs);
+}
+
TEST( fitTests, fitTest_ApplyFit)
{
RVec mid1, mid2, x1(1, 0, 0), y1(0, 1, 0), z1(0, 0, 1), x2(-1, 0, 0), y2(0, -1, 0), z2(0, 0, -1);
testPairs.push_back(std::make_pair(i, i));
}
- testFrame3.resize(0);
- testFrame3 = testFrame2;
- ApplyFit(testFrame3, 2, 2, 2, 0, 0, 0);
- CalcMid(testFrame1, testFrame3, mid1, mid2, testPairs);
+ ApplyFitRoutine(testFrame1, testFrame2, testFrame3, testPairs, 2, 2, 2, 0, 0, 0, mid1, mid2);
ASSERT_NEAR((mid1 - mid2).norm(), 0, 0.000001);
- testFrame3.resize(0);
- testFrame3 = testFrame1;
- ApplyFit(testFrame3, 0, 0, 0, M_PI, 0, -M_PI / 2);
- CalcMid(testFrame2, testFrame3, mid1, mid2, testPairs);
+ ApplyFitRoutine(testFrame2, testFrame1, testFrame3, testPairs, 0, 0, 0, M_PI, 0, -M_PI / 2, mid1, mid2);
ASSERT_NEAR((mid1 - mid2).norm(), 0, 0.000001);
- testFrame3.resize(0);
- testFrame3 = testFrame1;
- ApplyFit(testFrame3, 0, 0, 0, 0, M_PI, M_PI / 2);
- CalcMid(testFrame2, testFrame3, mid1, mid2, testPairs);
+ ApplyFitRoutine(testFrame2, testFrame1, testFrame3, testPairs, 0, 0, 0, 0, M_PI, M_PI / 2, mid1, mid2);
ASSERT_NEAR((mid1 - mid2).norm(), 0, 0.000001);
- testFrame3.resize(0);
- testFrame3 = testFrame1;
- ApplyFit(testFrame3, 0, 0, 0, M_PI, M_PI / 2, 0);
- CalcMid(testFrame2, testFrame3, mid1, mid2, testPairs);
+ ApplyFitRoutine(testFrame2, testFrame1, testFrame3, testPairs, 0, 0, 0, M_PI, M_PI / 2, 0, mid1, mid2);
ASSERT_NEAR((mid1 - mid2).norm(), 0, 0.000001);
- testFrame3.resize(0);
- testFrame3 = testFrame1;
- ApplyFit(testFrame3, 0, 0, 0, 3 * M_PI / 2, M_PI / 2, M_PI / 2);
- CalcMid(testFrame2, testFrame3, mid1, mid2, testPairs);
+ ApplyFitRoutine(testFrame2, testFrame1, testFrame3, testPairs, 0, 0, 0, 3 * M_PI / 2, M_PI / 2, M_PI / 2, mid1, mid2);
ASSERT_NEAR((mid1 - mid2).norm(), 0, 0.000001);
testFrame3.resize(0);
TEST( fitTests, fitTest_CalcMid)
{
- RVec mid1, mid2, x1, y1, z1, x2, y2, z2;
-
- x1[0] = 1; x1[1] = 0; x1[2] = 0;
- y1[0] = 0; y1[1] = 1; y1[2] = 0;
- z1[0] = 0; z1[1] = 0; z1[2] = 1;
-
- x2[0] = -1; x2[1] = 0; x2[2] = 0;
- y2[0] = 0; y2[1] = -1; y2[2] = 0;
- z2[0] = 0; z2[1] = 0; z2[2] = -1;
+ RVec mid1, mid2, x1(1, 0, 0), y1(0, 1, 0), z1(0, 0, 1), x2(-1, 0, 0), y2(0, -1, 0), z2(0, 0, -1);
std::vector< RVec > testFrame1, testFrame2;
testFrame1.resize(0);
ASSERT_NEAR((mid1 - mid2).norm(), 2 * std::sqrt(3), 0.000001);
}
+void myFitNewRoutine(std::vector< RVec > fr1, std::vector< RVec > fr2, std::vector< RVec > fr3, std::vector< std::pair< unsigned int, unsigned int > > testPairs, double x, double y, double z, double A, double B, double C, double prc, double &tF) {
+ fr3.resize(0);
+ fr3 = fr2;
+ ApplyFit(fr3, x, y, z, A, B, C);
+ MyFitNew(fr1, fr3, testPairs, prc);
+ tF = 0;
+ for (unsigned int i = 0; i < fr1.size(); i++) {
+ tF += F(fr1[i][0], fr1[i][1], fr1[i][2], fr3[i][0], fr3[i][1], fr3[i][2], 0, 0, 0);
+ }
+}
+
TEST( fitTests, fitTest_MyFitNew)
{
- RVec a, x1, y1, z1;
-
- x1[0] = 1; x1[1] = 0; x1[2] = 0;
- y1[0] = 0; y1[1] = 1; y1[2] = 0;
- z1[0] = 0; z1[1] = 0; z1[2] = 1;
-
- a[0] = -2; a[1] = -2; a[2] = -2;
+ RVec a(-2, -2, -2), x1(1, 0, 0), y1(0, 1, 0), z1(0, 0, 1);
std::vector< RVec > testFrame1, testFrame2, testFrame3;
testFrame1.resize(0);
testPairs.push_back(std::make_pair(i, i));
}
- testFrame3 = testFrame2;
- MyFitNew(testFrame1, testFrame3, testPairs, 0);
double testF = 0;
- for (unsigned int i = 0; i < testFrame1.size(); i++) {
- testF += F(testFrame1[i][0], testFrame1[i][1], testFrame1[i][2], testFrame3[i][0], testFrame3[i][1], testFrame3[i][2], 0, 0, 0);
- }
+
+ myFitNewRoutine(testFrame1, testFrame2, testFrame3, testPairs, 0, 0, 0, 0, 0, 0, 0.000001, testF);
ASSERT_NEAR(testF, 0, 0.000001);
- testFrame3.resize(0);
- testFrame3 = testFrame2;
- ApplyFit(testFrame3, 7.1534, 0.5591, -3.1415, M_PI / 23, M_PI / 17, M_PI / 2.2);
- MyFitNew(testFrame1, testFrame3, testPairs, 0.000001);
- testF = 0;
- for (unsigned int i = 0; i < testFrame1.size(); i++) {
- testF += F(testFrame1[i][0], testFrame1[i][1], testFrame1[i][2], testFrame3[i][0], testFrame3[i][1], testFrame3[i][2], 0, 0, 0);
- }
+ myFitNewRoutine(testFrame1, testFrame2, testFrame3, testPairs, 7.1534, 0.5591, -3.1415, M_PI / 23, M_PI / 17, M_PI / 2.2, 0.000001, testF);
ASSERT_NEAR(testF, 0, 0.01);
- testFrame3.resize(0);
- testFrame3 = testFrame2;
- ApplyFit(testFrame3, 7.1534, 0.5591, -3.1415, M_PI / 23, M_PI / 17, M_PI / 2.2);
- MyFitNew(testFrame1, testFrame3, testPairs, 0.0000001);
- testF = 0;
- for (unsigned int i = 0; i < testFrame1.size(); i++) {
- testF += F(testFrame1[i][0], testFrame1[i][1], testFrame1[i][2], testFrame3[i][0], testFrame3[i][1], testFrame3[i][2], 0, 0, 0);
- }
+ myFitNewRoutine(testFrame1, testFrame2, testFrame3, testPairs, 7.1534, 0.5591, -3.1415, M_PI / 23, M_PI / 17, M_PI / 2.2, 0.0000001, testF);
ASSERT_NEAR(testF, 0, 0.001);
- testFrame3.resize(0);
- testFrame3 = testFrame2;
- ApplyFit(testFrame3, 7.1534, 0.5591, -3.1415, M_PI / 23, M_PI / 17, M_PI / 2.2);
- MyFitNew(testFrame1, testFrame3, testPairs, 0.0000001);
- testF = 0;
- for (unsigned int i = 0; i < testFrame1.size(); i++) {
- testF += F(testFrame1[i][0], testFrame1[i][1], testFrame1[i][2], testFrame3[i][0], testFrame3[i][1], testFrame3[i][2], 0, 0, 0);
- }
+ myFitNewRoutine(testFrame1, testFrame2, testFrame3, testPairs, 7.1534, 0.5591, -3.1415, M_PI / 23, M_PI / 17, M_PI / 2.2, 0.0000001, testF);
ASSERT_NEAR(testF, 0, 0.0001);
- testFrame3.resize(0);
- testFrame3 = testFrame2;
- ApplyFit(testFrame3, 7.1534, 0.5591, -3.1415, M_PI / 23, M_PI / 17, M_PI / 2.2);
- MyFitNew(testFrame1, testFrame3, testPairs, 0.00000001);
- testF = 0;
- for (unsigned int i = 0; i < testFrame1.size(); i++) {
- testF += F(testFrame1[i][0], testFrame1[i][1], testFrame1[i][2], testFrame3[i][0], testFrame3[i][1], testFrame3[i][2], 0, 0, 0);
- }
+ myFitNewRoutine(testFrame1, testFrame2, testFrame3, testPairs, 7.1534, 0.5591, -3.1415, M_PI / 23, M_PI / 17, M_PI / 2.2, 0.00000001, testF);
ASSERT_NEAR(testF, 0, 0.00001);
}