29 #include "gtest/gtest.h"
59 EXPECT_TRUE(LyapunovContinuous::hasUniqueSolution(
A));
62 bool solve_success = LyapunovContinuous::solve(
A, Q,
X);
63 EXPECT_TRUE(solve_success);
65 Eigen::Matrix2d X_sol;
66 X_sol << 6.166666, -3.8333333, -3.8333333, 3;
78 Eigen::Matrix2d Q = Eigen::Matrix2d::Identity();
80 EXPECT_TRUE(LyapunovContinuous::hasUniqueSolution(
A));
83 bool solve_success = LyapunovContinuous::solve(
A, Q,
X);
84 EXPECT_TRUE(solve_success);
86 Eigen::Matrix2d X_sol;
87 X_sol << 67.0 / 60.0, 1.0 / 12.0, 1.0 / 12.0, 7.0 / 60.0;
97 Eigen::Matrix2d Q = Eigen::Matrix2d::Identity();
99 EXPECT_TRUE(LyapunovContinuous::hasUniqueSolution(
A));
102 bool solve_success = LyapunovContinuous::solve(
A, Q,
X);
103 EXPECT_TRUE(solve_success);
105 Eigen::Matrix2d X_sol;
106 X_sol << 0.533333, -0.5, -0.5, 0.7;
114 Eigen::MatrixXd
A(5, 5);
115 A << -15, -85, -225, -274, -120, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0;
117 Eigen::MatrixXd Q(5, 5);
119 Q << 1.7, 2.4, 0.1, 0.8, 1.5, 2.3, 0.5, 0.7, 1.4, 1.6, 0.4, 0.6, 1.3, 2.0, 2.2, 1.0, 1.2, 1.9, 2.1, 0.3, 1.1, 1.8, 2.5, 0.2, 0.9;
121 EXPECT_TRUE(LyapunovContinuous::hasUniqueSolution(
A));
124 bool solve_success = LyapunovContinuous::solve(
A, Q,
X);
125 EXPECT_TRUE(solve_success);
127 Eigen::MatrixXd X_sol(5, 5);
128 X_sol << 489.7681, 0.0322, -35.0314, -0.7613, 6.1874, -0.5322, 34.3314, -0.6387, -7.7874, -1.1722, -34.9314, -0.6613, 5.7874, -1.0278, -3.6708,
129 -0.5387, -7.6874, -1.0722, 3.3708, -0.4565, 5.8874, -1.4278, -3.5708, -0.4435, 7.9881;
139 Eigen::MatrixXd
A(5, 5);
140 A << -2.5, -2.3, -0.95, -0.1689, -0.095, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0;
142 Eigen::MatrixXd Q = Eigen::MatrixXd::Identity(5, 5);
144 EXPECT_TRUE(LyapunovContinuous::hasUniqueSolution(
A));
147 bool solve_success = LyapunovContinuous::solve(
A, Q,
X);
148 EXPECT_TRUE(solve_success);
150 Eigen::MatrixXd X_sol(5, 5);
151 X_sol << 1.1495, -0.5000, -0.8201, 0.5000, -5.5701, -0.5000, 0.8201, -0.5000, 5.5701, 0.5000, -0.8201, -0.5000, -5.5701, -0.5000, 85.0134, 0.5000,
152 5.5701, -0.5000, -85.0134, -0.5000, -5.5701, 0.5000, 85.0134, -0.5000, -709.5066;
159 Eigen::MatrixXd
A = Eigen::MatrixXd::Random(5, 4);
167 EXPECT_DEBUG_DEATH(LyapunovContinuous::solve(
A, Q,
X),
"");
172 Eigen::MatrixXd
A = Eigen::MatrixXd::Random(4, 4);
173 Eigen::MatrixXd Q = Eigen::MatrixXd::Random(5, 4);
176 EXPECT_DEBUG_DEATH(LyapunovContinuous::solve(
A, Q,
X),
"");
181 Eigen::MatrixXd
A = Eigen::MatrixXd::Random(4, 4);
182 Eigen::MatrixXd Q = Eigen::MatrixXd::Random(5, 5);
185 EXPECT_DEBUG_DEATH(LyapunovContinuous::solve(
A, Q,
X),
"");
190 Eigen::MatrixXd
A = Eigen::MatrixXd::Random(5, 4);
193 EXPECT_FALSE(LyapunovContinuous::hasUniqueSolution(
A));
198 Eigen::Matrix3d
A = Eigen::Matrix3d::Ones();
200 EXPECT_FALSE(LyapunovContinuous::hasUniqueSolution(
A));