Skip to content

Commit ef8081c

Browse files
committed
remove tests on UB sensor output on PF
Signed-off-by: Martijn Govers <Martijn.Govers@Alliander.com>
1 parent d2ca11c commit ef8081c

File tree

1 file changed

+0
-223
lines changed

1 file changed

+0
-223
lines changed

tests/cpp_integration_tests/test_main_model.cpp

Lines changed: 0 additions & 223 deletions
Original file line numberDiff line numberDiff line change
@@ -272,229 +272,6 @@ TEST_CASE("Test main model - power flow") {
272272
}
273273
}
274274

275-
TEST_CASE("Test main model - individual output (symmetric)") {
276-
State state;
277-
auto main_model = default_model(state);
278-
279-
auto const res = main_model.calculate<power_flow_t, symmetric_t>(
280-
get_default_options(symmetric, CalculationMethod::newton_raphson));
281-
282-
SUBCASE("SymVoltageSensor, sym output") { // TODO(mgovers): sensor output for powerflow calculations are not tested
283-
// elsewhere => validation case
284-
main_model.output_result<Node>(res, state.sym_node);
285-
main_model.output_result<SymVoltageSensor>(res, state.sym_voltage_sensor);
286-
287-
CHECK(state.sym_voltage_sensor[0].u_residual == doctest::Approx(1.01 * 10.0e3 - state.sym_node[0].u));
288-
CHECK(state.sym_voltage_sensor[1].u_residual == doctest::Approx(1.02 * 10.0e3 - state.sym_node[1].u));
289-
CHECK(state.sym_voltage_sensor[0].u_angle_residual == doctest::Approx(0.1 - state.sym_node[0].u_angle));
290-
CHECK(state.sym_voltage_sensor[1].u_angle_residual == doctest::Approx(0.2 - state.sym_node[1].u_angle));
291-
}
292-
293-
SUBCASE("SymPowerSensor, sym output") { // TODO(mgovers): sensor output for powerflow calculations are not tested
294-
// elsewhere => validation case
295-
main_model.output_result<Line>(res, state.sym_line);
296-
main_model.output_result<Link>(res, state.sym_link);
297-
main_model.output_result<Source>(res, state.sym_source);
298-
main_model.output_result<SymLoad>(res, state.sym_load_sym);
299-
main_model.output_result<AsymLoad>(res, state.sym_load_asym);
300-
main_model.output_result<Shunt>(res, state.sym_shunt);
301-
main_model.output_result<SymPowerSensor>(res, state.sym_power_sensor);
302-
303-
CHECK(state.sym_power_sensor[0].p_residual == doctest::Approx(1.1e6 - state.sym_line[0].p_from));
304-
CHECK(state.sym_power_sensor[0].q_residual == doctest::Approx(1.1e3 - state.sym_line[0].q_from));
305-
CHECK(state.sym_power_sensor[1].p_residual == doctest::Approx(1.3e6 - state.sym_source[0].p));
306-
CHECK(state.sym_power_sensor[1].q_residual == doctest::Approx(1.3e3 - state.sym_source[0].q));
307-
CHECK(state.sym_power_sensor[2].p_residual == doctest::Approx(1.4e6 - state.sym_source[0].p));
308-
CHECK(state.sym_power_sensor[2].q_residual == doctest::Approx(1.4e3 - state.sym_source[0].q));
309-
CHECK(state.sym_power_sensor[3].p_residual == doctest::Approx(1.5e6 - state.sym_shunt[0].p));
310-
CHECK(state.sym_power_sensor[3].q_residual == doctest::Approx(1.5e3 - state.sym_shunt[0].q));
311-
CHECK(state.sym_power_sensor[4].p_residual == doctest::Approx(1.6e6 - state.sym_load_sym[0].p));
312-
CHECK(state.sym_power_sensor[4].q_residual == doctest::Approx(1.6e3 - state.sym_load_sym[0].q));
313-
CHECK(state.sym_power_sensor[5].p_residual == doctest::Approx(1.7e6 - state.sym_load_asym[0].p));
314-
CHECK(state.sym_power_sensor[5].q_residual == doctest::Approx(1.7e3 - state.sym_load_asym[0].q));
315-
CHECK(state.sym_power_sensor[6].p_residual ==
316-
doctest::Approx(3.0e6 - (state.sym_source[1].p - state.sym_load_sym[0].p - state.sym_load_asym[0].p)));
317-
CHECK(state.sym_power_sensor[6].q_residual ==
318-
doctest::Approx(3.0e3 - (state.sym_source[1].q - state.sym_load_sym[0].q - state.sym_load_asym[0].q)));
319-
}
320-
321-
SUBCASE("AsymVoltageSensor, sym output") { // TODO(mgovers): sensor output for powerflow calculations are not tested
322-
// elsewhere => validation case
323-
main_model.output_result<Node>(res, state.sym_node);
324-
main_model.output_result<AsymVoltageSensor>(res, state.asym_voltage_sensor_sym_output);
325-
326-
CHECK(state.asym_voltage_sensor_sym_output[0].u_residual == doctest::Approx(10.32e3 - state.sym_node[2].u));
327-
CHECK(state.asym_voltage_sensor_sym_output[0].u_angle_residual ==
328-
doctest::Approx(0.0 - state.sym_node[2].u_angle));
329-
}
330-
331-
SUBCASE("AsymPowerSensor, sym output") { // TODO(mgovers): sensor output for powerflow calculations are not tested
332-
// elsewhere => validation case
333-
main_model.output_result<Line>(res, state.sym_line);
334-
main_model.output_result<Link>(res, state.sym_link);
335-
main_model.output_result<Source>(res, state.sym_source);
336-
main_model.output_result<SymLoad>(res, state.sym_load_sym);
337-
main_model.output_result<AsymLoad>(res, state.sym_load_asym);
338-
main_model.output_result<Shunt>(res, state.sym_shunt);
339-
main_model.output_result<AsymPowerSensor>(res, state.asym_power_sensor_sym_output);
340-
341-
CHECK(state.asym_power_sensor_sym_output[0].p_residual ==
342-
doctest::Approx(3 * 2.12e6 - state.sym_line[0].p_from));
343-
CHECK(state.asym_power_sensor_sym_output[0].q_residual ==
344-
doctest::Approx(3 * 2.12e3 - state.sym_line[0].q_from));
345-
CHECK(state.asym_power_sensor_sym_output[1].p_residual == doctest::Approx(3 * 2.32e6 - state.sym_source[0].p));
346-
CHECK(state.asym_power_sensor_sym_output[1].q_residual == doctest::Approx(3 * 2.32e3 - state.sym_source[0].q));
347-
CHECK(state.asym_power_sensor_sym_output[2].p_residual == doctest::Approx(3 * 2.42e6 - state.sym_source[0].p));
348-
CHECK(state.asym_power_sensor_sym_output[2].q_residual == doctest::Approx(3 * 2.42e3 - state.sym_source[0].q));
349-
CHECK(state.asym_power_sensor_sym_output[3].p_residual == doctest::Approx(3 * 2.52e6 - state.sym_shunt[0].p));
350-
CHECK(state.asym_power_sensor_sym_output[3].q_residual == doctest::Approx(3 * 2.52e3 - state.sym_shunt[0].q));
351-
CHECK(state.asym_power_sensor_sym_output[4].p_residual ==
352-
doctest::Approx(3 * 2.62e6 - state.sym_load_sym[0].p));
353-
CHECK(state.asym_power_sensor_sym_output[4].q_residual ==
354-
doctest::Approx(3 * 2.62e3 - state.sym_load_sym[0].q));
355-
CHECK(state.asym_power_sensor_sym_output[5].p_residual ==
356-
doctest::Approx(3 * 2.72e6 - state.sym_load_asym[0].p));
357-
CHECK(state.asym_power_sensor_sym_output[5].q_residual ==
358-
doctest::Approx(3 * 2.72e3 - state.sym_load_asym[0].q));
359-
CHECK(
360-
state.asym_power_sensor_sym_output[6].p_residual ==
361-
doctest::Approx(3 * 5.02e6 - (state.sym_source[1].p - state.sym_load_sym[0].p - state.sym_load_asym[0].p)));
362-
CHECK(
363-
state.asym_power_sensor_sym_output[6].q_residual ==
364-
doctest::Approx(3 * 5.02e3 - (state.sym_source[1].q - state.sym_load_sym[0].q - state.sym_load_asym[0].q)));
365-
}
366-
}
367-
368-
TEST_CASE("Test main model - individual output (asymmetric)") {
369-
State state;
370-
auto main_model = default_model(state);
371-
372-
auto const res = main_model.calculate<power_flow_t, asymmetric_t>(
373-
get_default_options(asymmetric, CalculationMethod::newton_raphson));
374-
375-
SUBCASE("AsymVoltageSensor, asym output") { // TODO(mgovers): sensor output for powerflow calculations are not
376-
// tested elsewhere => validation case
377-
main_model.output_result<Node>(res, state.asym_node);
378-
main_model.output_result<AsymVoltageSensor>(res, state.asym_voltage_sensor);
379-
380-
CHECK(state.asym_voltage_sensor[0].u_residual[0] ==
381-
doctest::Approx(1.031 / sqrt3 * 10.0e3 - state.asym_node[2].u[0]));
382-
CHECK(state.asym_voltage_sensor[0].u_residual[1] ==
383-
doctest::Approx(1.032 / sqrt3 * 10.0e3 - state.asym_node[2].u[1]));
384-
CHECK(state.asym_voltage_sensor[0].u_residual[2] ==
385-
doctest::Approx(1.033 / sqrt3 * 10.0e3 - state.asym_node[2].u[2]));
386-
CHECK(state.asym_voltage_sensor[0].u_angle_residual[0] == doctest::Approx(0.0 - state.asym_node[2].u_angle[0]));
387-
CHECK(state.asym_voltage_sensor[0].u_angle_residual[1] ==
388-
doctest::Approx(-deg_120 - state.asym_node[2].u_angle[1]));
389-
CHECK(state.asym_voltage_sensor[0].u_angle_residual[2] ==
390-
doctest::Approx(-deg_240 - state.asym_node[2].u_angle[2]));
391-
}
392-
393-
SUBCASE("SymVoltageSensor, asym output") { // TODO(mgovers): sensor output for powerflow calculations are not tested
394-
// elsewhere => validation case
395-
main_model.output_result<Node>(res, state.asym_node);
396-
main_model.output_result<SymVoltageSensor>(res, state.sym_voltage_sensor_asym_output);
397-
398-
CHECK(state.sym_voltage_sensor_asym_output[0].u_residual[0] ==
399-
doctest::Approx(10.1e3 / sqrt3 - state.asym_node[0].u[0]));
400-
CHECK(state.sym_voltage_sensor_asym_output[0].u_residual[1] ==
401-
doctest::Approx(10.1e3 / sqrt3 - state.asym_node[0].u[1]));
402-
CHECK(state.sym_voltage_sensor_asym_output[0].u_residual[2] ==
403-
doctest::Approx(10.1e3 / sqrt3 - state.asym_node[0].u[2]));
404-
CHECK(state.sym_voltage_sensor_asym_output[0].u_angle_residual[0] ==
405-
doctest::Approx(0.1 - state.asym_node[0].u_angle[0]));
406-
CHECK(state.sym_voltage_sensor_asym_output[0].u_angle_residual[1] ==
407-
doctest::Approx(0.1 - state.asym_node[0].u_angle[1]));
408-
CHECK(state.sym_voltage_sensor_asym_output[0].u_angle_residual[2] ==
409-
doctest::Approx(0.1 - state.asym_node[0].u_angle[2]));
410-
CHECK(state.sym_voltage_sensor_asym_output[1].u_residual[0] ==
411-
doctest::Approx(10.2e3 / sqrt3 - state.asym_node[1].u[0]));
412-
CHECK(state.sym_voltage_sensor_asym_output[1].u_residual[1] ==
413-
doctest::Approx(10.2e3 / sqrt3 - state.asym_node[1].u[1]));
414-
CHECK(state.sym_voltage_sensor_asym_output[1].u_residual[2] ==
415-
doctest::Approx(10.2e3 / sqrt3 - state.asym_node[1].u[2]));
416-
CHECK(state.sym_voltage_sensor_asym_output[1].u_angle_residual[0] ==
417-
doctest::Approx(0.2 - state.asym_node[1].u_angle[0]));
418-
CHECK(state.sym_voltage_sensor_asym_output[1].u_angle_residual[1] ==
419-
doctest::Approx(0.2 - state.asym_node[1].u_angle[1]));
420-
CHECK(state.sym_voltage_sensor_asym_output[1].u_angle_residual[2] ==
421-
doctest::Approx(0.2 - state.asym_node[1].u_angle[2]));
422-
}
423-
424-
// Note that only 1/3 of the values is being checked
425-
SUBCASE("AsymPowerSensor, asym output") { // TODO(mgovers): sensor output for powerflow calculations are not tested
426-
// elsewhere
427-
main_model.output_result<Line>(res, state.asym_line);
428-
main_model.output_result<Link>(res, state.asym_link);
429-
main_model.output_result<Source>(res, state.asym_source);
430-
main_model.output_result<SymLoad>(res, state.asym_load_sym);
431-
main_model.output_result<AsymLoad>(res, state.asym_load_asym);
432-
main_model.output_result<Shunt>(res, state.asym_shunt);
433-
main_model.output_result<AsymPowerSensor>(res, state.asym_power_sensor);
434-
435-
CHECK(state.asym_power_sensor[0].p_residual[0] == doctest::Approx(2.11e6 - state.asym_line[0].p_from[0]));
436-
CHECK(state.asym_power_sensor[0].q_residual[1] == doctest::Approx(2.12e3 - state.asym_line[0].q_from[1]));
437-
CHECK(state.asym_power_sensor[1].p_residual[1] == doctest::Approx(2.32e6 - state.asym_source[0].p[1]));
438-
CHECK(state.asym_power_sensor[1].q_residual[2] == doctest::Approx(2.33e3 - state.asym_source[0].q[2]));
439-
CHECK(state.asym_power_sensor[2].p_residual[0] == doctest::Approx(2.41e6 - state.asym_source[0].p[0]));
440-
CHECK(state.asym_power_sensor[2].q_residual[1] == doctest::Approx(2.42e3 - state.asym_source[0].q[1]));
441-
CHECK(state.asym_power_sensor[3].p_residual[2] == doctest::Approx(2.53e6 - state.asym_shunt[0].p[2]));
442-
CHECK(state.asym_power_sensor[3].q_residual[0] == doctest::Approx(2.51e3 - state.asym_shunt[0].q[0]));
443-
CHECK(state.asym_power_sensor[4].p_residual[1] == doctest::Approx(2.62e6 - state.asym_load_sym[0].p[1]));
444-
CHECK(state.asym_power_sensor[4].q_residual[2] == doctest::Approx(2.63e3 - state.asym_load_sym[0].q[2]));
445-
CHECK(state.asym_power_sensor[5].p_residual[0] == doctest::Approx(2.71e6 - state.asym_load_asym[0].p[0]));
446-
CHECK(state.asym_power_sensor[5].q_residual[1] == doctest::Approx(2.72e3 - state.asym_load_asym[0].q[1]));
447-
CHECK(state.asym_power_sensor[6].p_residual[0] ==
448-
doctest::Approx(
449-
5.01e6 - (state.asym_source[1].p[0] - state.asym_load_sym[0].p[0] - state.asym_load_asym[0].p[0])));
450-
CHECK(state.asym_power_sensor[6].q_residual[1] ==
451-
doctest::Approx(
452-
5.02e3 - (state.asym_source[1].q[1] - state.asym_load_sym[0].q[1] - state.asym_load_asym[0].q[1])));
453-
}
454-
455-
SUBCASE("SymPowerSensor, asym output") { // TODO(mgovers): sensor output for powerflow calculations are not tested
456-
// elsewhere
457-
main_model.output_result<Line>(res, state.asym_line);
458-
main_model.output_result<Link>(res, state.asym_link);
459-
main_model.output_result<Source>(res, state.asym_source);
460-
main_model.output_result<SymLoad>(res, state.asym_load_sym);
461-
main_model.output_result<AsymLoad>(res, state.asym_load_asym);
462-
main_model.output_result<Shunt>(res, state.asym_shunt);
463-
main_model.output_result<SymPowerSensor>(res, state.sym_power_sensor_asym_output);
464-
465-
CHECK(state.sym_power_sensor_asym_output[0].p_residual[0] ==
466-
doctest::Approx(1.1e6 / 3 - state.asym_line[0].p_from[0]));
467-
CHECK(state.sym_power_sensor_asym_output[0].q_residual[1] ==
468-
doctest::Approx(1.1e3 / 3 - state.asym_line[0].q_from[1]));
469-
CHECK(state.sym_power_sensor_asym_output[1].p_residual[1] ==
470-
doctest::Approx(1.3e6 / 3 - state.asym_source[0].p[1]));
471-
CHECK(state.sym_power_sensor_asym_output[1].q_residual[2] ==
472-
doctest::Approx(1.3e3 / 3 - state.asym_source[0].q[2]));
473-
CHECK(state.sym_power_sensor_asym_output[2].p_residual[0] ==
474-
doctest::Approx(1.4e6 / 3 - state.asym_source[0].p[0]));
475-
CHECK(state.sym_power_sensor_asym_output[2].q_residual[1] ==
476-
doctest::Approx(1.4e3 / 3 - state.asym_source[0].q[1]));
477-
CHECK(state.sym_power_sensor_asym_output[3].p_residual[2] ==
478-
doctest::Approx(1.5e6 / 3 - state.asym_shunt[0].p[2]));
479-
CHECK(state.sym_power_sensor_asym_output[3].q_residual[0] ==
480-
doctest::Approx(1.5e3 / 3 - state.asym_shunt[0].q[0]));
481-
CHECK(state.sym_power_sensor_asym_output[4].p_residual[1] ==
482-
doctest::Approx(1.6e6 / 3 - state.asym_load_sym[0].p[1]));
483-
CHECK(state.sym_power_sensor_asym_output[4].q_residual[2] ==
484-
doctest::Approx(1.6e3 / 3 - state.asym_load_sym[0].q[2]));
485-
CHECK(state.sym_power_sensor_asym_output[5].p_residual[0] ==
486-
doctest::Approx(1.7e6 / 3 - state.asym_load_asym[0].p[0]));
487-
CHECK(state.sym_power_sensor_asym_output[5].q_residual[1] ==
488-
doctest::Approx(1.7e3 / 3 - state.asym_load_asym[0].q[1]));
489-
CHECK(state.sym_power_sensor_asym_output[6].p_residual[0] ==
490-
doctest::Approx(3.0e6 / 3 - (state.asym_source[1].p[0] - state.asym_load_sym[0].p[0] -
491-
state.asym_load_asym[0].p[0])));
492-
CHECK(state.sym_power_sensor_asym_output[6].q_residual[1] ==
493-
doctest::Approx(3.0e3 / 3 - (state.asym_source[1].q[1] - state.asym_load_sym[0].q[1] -
494-
state.asym_load_asym[0].q[1])));
495-
}
496-
}
497-
498275
TEST_CASE_TEMPLATE("Test main model - unknown id", settings, regular_update,
499276
cached_update) { // TODO(mgovers): we need this test
500277
State const state;

0 commit comments

Comments
 (0)