From e4bcc802b848628dd3418be2617f46816b2c1dce Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Tue, 30 Jun 2026 10:13:58 -0400 Subject: [PATCH] Fix up the tests and remove some duplicate calculations for the t-test. --- cpp/include/stats.hpp | 2 -- cpp/src/stats.cpp | 6 +----- cpp/tests/stats_tests.cpp | 2 +- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/cpp/include/stats.hpp b/cpp/include/stats.hpp index 1aefc82..e633b50 100644 --- a/cpp/include/stats.hpp +++ b/cpp/include/stats.hpp @@ -65,8 +65,6 @@ struct Stats { auto end = std::chrono::high_resolution_clock::now(); auto elapsed = std::chrono::duration(end - start); - auto as_ms = std::chrono::duration_cast(elapsed); - if(elapsed.count() > 0.0) { sample(1.0/elapsed.count()); } diff --git a/cpp/src/stats.cpp b/cpp/src/stats.cpp index c54fffd..bbf6e43 100644 --- a/cpp/src/stats.cpp +++ b/cpp/src/stats.cpp @@ -44,14 +44,10 @@ TTest internal_t_test(auto& first, auto& second) { double den = (std::pow(var1 / n1, 2) / (n1 - 1)) + (std::pow(var2 / n2, 2) / (n2 - 1)); double dof = num / den; - // welch calculation - double temp = first.sample_variance() / first.n + second.sample_variance() / second.n; - double welchs = (first.mean() - second.mean()) / std::sqrt(temp); - double gamm = std::exp( std::lgamma(dof / 2.0) + std::lgamma(0.5) - std::lgamma(dof / 2.0 + 0.5)); - double b = dof / ( welchs * welchs + dof); + double b = dof / (t_stat * t_stat + dof); auto func = [&](const double r) { return std::pow(r, dof / 2.0 - 1.0) / std::sqrt(1.0 - r); diff --git a/cpp/tests/stats_tests.cpp b/cpp/tests/stats_tests.cpp index c3ba65d..618f8a1 100644 --- a/cpp/tests/stats_tests.cpp +++ b/cpp/tests/stats_tests.cpp @@ -99,7 +99,7 @@ namespace stats_tests { std::string filename("samples.txt"); std::fstream s{filename, s.binary | s.trunc | s.out}; - double skew_factor = 0.8; + double skew_factor = uniform_real(0.01, 5.0); for(size_t i = 0; i < 10; i++) { double num = uniform_real(-10.0, 10.0);