File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -589,4 +589,31 @@ TEST_CASE("math operations", "[math]")
589589 REQUIRE_THAT (atan2 (1 . * isq::length[km], 1000 . * isq::length[m]), AlmostEquals (45 . * angle[deg]));
590590 }
591591 }
592+
593+ SECTION (" inverse functions" )
594+ {
595+ SECTION (" inverse of time quantity returns frequency" )
596+ {
597+ auto period = 2.0 * isq::time[s];
598+ auto frequency = inverse<si::hertz>(period);
599+ REQUIRE (frequency == 0.5 * isq::frequency[Hz]);
600+ }
601+
602+ SECTION (" inverse works with runtime values" )
603+ {
604+ // Test the specific case that fails with consteval
605+ double runtime_value = 3.0 ;
606+ auto period = runtime_value * isq::time[s];
607+ auto frequency = inverse<si::hertz>(period);
608+ auto expected = (1.0 / 3.0 ) * isq::frequency[Hz];
609+ REQUIRE_THAT (frequency, AlmostEquals (expected));
610+ }
611+
612+ SECTION (" inverse with different input units" )
613+ {
614+ auto period_ms = 500.0 * isq::time[ms];
615+ auto frequency = inverse<si::hertz>(period_ms);
616+ REQUIRE (frequency == 2.0 * isq::frequency[Hz]);
617+ }
618+ }
592619}
You can’t perform that action at this time.
0 commit comments