From: Jeff Bolz Date: Mon, 25 Aug 2025 15:47:16 +0000 (-0500) Subject: tests: Generate unique input values for count_equal (#15487) X-Git-Tag: upstream/0.0.6527~253 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=886b97a5d693550c2da470c091d9d27bf38398f8;p=pkg%2Fggml%2Fsources%2Fllama.cpp tests: Generate unique input values for count_equal (#15487) This avoids backend-dependent behavior for argmax that leads to intermittent failures. --- diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 74886b45..ef6f4521 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -2209,6 +2209,26 @@ struct test_count_equal : public test_case { double max_nmse_err() override { 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 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