From: Jiri Vlasak Date: Wed, 19 Jan 2022 10:43:32 +0000 (+0100) Subject: Fix ut X-Git-Tag: v0.8.0^0 X-Git-Url: http://rtime.felk.cvut.cz/gitweb/hubacji1/bcar.git/commitdiff_plain/3536695b35c8e4f31785d7845bf99bf692cc8ff2 Fix ut This is due to refining minimum turning radius (MTR) computation introduced in 42cfdd7. (Please note that approach of fixing ut after the change is bad practice against TDD and will not be accepted next time.) MTR computation has changed because front track is used instead of car width (including mirrors). --- diff --git a/ut/bcar.t.cc b/ut/bcar.t.cc index b01a07e..73aaaef 100644 --- a/ut/bcar.t.cc +++ b/ut/bcar.t.cc @@ -40,16 +40,16 @@ WVTEST_MAIN("bcar basic geometry") // min. turning radius circle centers WVPASSEQ_DOUBLE(bc.h(), M_PI / 2.0, 0.00001); - WVPASSEQ_DOUBLE(-3.08257569495584, bc.ccl().x(), 0.00001); + WVPASSEQ_DOUBLE(-2.827076, bc.ccl().x(), 0.00001); WVPASSEQ_DOUBLE(1.0000000000000004, bc.ccl().y(), 0.00001); - WVPASSEQ_DOUBLE(5.08257569495584, bc.ccr().x(), 0.00001); + WVPASSEQ_DOUBLE(4.827076, bc.ccr().x(), 0.00001); WVPASSEQ_DOUBLE(1.0, bc.ccr().y(), 0.00001); // car radiuses (inner radius, outer front radius, outer rear radius) bc.h(1.2345); - WVPASSEQ_DOUBLE(bc.iradi(), 3.58257569495584, 0.00001); - WVPASSEQ_DOUBLE(bc.ofradi(), 5.220153254455275, 0.00001); - WVPASSEQ_DOUBLE(bc.orradi(), 4.6097722286464435, 0.00001); + WVPASSEQ_DOUBLE(3.327076, bc.iradi(), 0.00001); + WVPASSEQ_DOUBLE(4.997358, bc.ofradi(), 0.00001); + WVPASSEQ_DOUBLE(4.355868, bc.orradi(), 0.00001); bc.h(M_PI / 2.0); // moving @@ -60,7 +60,7 @@ WVTEST_MAIN("bcar basic geometry") WVPASSEQ_DOUBLE(2.0, bc.y(), 0.00001); bc.set_max_steer(); - WVPASSEQ_DOUBLE(0.45552437743483687, bc.st(), 0.00001); + WVPASSEQ_DOUBLE(0.481558, bc.st(), 0.00001); // rotate bc.x(-1.0); @@ -184,6 +184,8 @@ WVTEST_MAIN("drivable") tmp_double_2 = std::abs(g.mtr() * 2 * sin(-M_PI/2 / 2)); WVPASSEQ_DOUBLE(tmp_double_1, tmp_double_2, 0.00001); WVPASS(g.drivable(n)); // pass right corner case + n.rotate(g.ccr(), -0.1); + WVPASS(!g.drivable(n)); // fail right corner case n = BicycleCar(g); n.rotate(g.ccl(), M_PI/2); @@ -192,7 +194,7 @@ WVTEST_MAIN("drivable") tmp_double_2 = std::abs(g.mtr() * 2 * sin(M_PI/2 / 2)); WVPASSEQ_DOUBLE(tmp_double_1, tmp_double_2, 0.00001); WVPASS(g.drivable(n)); // pass left corner case - n.rotate(g.ccl(), 0.01); + n.rotate(g.ccl(), 0.1); WVPASS(!g.drivable(n)); // fail left corner case n = BicycleCar(g);