// tests/test_finset.cpp #include "vendor/catch_amalgamated.hpp" #include "FinSet.h" // Bring Approx into scope using Catch::Approx; TEST_CASE("FinSet basic behavior", "[finset]") { FinSet finSet( "TestFins", 3, // Number of fins 0.15, // Root chord (m) 0.10, // Tip chord (m) 0.10, // Span (m) 0.05, // Sweep length (m) 0.003, // Thickness (m) 500.0 // Material density (kg/m3) ); SECTION("FinSet properties are initialized correctly") { REQUIRE(finSet.getName() == "TestFins"); } SECTION("Normal force coefficient is positive") { double Cn = finSet.calculateNormalForceCoefficient(); REQUIRE(Cn > 0.0); } SECTION("Center of pressure is reasonable") { double cp = finSet.calculateCenterOfPressure(); REQUIRE(cp > 0.0); } SECTION("Drag area calculation is reasonable") { double dragArea = finSet.calculateDragArea(); REQUIRE(dragArea > 0.0); } SECTION("Mass calculation is reasonable") { double mass = finSet.calculateMass(); REQUIRE(mass > 0.0); } }