tesseract v5.3.3.20231005
tesseract::LLSQTest Class Reference
Inheritance diagram for tesseract::LLSQTest:
testing::Test

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)
 
- Public Member Functions inherited from testing::Test
virtual ~Test ()
 

Protected Member Functions

void SetUp () override
 
- Protected Member Functions inherited from testing::Test
 Test ()
 
virtual void SetUp ()
 
virtual void TearDown ()
 

Additional Inherited Members

- Static Public Member Functions inherited from testing::Test
static void SetUpTestSuite ()
 
static void TearDownTestSuite ()
 
static void TearDownTestCase ()
 
static void SetUpTestCase ()
 
static bool HasFatalFailure ()
 
static bool HasNonfatalFailure ()
 
static bool IsSkipped ()
 
static bool HasFailure ()
 
static void RecordProperty (const std::string &key, const std::string &value)
 
static void RecordProperty (const std::string &key, int value)
 

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 }
#define EXPECT_NEAR(val1, val2, abs_error)
Definition: gtest.h:2160

◆ 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 }
const char * p

◆ SetUp()

void tesseract::LLSQTest::SetUp ( )
inlineoverrideprotectedvirtual

Reimplemented from testing::Test.

Definition at line 20 of file linlsq_test.cc.

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

◆ TearDown()

void tesseract::LLSQTest::TearDown ( )
inlineoverridevirtual

Reimplemented from testing::Test.

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: