tesseract 5.2.0
Loading...
Searching...
No Matches
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: