tests: Generate unique input values for count_equal (#15487)

This avoids backend-dependent behavior for argmax that leads to intermittent failures.
This commit is contained in:
Jeff Bolz
2025-08-25 10:47:16 -05:00
committed by GitHub
parent 111f8d06f0
commit 886b97a5d6

View File

@@ -2209,6 +2209,26 @@ struct test_count_equal : public test_case {
double max_nmse_err() override { double max_nmse_err() override {
return 0.0; return 0.0;
} }
void initialize_tensors(ggml_context * ctx) override {
std::random_device rd;
std::default_random_engine rng(rd());
for (ggml_tensor * t = ggml_get_first_tensor(ctx); t != NULL; t = ggml_get_next_tensor(ctx, t)) {
if (t->type == GGML_TYPE_F32) {
// initialize with unique values to avoid ties
for (int64_t r = 0; r < ggml_nrows(t); r++) {
std::vector<float> data(t->ne[0]);
for (int i = 0; i < t->ne[0]; i++) {
data[i] = i;
}
std::shuffle(data.begin(), data.end(), rng);
ggml_backend_tensor_set(t, data.data(), r * t->nb[1], t->ne[0] * sizeof(float));
}
} else {
init_tensor_uniform(t);
}
}
}
}; };
// GGML_OP_REPEAT // GGML_OP_REPEAT