General Remarks
The following sections provide a detailed account of the validation procedures. Two types of tests are carried out, the first one being fully scoped model tests, while the second tests specific functionalities.
The test cases contain 28 data sets with explanations regarding the desired solution. Every test has specific testing criteria that ensure the model works as desired with respect to specific functionalities. With some abuse of economic syntax, the calculations underlying each case use the notion of marginalized costs. Here, marginalized costs refer to the inclusion of investment costs into marginal costs. While this step is rarely ever plausible and hence likely counterintuitive to many economists, the specific design of test cases allows for this measure and makes for an easier illustration.
Consider the following simple example: A good is to be provided in a certain period. Ex-ante, there do not exist any production capacities, and all investments have a lifetime such that they remain active only for a single period. It is only rational to invest as much capacity as is needed in the next time period. Hence, investment costs may also be viewed as a special type of operational cost in this case. Considering unit cost, an investment of 5 units of money to provide 5 units of commodity comes down to operational costs of 1 unit of money per 1 unit of commodity. This aggregate of operational and marginalized investment costs is henceforth termed marginalized costs.
Every test case can be run for both, the optimization model formulation and as a complementarity problem. However, tests for the complementarity formulation are only run for variable values (such as quantities or prices). Tests for e.g. the objective value are not run due to a lack of the underlying function. The latter category of functional tests asserts other specific functionalities such as plotting or reporting of results works as desired.
Please see below for a short overview.
Test Case Overview
Test Case | Explanation |
---|---|
Test Case 1 | Tests inverse demand and cost data. |
Test Case 2 | Tests multiple years with weights and includes conversion costs. |
Test Case 3 | Tests exertion of market power with time step weights. |
Test Case 4 | Tests discounting. |
Test Case 5 | Tests storage and multiple time steps with more low demand weight. |
Test Case 6 | Tests storage and multiple time steps with more high demand weight. |
Test Case 7 | Tests same commodity from different origins. |
Test Case 8 | Tests multiple demand commodities from same flow commodity. |
Test Case 9 | Tests transport mechanisms including losses on arcs with time step weights. |
Test Case 10 | Tests storage losses including multiple time steps. |
Test Case 11 | Tests production capacity expansion, scaling of investment costs and asset lifetimes. |
Test Case 12 | Tests conversion capacity expansion, scaling of investment costs and asset lifetimes. |
Test Case 13 | Tests arc capacity expansion, scaling of investment costs and asset lifetimes. |
Test Case 14 | Tests storage capacity expansion, scaling of investment costs and asset lifetimes. |
Test Case 15 | Tests production capacity expansion limits. |
Test Case 16 | Tests storage capacity expansion limits. |
Test Case 17 | Tests trader sanctions. |
Test Case 18 | Tests market power exertion in foreign markets including arc capacity expansion. |
Test Case 19 | Tests restrictions by origin. |
Test Case 20 | Tests repurposing of conversion facilities, including repurposing factors. |
Test Case 21 | Tests repurposing of transportation arcs, including repurposing factors. |
Test Case 22 | Tests repurposing of storage facilities, including repurposing factors. |
Test Case 23 | Tests piece-wise linear operational cost for input procurement. |
Test Case 24 | Tests demand from multiple blocks. |
Test Case 25 | Tests input investment costs, availabilities and expansion limits. |
Test Case 26 | Tests commodity adjacency structures for both pipeline and shipping. |
Test Case 27 | Tests adjacency structures for arc capacity expansion. |
Test Case 28 | Tests adjacency structures for arc capacity repurposing. |
Functionality Tests Overview
Test Case | Explanation |
---|---|
Functionality Test 1 | Tests correct scaling of operational and investment costs. |
Functionality Test 2 | Tests input parameter exports. |
Functionality Test 3 | Tests that model outputs for the convex optimization problem implementation are stored correctly. |
Functionality Test 4 | Tests that model outputs for the complementarity problem implementation are stored correctly. |
Functionality Test 5 | Tests that map plotting functionality works as expected. |