blob: dc25e234b3b82093b379ea0e5b08cfca28422d1f [file] [log] [blame]
Austin Schuhe6e7ea52019-01-13 17:26:36 -08001#include "frc971/control_loops/binomial.h"
2
3#include "gtest/gtest.h"
4
Stephan Pleinesf63bde82024-01-13 15:59:33 -08005namespace frc971::control_loops::testing {
Austin Schuhe6e7ea52019-01-13 17:26:36 -08006
7// Tests some factorials.
8TEST(BinomialTest, Factorial) {
9 EXPECT_EQ(1.0, Factorial(0));
10 EXPECT_EQ(1.0, Factorial(1));
11 EXPECT_EQ(2.0, Factorial(2));
12 EXPECT_EQ(6.0, Factorial(3));
13 EXPECT_EQ(24.0, Factorial(4));
14}
15
16// Test a 2nd order polynomial.
17TEST(BinomialTest, Quadratic) {
18 EXPECT_EQ(1.0, Binomial(2, 0));
19 EXPECT_EQ(2.0, Binomial(2, 1));
20 EXPECT_EQ(1.0, Binomial(2, 2));
21}
22
23// Test a 3th order polynomial.
24TEST(BinomialTest, Cubic) {
25 EXPECT_EQ(1.0, Binomial(3, 0));
26 EXPECT_EQ(3.0, Binomial(3, 1));
27 EXPECT_EQ(3.0, Binomial(3, 2));
28 EXPECT_EQ(1.0, Binomial(3, 3));
29}
30
31// Test a 4th order polynomial.
32TEST(BinomialTest, Quartic) {
33 EXPECT_EQ(1.0, Binomial(4, 0));
34 EXPECT_EQ(4.0, Binomial(4, 1));
35 EXPECT_EQ(6.0, Binomial(4, 2));
36 EXPECT_EQ(4.0, Binomial(4, 3));
37 EXPECT_EQ(1.0, Binomial(4, 4));
38}
39
Stephan Pleinesf63bde82024-01-13 15:59:33 -080040} // namespace frc971::control_loops::testing