MCPcopy Create free account
hub / github.com/apache/arrow / TEST

Function TEST

cpp/src/arrow/util/math_test.cc:28–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26namespace arrow::internal {
27
28TEST(NormalPPF, Basics) {
29 struct PPFTestCase {
30 double input;
31 double expected;
32 };
33 // Test vectors obtained using Scipy's norm.ppf
34 std::vector<PPFTestCase> cases = {
35 {0.0, -HUGE_VAL},
36 {0.001, -3.090232306167813},
37 {0.01, -2.3263478740408408},
38 {0.02, -2.053748910631823},
39 {0.03, -1.880793608151251},
40 {0.04, -1.75068607125217},
41 {0.05, -1.6448536269514729},
42 {0.06, -1.5547735945968535},
43 {0.07, -1.4757910281791706},
44 {0.08, -1.4050715603096329},
45 {0.09, -1.3407550336902165},
46 {0.1, -1.2815515655446004},
47 {0.2, -0.8416212335729142},
48 {0.3, -0.5244005127080409},
49 {0.4, -0.2533471031357997},
50 {0.5, 0.0},
51 {0.6, 0.2533471031357997},
52 {0.7, 0.5244005127080407},
53 {0.8, 0.8416212335729143},
54 {0.9, 1.2815515655446004},
55 {0.91, 1.3407550336902165},
56 {0.92, 1.4050715603096329},
57 {0.93, 1.475791028179171},
58 {0.94, 1.5547735945968535},
59 {0.95, 1.6448536269514722},
60 {0.96, 1.7506860712521692},
61 {0.97, 1.8807936081512509},
62 {0.98, 2.0537489106318225},
63 {0.99, 2.3263478740408408},
64 {0.999, 3.090232306167813},
65 {1.0, HUGE_VAL},
66 };
67 for (auto test_case : cases) {
68 ARROW_SCOPED_TRACE("p = ", test_case.input);
69 EXPECT_DOUBLE_EQ(NormalPPF(test_case.input), test_case.expected);
70 }
71 // Test vectors from https://doi.org/10.2307/2347330
72 cases = {
73 {0.25, -0.6744897501960817},
74 {0.001, -3.090232306167814},
75 {1e-20, -9.262340089798408},
76 };
77 for (auto test_case : cases) {
78 ARROW_SCOPED_TRACE("p = ", test_case.input);
79 EXPECT_DOUBLE_EQ(NormalPPF(test_case.input), test_case.expected);
80 }
81}
82
83TEST(NeumaierSum, Basics) {
84 ASSERT_EQ(0.0, NeumaierSum(std::vector<double>{}));

Callers

nothing calls this directly

Calls 2

NormalPPFFunction · 0.85
NeumaierSumFunction · 0.85

Tested by

no test coverage detected