add more funcs

This commit is contained in:
2026-02-17 21:40:36 +03:00
parent 9029bcf099
commit 8ecec6b914
2 changed files with 196 additions and 119 deletions

View File

@@ -411,40 +411,6 @@ TEST_F(Vector2DTest, entries_with_predicate_counts_matches) {
EXPECT_EQ(vec.entries(isEven), evenCount);
}
TEST_F(Vector2DTest, indexOf_finds_first_occurrence) {
int firstTarget = 5 * COLS_COUNT_INIT + 10;
EXPECT_EQ(vec.indexOf(firstTarget), static_cast<ssize_t>(firstTarget));
// Add duplicate later
vec.asPlainVector()[20 * COLS_COUNT_INIT + 15] = firstTarget;
EXPECT_EQ(vec.indexOf(firstTarget), static_cast<ssize_t>(firstTarget)); // Still first
}
TEST_F(Vector2DTest, indexOf_with_start_works) {
int target = 15 * COLS_COUNT_INIT + 20;
EXPECT_EQ(vec.indexOf(target, target + 1), -1);
EXPECT_EQ(vec.indexOf(target, target), static_cast<ssize_t>(target));
}
TEST_F(Vector2DTest, indexWhere_finds_first_match) {
auto isLarge = [](const int & e) { return e > 500; };
ssize_t expected = 501; // First element > 500
EXPECT_EQ(vec.indexWhere(isLarge), expected);
}
TEST_F(Vector2DTest, lastIndexOf_finds_last_occurrence) {
// Add duplicate later
int target = 8 * COLS_COUNT_INIT + 8;
vec.asPlainVector()[25 * COLS_COUNT_INIT + 25] = target;
EXPECT_EQ(vec.lastIndexOf(target), static_cast<ssize_t>(25 * COLS_COUNT_INIT + 25));
}
TEST_F(Vector2DTest, lastIndexWhere_finds_last_match) {
auto isLarge = [](const int & e) { return e > 900; };
ssize_t expected = vec.size() - 1; // Last element
EXPECT_EQ(vec.lastIndexWhere(isLarge), expected);
}
// ==================== STATISTICS AND CONDITIONS TESTS ====================
TEST_F(Vector2DTest, any_returns_true_if_any_match) {
@@ -495,11 +461,13 @@ TEST_F(Vector2DTest, assign_is_alias_for_fill) {
}
TEST_F(Vector2DTest, assign_with_size_resets_to_single_row) {
vec.assign(10, 77);
EXPECT_EQ(vec.rows(), 1);
EXPECT_EQ(vec.cols(), 10);
for (size_t c = 0; c < 10; ++c) {
EXPECT_EQ(vec.element(0, c), 77);
vec.assign(3, 4, 77);
EXPECT_EQ(vec.rows(), 3);
EXPECT_EQ(vec.cols(), 4);
for (size_t r = 0; r < vec.rows(); ++r) {
for (size_t c = 0; c < vec.cols(); ++c) {
EXPECT_EQ(vec.element(r, c), 77);
}
}
}