3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-20 10:10:21 +00:00

add tests for distribution utility and fix loose ends

This commit is contained in:
Nikolaj Bjorner 2023-04-13 11:19:06 -07:00
parent 1a70ac75df
commit 624907823d
4 changed files with 57 additions and 6 deletions

45
src/test/distribution.cpp Normal file
View file

@ -0,0 +1,45 @@
/*++
Copyright (c) 2023 Microsoft Corporation
Module Name:
distribution.cpp
Abstract:
Test distribution
Author:
Nikolaj Bjorner (nbjorner) 2023-04-13
--*/
#include "util/distribution.h"
#include <iostream>
static void tst1() {
distribution dist(1);
dist.push(1, 3);
dist.push(2, 1);
dist.push(3, 1);
dist.push(4, 1);
unsigned counts[4] = { 0, 0, 0, 0 };
for (unsigned i = 0; i < 1000; ++i)
counts[dist.choose()-1]++;
for (unsigned i = 1; i <= 4; ++i)
std::cout << "count " << i << ": " << counts[i-1] << "\n";
for (unsigned i = 0; i < 5; ++i) {
std::cout << "enum ";
for (auto j : dist)
std::cout << j << " ";
std::cout << "\n";
}
}
void tst_distribution() {
tst1();
}