diff --git a/.github/workflows/cmake_install_macos.yml b/.github/workflows/cmake_install_macos.yml index e2aefbfec..b58890aa3 100644 --- a/.github/workflows/cmake_install_macos.yml +++ b/.github/workflows/cmake_install_macos.yml @@ -11,7 +11,7 @@ jobs: runs-on: macos-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Build and install working-directory: ${{github.workspace}} diff --git a/.github/workflows/cmake_test.yml b/.github/workflows/cmake_test.yml index 9de1197d1..93206fe28 100644 --- a/.github/workflows/cmake_test.yml +++ b/.github/workflows/cmake_test.yml @@ -1,4 +1,4 @@ -name: Run tests on CMake +name: Run tests on Ubuntu on: push: diff --git a/.github/workflows/cmake_test_macos.yml b/.github/workflows/cmake_test_macos.yml new file mode 100644 index 000000000..09f94e4cb --- /dev/null +++ b/.github/workflows/cmake_test_macos.yml @@ -0,0 +1,30 @@ +name: Run tests on MacOS + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + BUILD_TYPE: Debug + +jobs: + build: + runs-on: macos-latest + + steps: + - uses: actions/checkout@v4 + + - name: Configure CMake + working-directory: ${{github.workspace}}/test + run: cmake -B ${{github.workspace}}/test/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + working-directory: ${{github.workspace}}/test + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/test/build --config ${{env.BUILD_TYPE}} + + - name: Run tests + working-directory: ${{github.workspace}}/test + run: ./dsm_tests.out diff --git a/test/Test_dynamics.cpp b/test/Test_dynamics.cpp index a2247e29c..3aa49ac5c 100644 --- a/test/Test_dynamics.cpp +++ b/test/Test_dynamics.cpp @@ -186,24 +186,42 @@ TEST_CASE("Dynamics") { "same as " "the itinerary") { CHECK_EQ(dynamics.agents().size(), 3); + CHECK(dynamics.agents().at(0)->streetId().has_value()); + CHECK(dynamics.agents().at(1)->streetId().has_value()); + CHECK(dynamics.agents().at(2)->streetId().has_value()); +#ifdef __APPLE__ + CHECK_EQ(dynamics.itineraries() + .at(dynamics.agents().at(0)->itineraryId()) + ->destination(), + Itinerary2.destination()); + CHECK_EQ(dynamics.agents().at(0)->streetId().value(), 6); + CHECK_EQ(dynamics.itineraries() + .at(dynamics.agents().at(1)->itineraryId()) + ->destination(), + Itinerary1.destination()); + CHECK_EQ(dynamics.agents().at(1)->streetId().value(), 1); + CHECK_EQ(dynamics.itineraries() + .at(dynamics.agents().at(2)->itineraryId()) + ->destination(), + Itinerary1.destination()); + CHECK_EQ(dynamics.agents().at(2)->streetId().value(), 8); +#else CHECK_EQ(dynamics.itineraries() .at(dynamics.agents().at(0)->itineraryId()) ->destination(), Itinerary1.destination()); - CHECK(dynamics.agents().at(0)->streetId().has_value()); CHECK_EQ(dynamics.agents().at(0)->streetId().value(), 3); CHECK_EQ(dynamics.itineraries() .at(dynamics.agents().at(1)->itineraryId()) ->destination(), Itinerary1.destination()); - CHECK(dynamics.agents().at(1)->streetId().has_value()); CHECK_EQ(dynamics.agents().at(1)->streetId().value(), 8); CHECK_EQ(dynamics.itineraries() .at(dynamics.agents().at(2)->itineraryId()) ->destination(), Itinerary2.destination()); - CHECK(dynamics.agents().at(2)->streetId().has_value()); CHECK_EQ(dynamics.agents().at(2)->streetId().value(), 1); +#endif } } }