Skip to content

Commit e565d0f

Browse files
Add repeats to runtime tests.
1 parent 608af8d commit e565d0f

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

test/dd/test_approximations.cpp

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -329,29 +329,32 @@ TEST(ApproximationTest, ThreeQubitRemoveUnconnected) {
329329
TEST(ApproximationTest, Runtime) {
330330
{
331331
constexpr std::size_t n = 15; // Up to 16 qubits.
332+
constexpr std::size_t repeats = 10; // Repeat benchmark 10 times.
332333
constexpr double fidelity = 1 - 0.01; // Budget of .02
333334

334335
std::array<std::size_t, n> qubits{}; // Qubit counts: [2, 16]
335336
std::iota(qubits.begin(), qubits.end(), 2);
336337

337338
for (std::size_t i = 0; i < n; ++i) {
338-
const std::size_t nq = qubits[i];
339+
std::size_t nodes{};
340+
double rt{};
339341

342+
const std::size_t nq = qubits[i];
340343
auto dd = std::make_unique<dd::Package>(nq);
341344

342-
auto state = generateExponentialDD(nq, *dd);
343-
const std::size_t numNodes = state.size() - 1; // Minus terminal.
345+
for (std::size_t r = 0; r < repeats; ++r) {
346+
auto state = generateExponentialDD(nq, *dd);
347+
nodes += state.size() - 1; // Minus terminal.
348+
349+
const auto t1 = std::chrono::high_resolution_clock::now();
350+
approximate(state, fidelity, *dd);
351+
const auto t2 = std::chrono::high_resolution_clock::now();
352+
const std::chrono::duration<double, std::micro> runtime = t2 - t1;
344353

345-
const auto t1 = std::chrono::high_resolution_clock::now();
346-
approximate(state, fidelity, *dd);
347-
const auto t2 = std::chrono::high_resolution_clock::now();
348-
const std::chrono::duration<double, std::micro> runtime = t2 - t1;
354+
rt += runtime.count();
355+
}
349356

350-
std::cout << numNodes << ";" << runtime.count() << ";"
351-
<< runtime.count() /
352-
(static_cast<double>(numNodes) * std::log2(numNodes))
353-
<< '\n';
357+
std::cout << nodes / repeats << " | " << rt / repeats << '\n';
354358
}
355-
EXPECT_FALSE(true);
356359
}
357360
}

0 commit comments

Comments
 (0)