Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
impeller
geometry
trig_unittests.cc
Go to the documentation of this file.
1
// Copyright 2013 The Flutter Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include <
math.h
>
6
7
#include "
fml/logging.h
"
8
#include "gtest/gtest.h"
9
10
#include "flutter/impeller/geometry/trig.h"
11
12
namespace
impeller
{
13
namespace
testing {
14
15
TEST
(TrigTest, TrigAngles) {
16
{
17
Trig
trig(
Degrees
(0.0));
18
EXPECT_EQ(trig.
cos
, 1.0);
19
EXPECT_EQ(trig.
sin
, 0.0);
20
}
21
22
{
23
Trig
trig(
Radians
(0.0));
24
EXPECT_EQ(trig.
cos
, 1.0);
25
EXPECT_EQ(trig.
sin
, 0.0);
26
}
27
28
{
29
Trig
trig(
Degrees
(30.0));
30
EXPECT_NEAR(trig.
cos
, sqrt(0.75),
kEhCloseEnough
);
31
EXPECT_NEAR(trig.
sin
, 0.5,
kEhCloseEnough
);
32
}
33
34
{
35
Trig
trig(
Radians
(
kPi
/ 6.0));
36
EXPECT_NEAR(trig.
cos
, sqrt(0.75),
kEhCloseEnough
);
37
EXPECT_NEAR(trig.
sin
, 0.5,
kEhCloseEnough
);
38
}
39
40
{
41
Trig
trig(
Degrees
(60.0));
42
EXPECT_NEAR(trig.
cos
, 0.5,
kEhCloseEnough
);
43
EXPECT_NEAR(trig.
sin
, sqrt(0.75),
kEhCloseEnough
);
44
}
45
46
{
47
Trig
trig(
Radians
(
kPi
/ 3.0));
48
EXPECT_NEAR(trig.
cos
, 0.5,
kEhCloseEnough
);
49
EXPECT_NEAR(trig.
sin
, sqrt(0.75),
kEhCloseEnough
);
50
}
51
52
{
53
Trig
trig(
Degrees
(90.0));
54
EXPECT_NEAR(trig.
cos
, 0.0,
kEhCloseEnough
);
55
EXPECT_NEAR(trig.
sin
, 1.0,
kEhCloseEnough
);
56
}
57
58
{
59
Trig
trig(
Radians
(
kPi
/ 2.0));
60
EXPECT_NEAR(trig.
cos
, 0.0,
kEhCloseEnough
);
61
EXPECT_NEAR(trig.
sin
, 1.0,
kEhCloseEnough
);
62
}
63
}
64
65
TEST
(TrigTest, MultiplyByScalarRadius) {
66
for
(
int
i = 0; i <= 360; i++) {
67
for
(
int
i = 1; i <= 10; i++) {
68
Scalar
radius = i * 5.0f;
69
EXPECT_EQ(
Trig
(
Degrees
(i)) * radius,
70
Point
(radius * std::cos(i *
kPi
/ 180),
71
radius * std::sin(i *
kPi
/ 180)))
72
<<
"at "
<< i <<
" degrees and radius "
<< radius;
73
}
74
}
75
}
76
77
}
// namespace testing
78
}
// namespace impeller
TEST
#define TEST(S, s, D, expected)
Definition
FitsInTest.cpp:15
logging.h
math.h
impeller
Definition
texture.h:18
impeller::kPi
constexpr float kPi
Definition
constants.h:26
impeller::Scalar
float Scalar
Definition
scalar.h:18
impeller::kEhCloseEnough
constexpr float kEhCloseEnough
Definition
constants.h:56
impeller::Point
TPoint< Scalar > Point
Definition
point.h:316
impeller::Degrees
Definition
scalar.h:46
impeller::Radians
Definition
scalar.h:38
impeller::Trig
A structure to store the sine and cosine of an angle.
Definition
trig.h:16
impeller::Trig::cos
double cos
Definition
trig.h:24
impeller::Trig::sin
double sin
Definition
trig.h:25
Generated on Fri Apr 26 2024 06:14:11 for Flutter Engine by
1.9.8