From bc8f7457bc9f326d7d89c5a35ab598850c5ff903 Mon Sep 17 00:00:00 2001 From: kocotom Date: Fri, 29 Mar 2024 06:41:15 +0100 Subject: [PATCH] Several tests added to increase the test coverage --- tests/partition-relation-pair.cc | 69 ++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/tests/partition-relation-pair.cc b/tests/partition-relation-pair.cc index 8cd5734d..49bf9054 100644 --- a/tests/partition-relation-pair.cc +++ b/tests/partition-relation-pair.cc @@ -38,6 +38,39 @@ TEST_CASE("mata::utils::Partition") { CHECK(p.states_in_same_block(0).size() == 10); CHECK(p.partition().size() == 1); } + + SECTION("Create another simple partition with 1 block") { + Partition p = Partition(10, {{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}}); + CHECK(p.num_of_states() == 10); + CHECK(p.num_of_block_items() == 10); + CHECK(p.num_of_blocks() == 1); + CHECK(p.num_of_nodes() == 1); + CHECK(p.in_same_block({})); + CHECK(p.in_same_block({0})); + CHECK(p.in_same_block(0, 1)); + CHECK(p.in_same_block(1, 8)); + CHECK(p.in_same_block({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})); + for(size_t i = 0; i < 10; ++i) { + CHECK(p.get_block_item_idx_from_state(i) == i); + CHECK(p.get_block_idx_from_state(i) == 0); + CHECK(p.get_node_idx_from_state(i) == 0); + CHECK(p.get_block_item(i).state == i); + CHECK(p.get_block_item(i).block_idx == 0); + CHECK(p.get_node_idx_from_block_item_idx(i) == 0); + } + CHECK(p.get_block_item(p.get_repr_idx_from_block_idx(0)).state == 0); + CHECK(p.get_block_item( + p.get_repr_idx_from_block_idx(0)).block_idx == 0); + CHECK(p.get_block_item( + p.get_repr_idx_from_node_idx(0)).state == 0); + CHECK(p.get_block_item(p.get_repr_idx_from_node_idx(0)).block_idx == 0); + CHECK(p.get_node(0).first == 0); + CHECK(p.get_node(0).last == 9); + CHECK(p.get_block(0).node_idx == 0); + + CHECK(p.states_in_same_block(0).size() == 10); + CHECK(p.partition().size() == 1); + } SECTION("Create a simple partition with 2 blocks") { Partition p{10, {{0, 5, 8}}}; @@ -423,8 +456,44 @@ TEST_CASE("mata::utils::ExtendableSquareMatrix") { ExtendableSquareMatrix *e = create( None, 5, 2); CHECK(e == nullptr); + + delete e; } + + SECTION("Empty matrices") { + + ExtendableSquareMatrix *e1 = create( + Cascade, 5); + ExtendableSquareMatrix *e2 = create( + Dynamic, 5); + ExtendableSquareMatrix *e3 = create( + Hashed, 5); + + CHECK(!e1->size()); + CHECK(!e2->size()); + CHECK(!e3->size()); + + CHECK(e1->capacity() == 5); + CHECK(e2->capacity() == 5); + CHECK(e3->capacity() == 5); + + ExtendableSquareMatrix *c1 = e1; + ExtendableSquareMatrix *c2 = e2; + ExtendableSquareMatrix *c3 = e3; + + CHECK(!c1->size()); + CHECK(!c2->size()); + CHECK(!c3->size()); + + CHECK(c1->capacity() == 5); + CHECK(c2->capacity() == 5); + CHECK(c3->capacity() == 5); + + delete e1; + delete e2; + delete e3; + } SECTION("Copying matrices") {