@@ -220,3 +220,42 @@ TEST_CASE("Test construction from edge map") {
220220 CHECK_EQ (adj, adj2);
221221 }
222222}
223+
224+ TEST_CASE (" Test insertion of random values" ) {
225+ AdjacencyMatrix adj;
226+ adj.insert (4 , 2 );
227+ auto offsets = test::offsets (adj);
228+ auto indices = test::indices (adj);
229+ CHECK_EQ (offsets.size (), 6 );
230+ std::for_each (
231+ offsets.begin (), offsets.begin () + 5 , [](auto value) { CHECK (value == 0 ); });
232+ CHECK_EQ (offsets[5 ], 1 );
233+ CHECK_EQ (indices.size (), 1 );
234+ CHECK_EQ (indices[0 ], 2 );
235+
236+ adj.insert (63 , 268 );
237+ offsets = test::offsets (adj);
238+ indices = test::indices (adj);
239+ CHECK (offsets.size () == 65 );
240+ std::for_each (
241+ offsets.begin () + 5 , offsets.begin () + 63 , [](auto value) { CHECK (value == 1 ); });
242+ CHECK_EQ (offsets[64 ], 2 );
243+ CHECK_EQ (indices.size (), 2 );
244+ CHECK_EQ (indices[1 ], 268 );
245+
246+ adj.insert (2 , 3 );
247+ offsets = test::offsets (adj);
248+ indices = test::indices (adj);
249+ CHECK_EQ (offsets.size (), 65 );
250+ CHECK_EQ (offsets[0 ], 0 );
251+ CHECK_EQ (offsets[2 ], 0 );
252+ CHECK_EQ (offsets[3 ], 1 );
253+ CHECK_EQ (offsets[4 ], 1 );
254+ CHECK_EQ (offsets[5 ], 2 );
255+ CHECK_EQ (offsets[63 ], 2 );
256+ CHECK_EQ (offsets[64 ], 3 );
257+ CHECK_EQ (indices.size (), 3 );
258+ CHECK_EQ (indices[0 ], 3 );
259+ CHECK_EQ (indices[1 ], 2 );
260+ CHECK_EQ (indices[2 ], 268 );
261+ }
0 commit comments