https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Functions
TestStochasticToolsCartesianProduct.C File Reference

Go to the source code of this file.

Functions

 TEST (StochasticTools, CartesianProduct)
 
 TEST (StochasticTools, WeightedCartesianProduct)
 

Function Documentation

◆ TEST() [1/2]

TEST ( StochasticTools  ,
CartesianProduct   
)

Definition at line 15 of file TestStochasticToolsCartesianProduct.C.

16{
17 const std::vector<std::vector<Real>> gold = {
18 {2, 3, 4}, {2, 3, 16}, {2, 9, 4}, {2, 9, 16}, {2, 27, 4}, {2, 27, 16},
19 {4, 3, 4}, {4, 3, 16}, {4, 9, 4}, {4, 9, 16}, {4, 27, 4}, {4, 27, 16},
20 {8, 3, 4}, {8, 3, 16}, {8, 9, 4}, {8, 9, 16}, {8, 27, 4}, {8, 27, 16},
21 {16, 3, 4}, {16, 3, 16}, {16, 9, 4}, {16, 9, 16}, {16, 27, 4}, {16, 27, 16}};
22
23 const std::vector<std::vector<Real>> x = {{2, 4, 8, 16}, {3, 9, 27}, {4, 16}};
24
25 const CartesianProduct<Real> cp(x);
26
27 EXPECT_EQ(cp.numRows(), (std::size_t)24);
28 EXPECT_EQ(cp.numCols(), (std::size_t)3);
29
30 {
31 auto out = cp.computeMatrix();
32 EXPECT_EQ(out, gold);
33 }
34
35 {
36 EXPECT_EQ(cp.computeRow(0), gold[0]);
37 EXPECT_EQ(cp.computeRow(1), gold[1]);
38 EXPECT_EQ(cp.computeRow(2), gold[2]);
39 EXPECT_EQ(cp.computeRow(3), gold[3]);
40 EXPECT_EQ(cp.computeRow(4), gold[4]);
41 EXPECT_EQ(cp.computeRow(5), gold[5]);
42 EXPECT_EQ(cp.computeRow(6), gold[6]);
43 EXPECT_EQ(cp.computeRow(7), gold[7]);
44 EXPECT_EQ(cp.computeRow(8), gold[8]);
45 EXPECT_EQ(cp.computeRow(9), gold[9]);
46 EXPECT_EQ(cp.computeRow(10), gold[10]);
47 EXPECT_EQ(cp.computeRow(11), gold[11]);
48 EXPECT_EQ(cp.computeRow(12), gold[12]);
49 EXPECT_EQ(cp.computeRow(13), gold[13]);
50 EXPECT_EQ(cp.computeRow(14), gold[14]);
51 EXPECT_EQ(cp.computeRow(15), gold[15]);
52 EXPECT_EQ(cp.computeRow(16), gold[16]);
53 EXPECT_EQ(cp.computeRow(17), gold[17]);
54 EXPECT_EQ(cp.computeRow(18), gold[18]);
55 EXPECT_EQ(cp.computeRow(19), gold[19]);
56 EXPECT_EQ(cp.computeRow(20), gold[20]);
57 EXPECT_EQ(cp.computeRow(21), gold[21]);
58 EXPECT_EQ(cp.computeRow(22), gold[22]);
59 EXPECT_EQ(cp.computeRow(23), gold[23]);
60 }
61
62 {
63 for (std::size_t row = 0; row < cp.numRows(); ++row)
64 for (std::size_t col = 0; col < cp.numCols(); ++col)
65 EXPECT_EQ(cp.computeValue(row, col), gold[row][col]);
66 }
67}
const std::vector< double > x
OStreamProxy out(std::cout)

◆ TEST() [2/2]

TEST ( StochasticTools  ,
WeightedCartesianProduct   
)

Definition at line 69 of file TestStochasticToolsCartesianProduct.C.

70{
71 const std::vector<Real> gold = {
72 1 * 10 * 100, 1 * 10 * 110, 1 * 11 * 100, 1 * 11 * 110, 1 * 12 * 100, 1 * 12 * 110,
73 2 * 10 * 100, 2 * 10 * 110, 2 * 11 * 100, 2 * 11 * 110, 2 * 12 * 100, 2 * 12 * 110,
74 3 * 10 * 100, 3 * 10 * 110, 3 * 11 * 100, 3 * 11 * 110, 3 * 12 * 100, 3 * 12 * 110,
75 4 * 10 * 100, 4 * 10 * 110, 4 * 11 * 100, 4 * 11 * 110, 4 * 12 * 100, 4 * 12 * 110};
76
77 const std::vector<std::vector<Real>> x = {{2, 4, 8, 16}, {3, 9, 27}, {4, 16}};
78 const std::vector<std::vector<Real>> w = {{1, 2, 3, 4}, {10, 11, 12}, {100, 110}};
79
81
82 EXPECT_EQ(wcp.numRows(), (std::size_t)24);
83 EXPECT_EQ(wcp.numCols(), (std::size_t)3);
84
85 {
86 auto out = wcp.computeWeightVector();
87 EXPECT_EQ(out, gold);
88 }
89
90 {
91 for (std::size_t row = 0; row < wcp.numRows(); ++row)
92 EXPECT_EQ(wcp.computeWeight(row), gold[row]);
93 }
94}