tesseract  5.0.0
tesseract::LLSQTest Class Reference
Inheritance diagram for tesseract::LLSQTest:

Public Member Functions

void TearDown () override
 
void ExpectCorrectLine (const LLSQ &llsq, double m, double c, double rms, double pearson, double tolerance)
 
FCOORD PtsMean (const std::vector< FCOORD > &pts)
 
void VerifyRmsOrth (const std::vector< FCOORD > &pts, const FCOORD &orth)
 
void ExpectCorrectVector (const LLSQ &llsq, FCOORD correct_mean_pt, FCOORD correct_vector, float tolerance)
 

Protected Member Functions

void SetUp () override
 

Detailed Description

Definition at line 18 of file linlsq_test.cc.

Member Function Documentation

◆ ExpectCorrectLine()

void tesseract::LLSQTest::ExpectCorrectLine ( const LLSQ llsq,
double  m,
double  c,
double  rms,
double  pearson,
double  tolerance 
)
inline

Definition at line 27 of file linlsq_test.cc.

28  {
29  EXPECT_NEAR(m, llsq.m(), tolerance);
30  EXPECT_NEAR(c, llsq.c(llsq.m()), tolerance);
31  EXPECT_NEAR(rms, llsq.rms(llsq.m(), llsq.c(llsq.m())), tolerance);
32  EXPECT_NEAR(pearson, llsq.pearson(), tolerance);
33  }

◆ ExpectCorrectVector()

void tesseract::LLSQTest::ExpectCorrectVector ( const LLSQ llsq,
FCOORD  correct_mean_pt,
FCOORD  correct_vector,
float  tolerance 
)
inline

Definition at line 56 of file linlsq_test.cc.

57  {
58  FCOORD mean_pt = llsq.mean_point();
59  FCOORD vector = llsq.vector_fit();
60  EXPECT_NEAR(correct_mean_pt.x(), mean_pt.x(), tolerance);
61  EXPECT_NEAR(correct_mean_pt.y(), mean_pt.y(), tolerance);
62  EXPECT_NEAR(correct_vector.x(), vector.x(), tolerance);
63  EXPECT_NEAR(correct_vector.y(), vector.y(), tolerance);
64  }

◆ PtsMean()

FCOORD tesseract::LLSQTest::PtsMean ( const std::vector< FCOORD > &  pts)
inline

Definition at line 34 of file linlsq_test.cc.

34  {
35  FCOORD total(0, 0);
36  for (const auto &p : pts) {
37  total += p;
38  }
39  return (pts.size() > 0) ? total / pts.size() : total;
40  }

◆ SetUp()

void tesseract::LLSQTest::SetUp ( )
inlineoverrideprotected

Definition at line 20 of file linlsq_test.cc.

20  {
21  std::locale::global(std::locale(""));
22  }

◆ TearDown()

void tesseract::LLSQTest::TearDown ( )
inlineoverride

Definition at line 25 of file linlsq_test.cc.

25 {}

◆ VerifyRmsOrth()

void tesseract::LLSQTest::VerifyRmsOrth ( const std::vector< FCOORD > &  pts,
const FCOORD orth 
)
inline

Definition at line 41 of file linlsq_test.cc.

41  {
42  LLSQ llsq;
43  FCOORD xavg = PtsMean(pts);
44  FCOORD nvec = !orth;
45  nvec.normalise();
46  double expected_answer = 0;
47  for (const auto &p : pts) {
48  llsq.add(p.x(), p.y());
49  double dot = nvec % (p - xavg);
50  expected_answer += dot * dot;
51  }
52  expected_answer /= pts.size();
53  expected_answer = sqrt(expected_answer);
54  EXPECT_NEAR(expected_answer, llsq.rms_orth(orth), 0.0001);
55  }
FCOORD PtsMean(const std::vector< FCOORD > &pts)
Definition: linlsq_test.cc:34

The documentation for this class was generated from the following file: