57 std::vector<double> samples(1000);
58 for (
size_t i = 0; i < samples.size(); ++i) {
63 for (
double val : samples) {
69 double mean = std::accumulate(samples.begin(), samples.end(), 0.0) / samples.size();
70 EXPECT_NEAR(mean, 0.5, 0.1);
75 std::vector<double> samples(10000);
76 for (
size_t i = 0; i < samples.size(); ++i) {
81 double mean = std::accumulate(samples.begin(), samples.end(), 0.0) / samples.size();
82 EXPECT_NEAR(mean, 0.0, 0.1);
85 double variance = 0.0;
86 for (
double val : samples) {
87 variance += val * val;
89 variance /= samples.size();
90 EXPECT_NEAR(variance, sigma * sigma, 0.5);
136 int n_samples = 100000;
137 std::vector<double> samples(n_samples);
139 for (
int i = 0; i < n_samples; ++i) {
144 double mean = std::accumulate(samples.begin(), samples.end(), 0.0) / n_samples;
147 double variance = 0.0;
148 for (
double val : samples) {
149 double diff = val - mean;
150 variance += diff * diff;
152 variance /= n_samples;
153 double std_dev = std::sqrt(variance);
155 EXPECT_NEAR(mean, 0.0, 0.01);
156 EXPECT_NEAR(std_dev, sigma, 0.01);