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