| 143 | } |
| 144 | |
| 145 | void test_triangle() |
| 146 | { |
| 147 | const geode::Point2D a{ { 1.0, 5.0 } }; |
| 148 | const geode::Point2D b{ { -1.0, -5.0 } }; |
| 149 | const geode::Point2D c{ { 1.0, -5.0 } }; |
| 150 | const geode::Triangle2D triangle{ a, b, c }; |
| 151 | |
| 152 | const geode::Point2D barycenter{ { 1.0 / 3., -5.0 / 3. } }; |
| 153 | geode::OpenGeodeGeometryException::test( |
| 154 | triangle.barycenter() == barycenter, "Wrong barycenter result" ); |
| 155 | |
| 156 | geode::Triangle2D triangle2{ triangle }; |
| 157 | geode::OpenGeodeGeometryException::test( |
| 158 | triangle2.vertices()[0].get() == a && triangle2.vertices()[1].get() == b |
| 159 | && triangle2.vertices()[2].get() == c, |
| 160 | "Wrong result for triangle2" ); |
| 161 | |
| 162 | geode::Triangle2D triangle3{ std::move( triangle ) }; |
| 163 | geode::OpenGeodeGeometryException::test( |
| 164 | triangle3.vertices()[0].get() == a && triangle3.vertices()[1].get() == b |
| 165 | && triangle3.vertices()[2].get() == c, |
| 166 | "Wrong result for triangle3" ); |
| 167 | |
| 168 | geode::Triangle2D triangle4{ c, b, a }; |
| 169 | triangle4 = triangle2; |
| 170 | geode::OpenGeodeGeometryException::test( |
| 171 | triangle4.vertices()[0].get() == a && triangle4.vertices()[1].get() == b |
| 172 | && triangle4.vertices()[2].get() == c, |
| 173 | "Wrong result for triangle4" ); |
| 174 | |
| 175 | geode::Triangle2D triangle5{ c, b, a }; |
| 176 | triangle5 = std::move( triangle2 ); |
| 177 | geode::OpenGeodeGeometryException::test( |
| 178 | triangle5.vertices()[0].get() == a && triangle5.vertices()[1].get() == b |
| 179 | && triangle2.vertices()[2].get() == c, |
| 180 | "Wrong result for triangle5" ); |
| 181 | } |
| 182 | |
| 183 | void test_tetrahedron() |
| 184 | { |
no test coverage detected