diff --git a/CMakeLists.txt b/CMakeLists.txt index 711b87706f..38a45263a7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,14 @@ endif() # add C library add_subdirectory("power_grid_model_c") +# fuzz harnesses (opt-in). Kept independent of PGM_ENABLE_DEV_BUILD so building +# a harness only needs the C API target above — it does not pull in doctest or +# the rest of the test tree. Defaults to the AFL++ engine; see tests/fuzzer. +option(PGM_ENABLE_FUZZER "Build fuzz harnesses (AFL++ by default; see tests/fuzzer)" OFF) +if(PGM_ENABLE_FUZZER) + add_subdirectory("tests/fuzzer") +endif() + # dev build if(${PGM_ENABLE_DEV_BUILD}) include(CTest) diff --git a/tests/fuzzer/CMakeLists.txt b/tests/fuzzer/CMakeLists.txt new file mode 100644 index 0000000000..3b4179e80c --- /dev/null +++ b/tests/fuzzer/CMakeLists.txt @@ -0,0 +1,60 @@ +# SPDX-FileCopyrightText: Contributors to the Power Grid Model project +# +# SPDX-License-Identifier: MPL-2.0 + +# Fuzz harnesses for the Power Grid Model C API. +# +# These targets are only configured when PGM_ENABLE_FUZZER=ON. The default +# fuzzing engine is AFL++ (build with the afl-clang-fast toolchain); libFuzzer +# is also supported via -DPGM_FUZZER_ENGINE=libfuzzer. + +set(PGM_FUZZER_ENGINE "afl" CACHE STRING + "Fuzzing engine for the harnesses: afl (default) or libfuzzer") +set_property(CACHE PGM_FUZZER_ENGINE PROPERTY STRINGS afl libfuzzer) + +add_executable(pgm_fuzz_deserializer_json harness_deserializer_json.c) + +# power_grid_model_c is defined as SHARED and exports its public include dir, +# so linking against it is enough to resolve . +target_link_libraries(pgm_fuzz_deserializer_json PRIVATE power_grid_model_c) + +set_target_properties(pgm_fuzz_deserializer_json PROPERTIES LINKER_LANGUAGE CXX) + +if(PGM_FUZZER_ENGINE STREQUAL "afl") + # AFL++: instrumentation comes from the compiler itself, so this requires + # configuring with the AFL++ toolchain, e.g. + # -DCMAKE_C_COMPILER=afl-clang-fast -DCMAKE_CXX_COMPILER=afl-clang-fast++ + if(NOT CMAKE_C_COMPILER MATCHES "afl-clang") + message(FATAL_ERROR + "PGM_FUZZER_ENGINE=afl requires the AFL++ compiler. Configure with " + "-DCMAKE_C_COMPILER=afl-clang-fast -DCMAKE_CXX_COMPILER=afl-clang-fast++.") + endif() + + # aflpp_driver supplies an AFL fork-server main() for LLVMFuzzerTestOneInput + # harnesses; it ships with AFL++ as libAFLDriver.a. Override the location + # with -DPGM_AFL_DRIVER=/path/to/libAFLDriver.a or by setting AFL_PATH. + find_library(PGM_AFL_DRIVER + NAMES AFLDriver + PATHS /usr/local/lib/afl /usr/lib/afl ENV AFL_PATH + PATH_SUFFIXES lib afl "") + if(NOT PGM_AFL_DRIVER) + message(FATAL_ERROR + "Could not find libAFLDriver.a (AFL++ aflpp_driver). Set AFL_PATH or " + "pass -DPGM_AFL_DRIVER=/path/to/libAFLDriver.a.") + endif() + target_link_libraries(pgm_fuzz_deserializer_json PRIVATE "${PGM_AFL_DRIVER}") + +elseif(PGM_FUZZER_ENGINE STREQUAL "libfuzzer") + if(NOT CMAKE_C_COMPILER_ID MATCHES "Clang") + message(FATAL_ERROR + "PGM_FUZZER_ENGINE=libfuzzer requires a Clang toolchain " + "(-fsanitize=fuzzer).") + endif() + # Coverage instrumentation + the libFuzzer runtime (provides main()). + target_compile_options(pgm_fuzz_deserializer_json PRIVATE -fsanitize=fuzzer-no-link) + target_link_options(pgm_fuzz_deserializer_json PRIVATE -fsanitize=fuzzer) + +else() + message(FATAL_ERROR + "Unknown PGM_FUZZER_ENGINE '${PGM_FUZZER_ENGINE}' (use afl or libfuzzer).") +endif() diff --git a/tests/fuzzer/README.md b/tests/fuzzer/README.md new file mode 100644 index 0000000000..30bf01abc9 --- /dev/null +++ b/tests/fuzzer/README.md @@ -0,0 +1,65 @@ + + +# Fuzz harnesses + +Coverage-guided fuzz harnesses for the Power Grid Model C API. They exercise the +untrusted-input entry points of the library and run under **AFL++** by default; +libFuzzer is also supported (both drive the same harness sources). + +| Harness | Entry point | What it drives | +|---------|-------------|----------------| +| `harness_deserializer_json.c` | `PGM_create_deserializer_from_binary_buffer(..., PGM_json)` | JSON deserialization → dataset inspection → buffer alloc/parse → buffer get/set round-trips → `PGM_create_model` → symmetric / asymmetric power flow + short-circuit `PGM_calculate` | + +Supporting material: + +- `corpus_json/` — seed corpus (valid grids, edge cases, and malformed + documents) for `harness_deserializer_json`. +- `pgm.dict` — AFL++/libFuzzer dictionary of the PGM JSON envelope keys, + component names, attribute names, and common numeric literals. + +## Building and running with AFL++ (default) + +Requires the AFL++ toolchain (`afl-clang-fast` / `afl-clang-fast++`), which +instruments both the harness and the C API library it links against. + +```bash +export AFL_USE_ASAN=1 # optional: also build with AddressSanitizer +cmake -S . -B build -G Ninja \ + -DCMAKE_C_COMPILER=afl-clang-fast -DCMAKE_CXX_COMPILER=afl-clang-fast++ \ + -DPGM_ENABLE_FUZZER=ON +cmake --build build --target pgm_fuzz_deserializer_json + +afl-fuzz -i tests/fuzzer/corpus_json -o fuzz_out \ + -x tests/fuzzer/pgm.dict -- ./build/bin/pgm_fuzz_deserializer_json @@ +``` + +If `libAFLDriver.a` is not on a standard path, point the build at it with +`-DPGM_AFL_DRIVER=/path/to/libAFLDriver.a` or by exporting `AFL_PATH`. + +## Building and running with libFuzzer (alternative) + +Requires a Clang toolchain (this path uses `-fsanitize=fuzzer`). + +```bash +cmake -S . -B build-libfuzzer -G Ninja \ + -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ + -DPGM_ENABLE_FUZZER=ON -DPGM_FUZZER_ENGINE=libfuzzer \ + -DCMAKE_C_FLAGS="-fsanitize=address,undefined" \ + -DCMAKE_CXX_FLAGS="-fsanitize=address,undefined" +cmake --build build-libfuzzer --target pgm_fuzz_deserializer_json + +./build-libfuzzer/bin/pgm_fuzz_deserializer_json \ + -dict=tests/fuzzer/pgm.dict tests/fuzzer/corpus_json +``` + +The harnesses expose the standard libFuzzer entry points +(`LLVMFuzzerTestOneInput` / `LLVMFuzzerInitialize`), which is what lets AFL++ +(via `aflpp_driver`) and libFuzzer share the same sources with no changes. The +[OSS-Fuzz](https://github.com/google/oss-fuzz) `power-grid-model` project +compiles these same sources against `$LIB_FUZZING_ENGINE` — building for `afl` +and `libfuzzer` — and ships `corpus_json/` and `pgm.dict` as the seed corpus and +dictionary. diff --git a/tests/fuzzer/corpus_json/01_minimal_node_source.json b/tests/fuzzer/corpus_json/01_minimal_node_source.json new file mode 100644 index 0000000000..afa3584c28 --- /dev/null +++ b/tests/fuzzer/corpus_json/01_minimal_node_source.json @@ -0,0 +1,26 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/02_minimal_with_load.json b/tests/fuzzer/corpus_json/02_minimal_with_load.json new file mode 100644 index 0000000000..da86c06995 --- /dev/null +++ b/tests/fuzzer/corpus_json/02_minimal_with_load.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 5000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/03_load_type_const_current.json b/tests/fuzzer/corpus_json/03_load_type_const_current.json new file mode 100644 index 0000000000..a44280036f --- /dev/null +++ b/tests/fuzzer/corpus_json/03_load_type_const_current.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 1, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/03_load_type_const_impedance.json b/tests/fuzzer/corpus_json/03_load_type_const_impedance.json new file mode 100644 index 0000000000..ab953eec32 --- /dev/null +++ b/tests/fuzzer/corpus_json/03_load_type_const_impedance.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 2, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/03_load_type_const_power.json b/tests/fuzzer/corpus_json/03_load_type_const_power.json new file mode 100644 index 0000000000..434b09f525 --- /dev/null +++ b/tests/fuzzer/corpus_json/03_load_type_const_power.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/04_voltage_ehv_380k.json b/tests/fuzzer/corpus_json/04_voltage_ehv_380k.json new file mode 100644 index 0000000000..e79318530c --- /dev/null +++ b/tests/fuzzer/corpus_json/04_voltage_ehv_380k.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 380000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/04_voltage_hv_110k.json b/tests/fuzzer/corpus_json/04_voltage_hv_110k.json new file mode 100644 index 0000000000..3adcfe83cc --- /dev/null +++ b/tests/fuzzer/corpus_json/04_voltage_hv_110k.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/04_voltage_lv_230.json b/tests/fuzzer/corpus_json/04_voltage_lv_230.json new file mode 100644 index 0000000000..4c966cfcfd --- /dev/null +++ b/tests/fuzzer/corpus_json/04_voltage_lv_230.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 230.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/04_voltage_mv_10k.json b/tests/fuzzer/corpus_json/04_voltage_mv_10k.json new file mode 100644 index 0000000000..b2293a3334 --- /dev/null +++ b/tests/fuzzer/corpus_json/04_voltage_mv_10k.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/05_radial_chain_10nodes.json b/tests/fuzzer/corpus_json/05_radial_chain_10nodes.json new file mode 100644 index 0000000000..1ef8f7a5fb --- /dev/null +++ b/tests/fuzzer/corpus_json/05_radial_chain_10nodes.json @@ -0,0 +1,282 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + }, + { + "id": 5, + "u_rated": 10000.0 + }, + { + "id": 6, + "u_rated": 10000.0 + }, + { + "id": 7, + "u_rated": 10000.0 + }, + { + "id": 8, + "u_rated": 10000.0 + }, + { + "id": 9, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 10, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 10000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 11, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 12, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 13, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 14, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 15, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 16, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 17, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 18, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 19, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ], + "sym_load": [ + { + "id": 20, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 21, + "node": 2, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 22, + "node": 3, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 23, + "node": 4, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 24, + "node": 5, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 25, + "node": 6, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 26, + "node": 7, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 27, + "node": 8, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 28, + "node": 9, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/05_radial_chain_20nodes.json b/tests/fuzzer/corpus_json/05_radial_chain_20nodes.json new file mode 100644 index 0000000000..24b6cec558 --- /dev/null +++ b/tests/fuzzer/corpus_json/05_radial_chain_20nodes.json @@ -0,0 +1,562 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + }, + { + "id": 5, + "u_rated": 10000.0 + }, + { + "id": 6, + "u_rated": 10000.0 + }, + { + "id": 7, + "u_rated": 10000.0 + }, + { + "id": 8, + "u_rated": 10000.0 + }, + { + "id": 9, + "u_rated": 10000.0 + }, + { + "id": 10, + "u_rated": 10000.0 + }, + { + "id": 11, + "u_rated": 10000.0 + }, + { + "id": 12, + "u_rated": 10000.0 + }, + { + "id": 13, + "u_rated": 10000.0 + }, + { + "id": 14, + "u_rated": 10000.0 + }, + { + "id": 15, + "u_rated": 10000.0 + }, + { + "id": 16, + "u_rated": 10000.0 + }, + { + "id": 17, + "u_rated": 10000.0 + }, + { + "id": 18, + "u_rated": 10000.0 + }, + { + "id": 19, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 20, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 10000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 21, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 22, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 23, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 24, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 25, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 26, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 27, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 28, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 29, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 30, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 31, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 32, + "from_node": 11, + "to_node": 12, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 33, + "from_node": 12, + "to_node": 13, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 34, + "from_node": 13, + "to_node": 14, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 35, + "from_node": 14, + "to_node": 15, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 36, + "from_node": 15, + "to_node": 16, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 37, + "from_node": 16, + "to_node": 17, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 38, + "from_node": 17, + "to_node": 18, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 39, + "from_node": 18, + "to_node": 19, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ], + "sym_load": [ + { + "id": 40, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 41, + "node": 2, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 42, + "node": 3, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 43, + "node": 4, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 44, + "node": 5, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 45, + "node": 6, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 46, + "node": 7, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 47, + "node": 8, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 48, + "node": 9, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 49, + "node": 10, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 50, + "node": 11, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 51, + "node": 12, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 52, + "node": 13, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 53, + "node": 14, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 54, + "node": 15, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 55, + "node": 16, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 56, + "node": 17, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 57, + "node": 18, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 58, + "node": 19, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/05_radial_chain_3nodes.json b/tests/fuzzer/corpus_json/05_radial_chain_3nodes.json new file mode 100644 index 0000000000..3c8684108b --- /dev/null +++ b/tests/fuzzer/corpus_json/05_radial_chain_3nodes.json @@ -0,0 +1,86 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 3, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 10000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 4, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 5, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ], + "sym_load": [ + { + "id": 6, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 7, + "node": 2, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/05_radial_chain_5nodes.json b/tests/fuzzer/corpus_json/05_radial_chain_5nodes.json new file mode 100644 index 0000000000..cf09f6976f --- /dev/null +++ b/tests/fuzzer/corpus_json/05_radial_chain_5nodes.json @@ -0,0 +1,142 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 5, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 10000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 6, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 7, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 8, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 9, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ], + "sym_load": [ + { + "id": 10, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 11, + "node": 2, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 12, + "node": 3, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 13, + "node": 4, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/06_star_10loads.json b/tests/fuzzer/corpus_json/06_star_10loads.json new file mode 100644 index 0000000000..6a802b0462 --- /dev/null +++ b/tests/fuzzer/corpus_json/06_star_10loads.json @@ -0,0 +1,108 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 5000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 3, + "node": 0, + "status": 1, + "type": 1, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 4, + "node": 0, + "status": 1, + "type": 2, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 5, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 6, + "node": 0, + "status": 1, + "type": 1, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 7, + "node": 0, + "status": 1, + "type": 2, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 8, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 9, + "node": 0, + "status": 1, + "type": 1, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 10, + "node": 0, + "status": 1, + "type": 2, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 11, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/06_star_2loads.json b/tests/fuzzer/corpus_json/06_star_2loads.json new file mode 100644 index 0000000000..0d126bfecf --- /dev/null +++ b/tests/fuzzer/corpus_json/06_star_2loads.json @@ -0,0 +1,44 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 5000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 3, + "node": 0, + "status": 1, + "type": 1, + "p_specified": 1000.0, + "q_specified": 500.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/06_star_5loads.json b/tests/fuzzer/corpus_json/06_star_5loads.json new file mode 100644 index 0000000000..c2bd8c81ea --- /dev/null +++ b/tests/fuzzer/corpus_json/06_star_5loads.json @@ -0,0 +1,68 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 5000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 3, + "node": 0, + "status": 1, + "type": 1, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 4, + "node": 0, + "status": 1, + "type": 2, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 5, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 500.0 + }, + { + "id": 6, + "node": 0, + "status": 1, + "type": 1, + "p_specified": 1000.0, + "q_specified": 500.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/07_transformer_hv_mv.json b/tests/fuzzer/corpus_json/07_transformer_hv_mv.json new file mode 100644 index 0000000000..affdeae820 --- /dev/null +++ b/tests/fuzzer/corpus_json/07_transformer_hv_mv.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 500000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 110000.0, + "u2": 10000.0, + "sn": 40000000.0, + "uk": 0.12, + "pk": 100000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 1, + "clock": 11, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 5000000.0, + "q_specified": 2000000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/07_transformer_mv_lv.json b/tests/fuzzer/corpus_json/07_transformer_mv_lv.json new file mode 100644 index 0000000000..b831602091 --- /dev/null +++ b/tests/fuzzer/corpus_json/07_transformer_mv_lv.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 50000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 1, + "clock": 5, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 20000.0, + "q_specified": 10000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/07_transformer_tap_max.json b/tests/fuzzer/corpus_json/07_transformer_tap_max.json new file mode 100644 index 0000000000..2a82def1a4 --- /dev/null +++ b/tests/fuzzer/corpus_json/07_transformer_tap_max.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 50000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 1, + "clock": 5, + "tap_side": 0, + "tap_pos": 10, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/07_transformer_tap_min.json b/tests/fuzzer/corpus_json/07_transformer_tap_min.json new file mode 100644 index 0000000000..a42df6251e --- /dev/null +++ b/tests/fuzzer/corpus_json/07_transformer_tap_min.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 50000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 1, + "clock": 5, + "tap_side": 0, + "tap_pos": -10, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/07_transformer_tap_nom.json b/tests/fuzzer/corpus_json/07_transformer_tap_nom.json new file mode 100644 index 0000000000..6005e97177 --- /dev/null +++ b/tests/fuzzer/corpus_json/07_transformer_tap_nom.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 50000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 1, + "clock": 5, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/08_winding_from0_to0_clock0.json b/tests/fuzzer/corpus_json/08_winding_from0_to0_clock0.json new file mode 100644 index 0000000000..eb2c86e57d --- /dev/null +++ b/tests/fuzzer/corpus_json/08_winding_from0_to0_clock0.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 0, + "winding_to": 0, + "clock": 0, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/08_winding_from1_to1_clock6.json b/tests/fuzzer/corpus_json/08_winding_from1_to1_clock6.json new file mode 100644 index 0000000000..43e698e6a3 --- /dev/null +++ b/tests/fuzzer/corpus_json/08_winding_from1_to1_clock6.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 1, + "winding_to": 1, + "clock": 6, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/08_winding_from1_to2_clock11.json b/tests/fuzzer/corpus_json/08_winding_from1_to2_clock11.json new file mode 100644 index 0000000000..e392c0a4eb --- /dev/null +++ b/tests/fuzzer/corpus_json/08_winding_from1_to2_clock11.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 1, + "winding_to": 2, + "clock": 11, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/08_winding_from2_to1_clock5.json b/tests/fuzzer/corpus_json/08_winding_from2_to1_clock5.json new file mode 100644 index 0000000000..131e4bf7ab --- /dev/null +++ b/tests/fuzzer/corpus_json/08_winding_from2_to1_clock5.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 1, + "clock": 5, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/08_winding_from2_to2_clock0.json b/tests/fuzzer/corpus_json/08_winding_from2_to2_clock0.json new file mode 100644 index 0000000000..e54ec49c61 --- /dev/null +++ b/tests/fuzzer/corpus_json/08_winding_from2_to2_clock0.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 2, + "clock": 0, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/09_shunt_capacitor.json b/tests/fuzzer/corpus_json/09_shunt_capacitor.json new file mode 100644 index 0000000000..bd89ed68b3 --- /dev/null +++ b/tests/fuzzer/corpus_json/09_shunt_capacitor.json @@ -0,0 +1,37 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "shunt": [ + { + "id": 2, + "node": 0, + "status": 1, + "g1": 0.0, + "b1": 0.0001, + "g0": 0.0, + "b0": 0.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/09_shunt_multiple.json b/tests/fuzzer/corpus_json/09_shunt_multiple.json new file mode 100644 index 0000000000..44d1815b2c --- /dev/null +++ b/tests/fuzzer/corpus_json/09_shunt_multiple.json @@ -0,0 +1,56 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "shunt": [ + { + "id": 2, + "node": 0, + "status": 1, + "g1": 0.0001, + "b1": 0.0001, + "g0": 0.0001, + "b0": 0.0001 + }, + { + "id": 3, + "node": 0, + "status": 1, + "g1": 1e-05, + "b1": 0.0002, + "g0": 0.0001, + "b0": 0.0001 + } + ], + "sym_load": [ + { + "id": 4, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/09_shunt_reactor.json b/tests/fuzzer/corpus_json/09_shunt_reactor.json new file mode 100644 index 0000000000..b29a744263 --- /dev/null +++ b/tests/fuzzer/corpus_json/09_shunt_reactor.json @@ -0,0 +1,37 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "shunt": [ + { + "id": 2, + "node": 0, + "status": 1, + "g1": 0.0, + "b1": -0.0001, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/10_asym_gen.json b/tests/fuzzer/corpus_json/10_asym_gen.json new file mode 100644 index 0000000000..5b1956fe05 --- /dev/null +++ b/tests/fuzzer/corpus_json/10_asym_gen.json @@ -0,0 +1,44 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "asym_gen": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": [ + 1666.6666666666667, + 1666.6666666666667, + 1666.6666666666667 + ], + "q_specified": [ + 0.0, + 0.0, + 0.0 + ] + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/10_asym_load.json b/tests/fuzzer/corpus_json/10_asym_load.json new file mode 100644 index 0000000000..ea4a8105da --- /dev/null +++ b/tests/fuzzer/corpus_json/10_asym_load.json @@ -0,0 +1,44 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "asym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": [ + 3333.3333333333335, + 3333.3333333333335, + 3333.3333333333335 + ], + "q_specified": [ + 1666.6666666666667, + 1666.6666666666667, + 1666.6666666666667 + ] + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/10_asym_load_gen_mix.json b/tests/fuzzer/corpus_json/10_asym_load_gen_mix.json new file mode 100644 index 0000000000..03297cd0cf --- /dev/null +++ b/tests/fuzzer/corpus_json/10_asym_load_gen_mix.json @@ -0,0 +1,62 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "asym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": [ + 3333.3333333333335, + 3333.3333333333335, + 3333.3333333333335 + ], + "q_specified": [ + 1666.6666666666667, + 1666.6666666666667, + 1666.6666666666667 + ] + } + ], + "asym_gen": [ + { + "id": 3, + "node": 0, + "status": 1, + "type": 0, + "p_specified": [ + 1000.0, + 2000.0, + 3000.0 + ], + "q_specified": [ + 0.0, + 0.0, + 0.0 + ] + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/11_sym_gen.json b/tests/fuzzer/corpus_json/11_sym_gen.json new file mode 100644 index 0000000000..ae05b27ae8 --- /dev/null +++ b/tests/fuzzer/corpus_json/11_sym_gen.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_gen": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 2000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/11_sym_gen_negative_q.json b/tests/fuzzer/corpus_json/11_sym_gen_negative_q.json new file mode 100644 index 0000000000..544c3de0d6 --- /dev/null +++ b/tests/fuzzer/corpus_json/11_sym_gen_negative_q.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_gen": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 50000.0, + "q_specified": -10000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/12_dual_feed.json b/tests/fuzzer/corpus_json/12_dual_feed.json new file mode 100644 index 0000000000..b48f48eeb3 --- /dev/null +++ b/tests/fuzzer/corpus_json/12_dual_feed.json @@ -0,0 +1,88 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 3, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 100000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + }, + { + "id": 4, + "node": 2, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 80000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 5, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 6, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ], + "sym_load": [ + { + "id": 7, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 5000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/12_ring_network.json b/tests/fuzzer/corpus_json/12_ring_network.json new file mode 100644 index 0000000000..8580c5204a --- /dev/null +++ b/tests/fuzzer/corpus_json/12_ring_network.json @@ -0,0 +1,138 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 10, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 200000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 11, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 12, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 13, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 14, + "from_node": 3, + "to_node": 0, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ], + "sym_load": [ + { + "id": 20, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 2000.0, + "q_specified": 5000.0 + }, + { + "id": 21, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 2000.0, + "q_specified": 5000.0 + }, + { + "id": 22, + "node": 2, + "status": 1, + "type": 0, + "p_specified": 2000.0, + "q_specified": 5000.0 + }, + { + "id": 23, + "node": 3, + "status": 1, + "type": 0, + "p_specified": 2000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/13_open_line.json b/tests/fuzzer/corpus_json/13_open_line.json new file mode 100644 index 0000000000..c7e5229e28 --- /dev/null +++ b/tests/fuzzer/corpus_json/13_open_line.json @@ -0,0 +1,86 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 3, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 4, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + }, + { + "id": 5, + "from_node": 1, + "to_node": 2, + "from_status": 0, + "to_status": 0, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ], + "sym_load": [ + { + "id": 6, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + }, + { + "id": 7, + "node": 2, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/13_source_disconnected.json b/tests/fuzzer/corpus_json/13_source_disconnected.json new file mode 100644 index 0000000000..9d180cd739 --- /dev/null +++ b/tests/fuzzer/corpus_json/13_source_disconnected.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 0, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/14_inf_fields.json b/tests/fuzzer/corpus_json/14_inf_fields.json new file mode 100644 index 0000000000..8802e0b9a0 --- /dev/null +++ b/tests/fuzzer/corpus_json/14_inf_fields.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": Infinity, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": Infinity + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/14_nan_fields.json b/tests/fuzzer/corpus_json/14_nan_fields.json new file mode 100644 index 0000000000..35ee30feeb --- /dev/null +++ b/tests/fuzzer/corpus_json/14_nan_fields.json @@ -0,0 +1,24 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": NaN, + "sk": 1000000.0, + "rx_ratio": 0.1 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/14_neg_inf_fields.json b/tests/fuzzer/corpus_json/14_neg_inf_fields.json new file mode 100644 index 0000000000..24e2e89dd0 --- /dev/null +++ b/tests/fuzzer/corpus_json/14_neg_inf_fields.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": -Infinity, + "q_specified": -Infinity + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/14_negative_p_load.json b/tests/fuzzer/corpus_json/14_negative_p_load.json new file mode 100644 index 0000000000..ba50e87c04 --- /dev/null +++ b/tests/fuzzer/corpus_json/14_negative_p_load.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": -5000.0, + "q_specified": -2000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/14_very_large_impedance.json b/tests/fuzzer/corpus_json/14_very_large_impedance.json new file mode 100644 index 0000000000..ced32ad41f --- /dev/null +++ b/tests/fuzzer/corpus_json/14_very_large_impedance.json @@ -0,0 +1,58 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1000000000.0, + "x1": 1000000000.0, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/14_zero_impedance_line.json b/tests/fuzzer/corpus_json/14_zero_impedance_line.json new file mode 100644 index 0000000000..5ca7f1acff --- /dev/null +++ b/tests/fuzzer/corpus_json/14_zero_impedance_line.json @@ -0,0 +1,58 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.0, + "x1": 0.0, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.0, + "x0": 0.0, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/14_zero_u_rated.json b/tests/fuzzer/corpus_json/14_zero_u_rated.json new file mode 100644 index 0000000000..39b71be725 --- /dev/null +++ b/tests/fuzzer/corpus_json/14_zero_u_rated.json @@ -0,0 +1,26 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 0.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/16_batch_3scenarios.json b/tests/fuzzer/corpus_json/16_batch_3scenarios.json new file mode 100644 index 0000000000..c96be62668 --- /dev/null +++ b/tests/fuzzer/corpus_json/16_batch_3scenarios.json @@ -0,0 +1,62 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": true, + "attributes": {}, + "data": { + "node": [ + [ + { + "id": 0, + "u_rated": 10000.0 + } + ] + ], + "source": [ + [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + ], + "sym_load": [ + [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 1000.0, + "q_specified": 5000.0 + } + ], + [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 5000.0, + "q_specified": 5000.0 + } + ], + [ + { + "id": 2, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/16_batch_single_scenario.json b/tests/fuzzer/corpus_json/16_batch_single_scenario.json new file mode 100644 index 0000000000..149a9e4579 --- /dev/null +++ b/tests/fuzzer/corpus_json/16_batch_single_scenario.json @@ -0,0 +1,30 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": true, + "attributes": {}, + "data": { + "node": [ + [ + { + "id": 0, + "u_rated": 10000.0 + } + ] + ], + "source": [ + [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/17_duplicate_id.json b/tests/fuzzer/corpus_json/17_duplicate_id.json new file mode 100644 index 0000000000..df2ef92749 --- /dev/null +++ b/tests/fuzzer/corpus_json/17_duplicate_id.json @@ -0,0 +1,30 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/17_empty_data.json b/tests/fuzzer/corpus_json/17_empty_data.json new file mode 100644 index 0000000000..74dc09bbeb --- /dev/null +++ b/tests/fuzzer/corpus_json/17_empty_data.json @@ -0,0 +1,7 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": {} +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/17_empty_node_list.json b/tests/fuzzer/corpus_json/17_empty_node_list.json new file mode 100644 index 0000000000..47d6acc316 --- /dev/null +++ b/tests/fuzzer/corpus_json/17_empty_node_list.json @@ -0,0 +1,21 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/17_invalid_from_node.json b/tests/fuzzer/corpus_json/17_invalid_from_node.json new file mode 100644 index 0000000000..fec5866dc0 --- /dev/null +++ b/tests/fuzzer/corpus_json/17_invalid_from_node.json @@ -0,0 +1,48 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 3, + "from_node": 9999, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.1, + "x1": 0.1, + "c1": 1e-09, + "tan1": 0.0, + "r0": 0.1, + "x0": 0.1, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/17_invalid_node_ref.json b/tests/fuzzer/corpus_json/17_invalid_node_ref.json new file mode 100644 index 0000000000..aac5e26bf8 --- /dev/null +++ b/tests/fuzzer/corpus_json/17_invalid_node_ref.json @@ -0,0 +1,36 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + { + "id": 2, + "node": 9999, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/17_island_node.json b/tests/fuzzer/corpus_json/17_island_node.json new file mode 100644 index 0000000000..4e46d115b1 --- /dev/null +++ b/tests/fuzzer/corpus_json/17_island_node.json @@ -0,0 +1,30 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/17_missing_version.json b/tests/fuzzer/corpus_json/17_missing_version.json new file mode 100644 index 0000000000..4689b2379d --- /dev/null +++ b/tests/fuzzer/corpus_json/17_missing_version.json @@ -0,0 +1,25 @@ +{ + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/17_no_source.json b/tests/fuzzer/corpus_json/17_no_source.json new file mode 100644 index 0000000000..3550b887fa --- /dev/null +++ b/tests/fuzzer/corpus_json/17_no_source.json @@ -0,0 +1,24 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "sym_load": [ + { + "id": 1, + "node": 0, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/17_wrong_type.json b/tests/fuzzer/corpus_json/17_wrong_type.json new file mode 100644 index 0000000000..bcbac494a0 --- /dev/null +++ b/tests/fuzzer/corpus_json/17_wrong_type.json @@ -0,0 +1,14 @@ +{ + "version": "1.0", + "type": "update", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/18_extra_element_key.json b/tests/fuzzer/corpus_json/18_extra_element_key.json new file mode 100644 index 0000000000..6d8d8862a6 --- /dev/null +++ b/tests/fuzzer/corpus_json/18_extra_element_key.json @@ -0,0 +1,27 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0, + "extra_field": "hello" + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/18_extra_top_level_key.json b/tests/fuzzer/corpus_json/18_extra_top_level_key.json new file mode 100644 index 0000000000..e372b853a4 --- /dev/null +++ b/tests/fuzzer/corpus_json/18_extra_top_level_key.json @@ -0,0 +1,27 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + }, + "unknown_extra_key": 42 +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/18_unknown_component_type.json b/tests/fuzzer/corpus_json/18_unknown_component_type.json new file mode 100644 index 0000000000..a04110868c --- /dev/null +++ b/tests/fuzzer/corpus_json/18_unknown_component_type.json @@ -0,0 +1,33 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "flux_capacitor": [ + { + "id": 2, + "node": 0, + "jigawatts": 1.21 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/19_array_instead_of_map.json b/tests/fuzzer/corpus_json/19_array_instead_of_map.json new file mode 100644 index 0000000000..8f956cfdc2 --- /dev/null +++ b/tests/fuzzer/corpus_json/19_array_instead_of_map.json @@ -0,0 +1,26 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + [ + 0, + 10000.0 + ] + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/19_nested_object_field.json b/tests/fuzzer/corpus_json/19_nested_object_field.json new file mode 100644 index 0000000000..dba98335cb --- /dev/null +++ b/tests/fuzzer/corpus_json/19_nested_object_field.json @@ -0,0 +1,28 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": { + "nested": "value" + } + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/19_null_field.json b/tests/fuzzer/corpus_json/19_null_field.json new file mode 100644 index 0000000000..46635f0c99 --- /dev/null +++ b/tests/fuzzer/corpus_json/19_null_field.json @@ -0,0 +1,26 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": null + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/19_string_id.json b/tests/fuzzer/corpus_json/19_string_id.json new file mode 100644 index 0000000000..251d2730a5 --- /dev/null +++ b/tests/fuzzer/corpus_json/19_string_id.json @@ -0,0 +1,26 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": "abc", + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/20_bare_string.json b/tests/fuzzer/corpus_json/20_bare_string.json new file mode 100644 index 0000000000..84ed78b69b --- /dev/null +++ b/tests/fuzzer/corpus_json/20_bare_string.json @@ -0,0 +1 @@ +"hello" \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/20_data_not_object.json b/tests/fuzzer/corpus_json/20_data_not_object.json new file mode 100644 index 0000000000..a846783f4a --- /dev/null +++ b/tests/fuzzer/corpus_json/20_data_not_object.json @@ -0,0 +1 @@ +{"version": "1.0", "type": "input", "is_batch": false, "attributes": {}, "data": [1, 2, 3]} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/20_empty_array.json b/tests/fuzzer/corpus_json/20_empty_array.json new file mode 100644 index 0000000000..0637a088a0 --- /dev/null +++ b/tests/fuzzer/corpus_json/20_empty_array.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/20_empty_object.json b/tests/fuzzer/corpus_json/20_empty_object.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/tests/fuzzer/corpus_json/20_empty_object.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/20_empty_string.json b/tests/fuzzer/corpus_json/20_empty_string.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/fuzzer/corpus_json/20_just_data_key.json b/tests/fuzzer/corpus_json/20_just_data_key.json new file mode 100644 index 0000000000..9d2cb1b61e --- /dev/null +++ b/tests/fuzzer/corpus_json/20_just_data_key.json @@ -0,0 +1 @@ +{"data": {}} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/20_null_doc.json b/tests/fuzzer/corpus_json/20_null_doc.json new file mode 100644 index 0000000000..ec747fa47d --- /dev/null +++ b/tests/fuzzer/corpus_json/20_null_doc.json @@ -0,0 +1 @@ +null \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/20_number.json b/tests/fuzzer/corpus_json/20_number.json new file mode 100644 index 0000000000..f70d7bba4a --- /dev/null +++ b/tests/fuzzer/corpus_json/20_number.json @@ -0,0 +1 @@ +42 \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/20_wrong_version.json b/tests/fuzzer/corpus_json/20_wrong_version.json new file mode 100644 index 0000000000..d56e747588 --- /dev/null +++ b/tests/fuzzer/corpus_json/20_wrong_version.json @@ -0,0 +1 @@ +{"version": "9.9", "type": "input", "is_batch": false, "attributes": {}, "data": {"node": [{"id": 0, "u_rated": 10000.0}], "source": [{"id": 1, "node": 0, "status": 1, "u_ref": 1.0, "u_ref_angle": 0.0, "sk": 1000000.0, "rx_ratio": 0.1, "z01_ratio": 1.0}]}} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_000.json b/tests/fuzzer/corpus_json/21_random_000.json new file mode 100644 index 0000000000..2c869859c9 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_000.json @@ -0,0 +1,366 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + }, + { + "id": 1, + "u_rated": 110000.0 + }, + { + "id": 2, + "u_rated": 110000.0 + }, + { + "id": 3, + "u_rated": 110000.0 + }, + { + "id": 4, + "u_rated": 110000.0 + }, + { + "id": 5, + "u_rated": 110000.0 + }, + { + "id": 6, + "u_rated": 110000.0 + }, + { + "id": 7, + "u_rated": 110000.0 + }, + { + "id": 8, + "u_rated": 110000.0 + }, + { + "id": 9, + "u_rated": 110000.0 + }, + { + "id": 10, + "u_rated": 110000.0 + }, + { + "id": 11, + "u_rated": 110000.0 + }, + { + "id": 12, + "u_rated": 110000.0 + }, + { + "id": 13, + "u_rated": 110000.0 + }, + { + "id": 14, + "u_rated": 110000.0 + } + ], + "source": [ + { + "id": 15, + "node": 0, + "status": 1, + "u_ref": 0.9841143161661691, + "u_ref_angle": 0.0, + "sk": 757978607.5000085, + "rx_ratio": 0.12945837514648167, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 16, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 2.0246706872520717, + "x1": 3.918992945173863, + "c1": 3.0331272607892745e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 481.8309846108323 + }, + { + "id": 17, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 2.916910197275156, + "x1": 4.540564425976676, + "c1": 5.046868558173903e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 289.0194659557068 + }, + { + "id": 18, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 3.7790210207861197, + "x1": 3.0918449833766584, + "c1": 2.5050634136244053e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 910.6487934085577 + }, + { + "id": 19, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.913927380188266, + "x1": 4.051086179982947, + "c1": 9.021659504395826e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 317.0460936261393 + }, + { + "id": 20, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 3.649158741300643, + "x1": 4.494191439839968, + "c1": 6.839839319154412e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 477.4212882981862 + }, + { + "id": 21, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 0.503506040341829, + "x1": 2.1708591772689183, + "c1": 6.108869734438016e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 913.8809427055193 + }, + { + "id": 22, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 4.833031838853794, + "x1": 2.385048882763585, + "c1": 8.6530992777164e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 267.8873872880398 + }, + { + "id": 23, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 4.025139135065111, + "x1": 2.7434965191779463, + "c1": 1.4041700164018955e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 722.5076395399146 + }, + { + "id": 24, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 1.9941177111213437, + "x1": 4.124224885741165, + "c1": 6.681532012318508e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 11.131391121283995 + }, + { + "id": 25, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 2.467889332326623, + "x1": 4.338013877463904, + "c1": 2.43910876887132e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 331.9523191199162 + }, + { + "id": 26, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 4.352356160543273, + "x1": 0.9553354575119527, + "c1": 5.675107406206718e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 246.22976932906798 + }, + { + "id": 27, + "from_node": 11, + "to_node": 12, + "from_status": 1, + "to_status": 1, + "r1": 4.837701251450717, + "x1": 4.01589734639935, + "c1": 4.479695714355704e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 89.64136036701005 + }, + { + "id": 28, + "from_node": 12, + "to_node": 13, + "from_status": 1, + "to_status": 1, + "r1": 1.6002730233627287, + "x1": 2.53970321260287, + "c1": 9.328338242269068e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 117.96726747179264 + }, + { + "id": 29, + "from_node": 13, + "to_node": 14, + "from_status": 1, + "to_status": 1, + "r1": 2.756336230452756, + "x1": 3.532807049334448, + "c1": 5.474409113284237e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 816.3221946584226 + } + ], + "sym_load": [ + { + "id": 30, + "node": 1, + "status": 1, + "type": 2, + "p_specified": 9446.021299983637, + "q_specified": -4246.85471579596 + }, + { + "id": 31, + "node": 2, + "status": 1, + "type": 1, + "p_specified": -36590.630448384574, + "q_specified": -5157.856897960678 + }, + { + "id": 32, + "node": 3, + "status": 1, + "type": 0, + "p_specified": -93405.5170226497, + "q_specified": 9625.994809964206 + }, + { + "id": 33, + "node": 4, + "status": 1, + "type": 0, + "p_specified": -82035.12776088127, + "q_specified": 5152.078439328736 + }, + { + "id": 34, + "node": 10, + "status": 1, + "type": 1, + "p_specified": 67573.04624510315, + "q_specified": 491.47878224165834 + }, + { + "id": 35, + "node": 11, + "status": 1, + "type": 0, + "p_specified": 69897.19303727342, + "q_specified": 7900.779348533506 + }, + { + "id": 36, + "node": 12, + "status": 1, + "type": 1, + "p_specified": 15939.002149121181, + "q_specified": -988.7378673768962 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_001.json b/tests/fuzzer/corpus_json/21_random_001.json new file mode 100644 index 0000000000..29834f7b7e --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_001.json @@ -0,0 +1,98 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 380000.0 + }, + { + "id": 1, + "u_rated": 380000.0 + }, + { + "id": 2, + "u_rated": 380000.0 + }, + { + "id": 3, + "u_rated": 380000.0 + } + ], + "source": [ + { + "id": 4, + "node": 0, + "status": 1, + "u_ref": 1.0527549237953229, + "u_ref_angle": 0.0, + "sk": 847448993.5635389, + "rx_ratio": 0.12753451286971085, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 5, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 2.2474553239436905, + "x1": 3.2579648636138145, + "c1": 7.887233511355132e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 102.92099090649255 + }, + { + "id": 6, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.14173738261003155, + "x1": 4.178825519599348, + "c1": 4.3276706790505336e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 764.6572816333626 + }, + { + "id": 7, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 0.010530266755553463, + "x1": 2.226935970274007, + "c1": 7.215400323407826e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 236.47459905774812 + } + ], + "sym_load": [ + { + "id": 8, + "node": 3, + "status": 1, + "type": 0, + "p_specified": 29909.227105099664, + "q_specified": -9815.9012289123 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_002.json b/tests/fuzzer/corpus_json/21_random_002.json new file mode 100644 index 0000000000..7b8df538c7 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_002.json @@ -0,0 +1,369 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 230.0 + }, + { + "id": 1, + "u_rated": 230.0 + }, + { + "id": 2, + "u_rated": 230.0 + }, + { + "id": 3, + "u_rated": 230.0 + }, + { + "id": 4, + "u_rated": 230.0 + }, + { + "id": 5, + "u_rated": 230.0 + }, + { + "id": 6, + "u_rated": 230.0 + }, + { + "id": 7, + "u_rated": 230.0 + }, + { + "id": 8, + "u_rated": 230.0 + }, + { + "id": 9, + "u_rated": 230.0 + }, + { + "id": 10, + "u_rated": 230.0 + }, + { + "id": 11, + "u_rated": 230.0 + }, + { + "id": 12, + "u_rated": 230.0 + }, + { + "id": 13, + "u_rated": 230.0 + }, + { + "id": 14, + "u_rated": 230.0 + } + ], + "source": [ + { + "id": 15, + "node": 0, + "status": 1, + "u_ref": 0.9722114947967215, + "u_ref_angle": 0.0, + "sk": 91675628.92633308, + "rx_ratio": 0.08454180783022186, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 16, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.269171927427368, + "x1": 1.2579164879748284, + "c1": 2.122188106686006e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 45.37709731900671 + }, + { + "id": 17, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 3.406230924963313, + "x1": 4.998593979726346, + "c1": 6.384713381046937e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 805.6327487214055 + }, + { + "id": 18, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 4.301220513687266, + "x1": 2.5453372653348545, + "c1": 3.7206029552353203e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 936.3545683056536 + }, + { + "id": 19, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 2.5103364612251795, + "x1": 4.506038987484735, + "c1": 8.710329683679703e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 370.3742835688957 + }, + { + "id": 20, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 4.659232769849342, + "x1": 4.538750550896485, + "c1": 4.2361096957169063e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 885.2239208705369 + }, + { + "id": 21, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 0.8224421203326565, + "x1": 0.8871821774588301, + "c1": 2.3060267436398618e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 184.95278106549003 + }, + { + "id": 22, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 0.8679437688252845, + "x1": 2.5508334677749813, + "c1": 3.596914037964013e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 518.6000264267243 + }, + { + "id": 23, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 2.7994515814573875, + "x1": 4.975888352601659, + "c1": 4.4563761202067076e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 420.52428444517903 + }, + { + "id": 24, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 2.626828585065664, + "x1": 4.54239039729854, + "c1": 3.6425552360525445e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 597.5507035870038 + }, + { + "id": 25, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 1.8094319098061535, + "x1": 4.2948340982906865, + "c1": 4.457689610211897e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 955.383788767934 + }, + { + "id": 26, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 1.999317471502382, + "x1": 3.692951107822608, + "c1": 6.549109781559981e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 257.4027500682605 + }, + { + "id": 27, + "from_node": 11, + "to_node": 12, + "from_status": 1, + "to_status": 1, + "r1": 1.3955112146151087, + "x1": 2.4903271533862146, + "c1": 5.153922053540086e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 798.2540822057796 + }, + { + "id": 28, + "from_node": 12, + "to_node": 13, + "from_status": 1, + "to_status": 1, + "r1": 3.308428000019897, + "x1": 2.2734439335651913, + "c1": 9.031766538397383e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 357.26705843231093 + }, + { + "id": 29, + "from_node": 13, + "to_node": 14, + "from_status": 1, + "to_status": 1, + "r1": 3.6294260218862604, + "x1": 2.787914265832787, + "c1": 4.565511158601086e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 662.2964487939543 + } + ], + "sym_load": [ + { + "id": 30, + "node": 7, + "status": 1, + "type": 1, + "p_specified": 91472.3423112316, + "q_specified": 4124.116127352094 + }, + { + "id": 31, + "node": 8, + "status": 1, + "type": 2, + "p_specified": 1471.3386467313685, + "q_specified": 2316.1643129504773 + }, + { + "id": 32, + "node": 9, + "status": 1, + "type": 2, + "p_specified": -58436.30509241455, + "q_specified": 237.8331671056494 + }, + { + "id": 33, + "node": 12, + "status": 1, + "type": 1, + "p_specified": 45189.85749545964, + "q_specified": 8153.072419026415 + }, + { + "id": 34, + "node": 13, + "status": 1, + "type": 2, + "p_specified": -78768.61533707546, + "q_specified": 1488.2991690799481 + }, + { + "id": 35, + "node": 14, + "status": 1, + "type": 2, + "p_specified": -54676.69415104739, + "q_specified": 7509.823428964755 + } + ], + "shunt": [ + { + "id": 36, + "node": 0, + "status": 1, + "g1": 5.2236266535893e-05, + "b1": 7.078860143697442e-05, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_003.json b/tests/fuzzer/corpus_json/21_random_003.json new file mode 100644 index 0000000000..dd8e9b1ceb --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_003.json @@ -0,0 +1,126 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 380000.0 + }, + { + "id": 1, + "u_rated": 380000.0 + }, + { + "id": 2, + "u_rated": 380000.0 + }, + { + "id": 3, + "u_rated": 380000.0 + }, + { + "id": 4, + "u_rated": 380000.0 + } + ], + "source": [ + { + "id": 5, + "node": 0, + "status": 1, + "u_ref": 0.9739910333096159, + "u_ref_angle": 0.0, + "sk": 544274802.3734223, + "rx_ratio": 0.30196001929809724, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 6, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.32764429619906554, + "x1": 0.06583995777437068, + "c1": 8.374690820964599e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 266.76047418472757 + }, + { + "id": 7, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.1716548052334819, + "x1": 4.978224177552314, + "c1": 4.702635075224479e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 838.0968367616449 + }, + { + "id": 8, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 2.3817660434966745, + "x1": 3.19534070272081, + "c1": 1.5061642402352394e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 638.5120517023365 + }, + { + "id": 9, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.340226535716484, + "x1": 2.6159060519165065, + "c1": 7.412518562014902e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 674.6973606158966 + } + ], + "sym_load": [ + { + "id": 10, + "node": 1, + "status": 1, + "type": 2, + "p_specified": -91442.19413210801, + "q_specified": 5601.529781671128 + }, + { + "id": 11, + "node": 3, + "status": 1, + "type": 2, + "p_specified": 43764.78481316063, + "q_specified": 7576.256005109633 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_004.json b/tests/fuzzer/corpus_json/21_random_004.json new file mode 100644 index 0000000000..3a05010c3c --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_004.json @@ -0,0 +1,128 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 5, + "node": 0, + "status": 1, + "u_ref": 0.9792116485221363, + "u_ref_angle": 0.0, + "sk": 103255717.62729272, + "rx_ratio": 0.07748613540120514, + "z01_ratio": 1.0 + }, + { + "id": 6, + "node": 4, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 401650855.38362634, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 7, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.5897752154385945, + "x1": 4.002261757479043, + "c1": 7.651626025054384e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 229.70889393341446 + }, + { + "id": 8, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 2.6834000408740675, + "x1": 1.383413217207251, + "c1": 1.726645292853689e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 115.12145950721482 + }, + { + "id": 9, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.0720021628945826, + "x1": 4.6373781571403025, + "c1": 8.289200487784194e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 808.5858232353002 + }, + { + "id": 10, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.002239192714831, + "x1": 0.9671780900962001, + "c1": 3.0984995729953556e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 630.7058463889988 + } + ], + "sym_load": [ + { + "id": 11, + "node": 4, + "status": 1, + "type": 2, + "p_specified": -32519.50491711282, + "q_specified": -2241.363002962802 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_005.json b/tests/fuzzer/corpus_json/21_random_005.json new file mode 100644 index 0000000000..13a78acede --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_005.json @@ -0,0 +1,289 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + }, + { + "id": 5, + "u_rated": 10000.0 + }, + { + "id": 6, + "u_rated": 10000.0 + }, + { + "id": 7, + "u_rated": 10000.0 + }, + { + "id": 8, + "u_rated": 10000.0 + }, + { + "id": 9, + "u_rated": 10000.0 + }, + { + "id": 10, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 11, + "node": 0, + "status": 1, + "u_ref": 1.0590387131131394, + "u_ref_angle": 0.0, + "sk": 741812810.5618033, + "rx_ratio": 0.47122514188852516, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 12, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.611624983327085, + "x1": 0.14502614141807368, + "c1": 4.6562265437810535e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 943.9231498283306 + }, + { + "id": 13, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 3.244872765684621, + "x1": 4.504502458753113, + "c1": 1.1320596465314436e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 474.3783573043421 + }, + { + "id": 14, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.2328641630991517, + "x1": 2.718804296179652, + "c1": 5.739411879281007e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 22.98304769301318 + }, + { + "id": 15, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 1.0836490023192407, + "x1": 1.3974118300555516, + "c1": 9.163453718085519e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 768.0681971128503 + }, + { + "id": 16, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 0.7980210617901912, + "x1": 3.9857349571560223, + "c1": 1.3876741839890315e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 621.2779952614554 + }, + { + "id": 17, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 0.6334961627513486, + "x1": 0.00887431101267322, + "c1": 8.714047447242821e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 217.3618186701667 + }, + { + "id": 18, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 1.0774058461236613, + "x1": 4.912105544129626, + "c1": 8.724077654368019e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 296.4121160694572 + }, + { + "id": 19, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 4.807389944750417, + "x1": 2.696117344354053, + "c1": 6.778304772505923e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 212.7317193884549 + }, + { + "id": 20, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 4.704880005439995, + "x1": 3.453209705534541, + "c1": 9.665643123171953e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 894.8042608007137 + }, + { + "id": 21, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 1.4939444892693388, + "x1": 1.8059496736119207, + "c1": 1.659560571297456e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 154.2448904452757 + } + ], + "sym_load": [ + { + "id": 22, + "node": 1, + "status": 1, + "type": 1, + "p_specified": 63480.06219135222, + "q_specified": 1722.8251700674173 + }, + { + "id": 23, + "node": 2, + "status": 1, + "type": 2, + "p_specified": -32420.62767442697, + "q_specified": -3800.8413679374244 + }, + { + "id": 24, + "node": 4, + "status": 1, + "type": 1, + "p_specified": -63045.351980301166, + "q_specified": -549.2330037550437 + }, + { + "id": 25, + "node": 5, + "status": 1, + "type": 1, + "p_specified": 95019.91262884706, + "q_specified": -9542.688734945586 + }, + { + "id": 26, + "node": 8, + "status": 1, + "type": 1, + "p_specified": -26763.10483162789, + "q_specified": 1570.3765811374906 + }, + { + "id": 27, + "node": 9, + "status": 1, + "type": 0, + "p_specified": 41551.65133017226, + "q_specified": 2474.2606215447013 + } + ], + "shunt": [ + { + "id": 28, + "node": 0, + "status": 1, + "g1": 2.4608679063361374e-05, + "b1": 6.389863333410596e-05, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_006.json b/tests/fuzzer/corpus_json/21_random_006.json new file mode 100644 index 0000000000..08de56c60e --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_006.json @@ -0,0 +1,364 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 380000.0 + }, + { + "id": 1, + "u_rated": 380000.0 + }, + { + "id": 2, + "u_rated": 380000.0 + }, + { + "id": 3, + "u_rated": 380000.0 + }, + { + "id": 4, + "u_rated": 380000.0 + }, + { + "id": 5, + "u_rated": 380000.0 + }, + { + "id": 6, + "u_rated": 380000.0 + }, + { + "id": 7, + "u_rated": 380000.0 + }, + { + "id": 8, + "u_rated": 380000.0 + }, + { + "id": 9, + "u_rated": 380000.0 + }, + { + "id": 10, + "u_rated": 380000.0 + }, + { + "id": 11, + "u_rated": 380000.0 + }, + { + "id": 12, + "u_rated": 380000.0 + }, + { + "id": 13, + "u_rated": 380000.0 + } + ], + "source": [ + { + "id": 14, + "node": 0, + "status": 1, + "u_ref": 0.9970069255861891, + "u_ref_angle": 0.0, + "sk": 821971846.9154948, + "rx_ratio": 0.13081074147232896, + "z01_ratio": 1.0 + }, + { + "id": 15, + "node": 13, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 662852281.0274793, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 16, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 2.351271285322225, + "x1": 3.7986531754894655, + "c1": 3.7316037207384154e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 772.4384375786103 + }, + { + "id": 17, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.3634904283598537, + "x1": 4.009577415813018, + "c1": 7.29824832622016e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 419.86637675365034 + }, + { + "id": 18, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 2.6915260977763844, + "x1": 3.410258706443392, + "c1": 1.929848757640874e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 558.0790138433014 + }, + { + "id": 19, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.0256202492448665, + "x1": 1.3276052721925102, + "c1": 8.033653096113133e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 688.8329832794365 + }, + { + "id": 20, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 4.221411623980825, + "x1": 1.6779100891290715, + "c1": 9.313459219143227e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 802.2798926073716 + }, + { + "id": 21, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 4.023907566461215, + "x1": 2.226062070564216, + "c1": 9.378037419593965e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 205.19042435094505 + }, + { + "id": 22, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 3.174594260618495, + "x1": 1.4559178090673282, + "c1": 9.513730037635795e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 592.6840988824974 + }, + { + "id": 23, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 1.0043715994024343, + "x1": 3.277019966865921, + "c1": 3.603795654080961e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 933.4098429560353 + }, + { + "id": 24, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 4.547556012635045, + "x1": 2.573255806262895, + "c1": 6.445718107374947e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 700.9312492123565 + }, + { + "id": 25, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 4.027524609256186, + "x1": 4.881875027578088, + "c1": 2.8421980392027254e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 367.76265727316394 + }, + { + "id": 26, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 3.0087362017366512, + "x1": 1.5216220303393757, + "c1": 5.891567403047134e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 98.79058826830668 + }, + { + "id": 27, + "from_node": 11, + "to_node": 12, + "from_status": 1, + "to_status": 1, + "r1": 4.400394211657956, + "x1": 2.6263159215124485, + "c1": 1.1682439303553393e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 666.1137596160604 + }, + { + "id": 28, + "from_node": 12, + "to_node": 13, + "from_status": 1, + "to_status": 1, + "r1": 1.5614033013210942, + "x1": 0.9811206675993911, + "c1": 4.837442802096808e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 146.724490459038 + } + ], + "sym_load": [ + { + "id": 29, + "node": 1, + "status": 1, + "type": 2, + "p_specified": 4428.106565062248, + "q_specified": -6225.066665104404 + }, + { + "id": 30, + "node": 2, + "status": 1, + "type": 2, + "p_specified": -33417.58764126037, + "q_specified": 8088.7570487493285 + }, + { + "id": 31, + "node": 4, + "status": 1, + "type": 1, + "p_specified": 5474.7661786758545, + "q_specified": -4217.016081983637 + }, + { + "id": 32, + "node": 6, + "status": 1, + "type": 0, + "p_specified": -15422.268816933094, + "q_specified": 4926.260709513357 + }, + { + "id": 33, + "node": 7, + "status": 1, + "type": 1, + "p_specified": -50937.791458271575, + "q_specified": 9585.12069121854 + }, + { + "id": 34, + "node": 11, + "status": 1, + "type": 1, + "p_specified": 59219.767267213465, + "q_specified": 333.73332417320853 + }, + { + "id": 35, + "node": 12, + "status": 1, + "type": 2, + "p_specified": 63306.48423591815, + "q_specified": 8814.50311629934 + }, + { + "id": 36, + "node": 13, + "status": 1, + "type": 2, + "p_specified": -46836.056632759915, + "q_specified": -246.72005733440346 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_007.json b/tests/fuzzer/corpus_json/21_random_007.json new file mode 100644 index 0000000000..8cc9075ea7 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_007.json @@ -0,0 +1,200 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + }, + { + "id": 1, + "u_rated": 400.0 + }, + { + "id": 2, + "u_rated": 400.0 + }, + { + "id": 3, + "u_rated": 400.0 + }, + { + "id": 4, + "u_rated": 400.0 + }, + { + "id": 5, + "u_rated": 400.0 + }, + { + "id": 6, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 7, + "node": 0, + "status": 1, + "u_ref": 0.9096572847253624, + "u_ref_angle": 0.0, + "sk": 394884014.07353115, + "rx_ratio": 0.41063714599565415, + "z01_ratio": 1.0 + }, + { + "id": 8, + "node": 6, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 582829727.1027647, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 9, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.548520315715511, + "x1": 1.0734909041783087, + "c1": 8.594723368917168e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 423.9904298570519 + }, + { + "id": 10, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.2033150006351252, + "x1": 2.7552362689569287, + "c1": 5.911050607898915e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 569.7991572511489 + }, + { + "id": 11, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 4.737248503537438, + "x1": 3.1531295786586853, + "c1": 5.829969044604073e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 71.24342785277899 + }, + { + "id": 12, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 2.927707113201934, + "x1": 0.2479465669488573, + "c1": 2.2108182345764837e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 561.0982489577217 + }, + { + "id": 13, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 0.6658740822080256, + "x1": 2.095695217857326, + "c1": 5.406858855321424e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 575.204552750267 + }, + { + "id": 14, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 2.8012863850640635, + "x1": 3.410013473806023, + "c1": 1.0305571244359135e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 575.4923474976744 + } + ], + "sym_load": [ + { + "id": 15, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 9548.893141911569, + "q_specified": -8744.220500533538 + }, + { + "id": 16, + "node": 2, + "status": 1, + "type": 0, + "p_specified": -717.1009773016413, + "q_specified": 634.4049316037144 + }, + { + "id": 17, + "node": 4, + "status": 1, + "type": 1, + "p_specified": -27683.528811086726, + "q_specified": -5031.4683028490135 + }, + { + "id": 18, + "node": 5, + "status": 1, + "type": 0, + "p_specified": -83628.99784084603, + "q_specified": -3995.0176290874942 + }, + { + "id": 19, + "node": 6, + "status": 1, + "type": 1, + "p_specified": 45889.05788784352, + "q_specified": -4241.24470219627 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_008.json b/tests/fuzzer/corpus_json/21_random_008.json new file mode 100644 index 0000000000..6a68941b5d --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_008.json @@ -0,0 +1,144 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 5, + "node": 0, + "status": 1, + "u_ref": 0.9252661797301719, + "u_ref_angle": 0.0, + "sk": 962298806.3307993, + "rx_ratio": 0.35240846143580395, + "z01_ratio": 1.0 + }, + { + "id": 6, + "node": 4, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 247516240.83059216, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 7, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.995642695812895, + "x1": 1.046988159444564, + "c1": 6.41868435072107e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 464.54242514467273 + }, + { + "id": 8, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 2.2656621556907144, + "x1": 2.4749134694458883, + "c1": 1.9223084224268214e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 832.2160608966419 + }, + { + "id": 9, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 0.447828117202948, + "x1": 1.1709147974485268, + "c1": 1.999130622418077e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 274.09978639316586 + }, + { + "id": 10, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 2.038319314804786, + "x1": 4.510321502058142, + "c1": 3.7907542084158905e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 122.59361800799192 + } + ], + "sym_load": [ + { + "id": 11, + "node": 1, + "status": 1, + "type": 0, + "p_specified": -22726.156383502544, + "q_specified": 6590.644922436048 + }, + { + "id": 12, + "node": 2, + "status": 1, + "type": 0, + "p_specified": -32312.28257057193, + "q_specified": 3826.011432119445 + }, + { + "id": 13, + "node": 3, + "status": 1, + "type": 2, + "p_specified": 3362.227829359399, + "q_specified": -5841.673525938909 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_009.json b/tests/fuzzer/corpus_json/21_random_009.json new file mode 100644 index 0000000000..7f946bb8a4 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_009.json @@ -0,0 +1,240 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 380000.0 + }, + { + "id": 1, + "u_rated": 380000.0 + }, + { + "id": 2, + "u_rated": 380000.0 + }, + { + "id": 3, + "u_rated": 380000.0 + }, + { + "id": 4, + "u_rated": 380000.0 + }, + { + "id": 5, + "u_rated": 380000.0 + }, + { + "id": 6, + "u_rated": 380000.0 + }, + { + "id": 7, + "u_rated": 380000.0 + }, + { + "id": 8, + "u_rated": 380000.0 + } + ], + "source": [ + { + "id": 9, + "node": 0, + "status": 1, + "u_ref": 0.927707882502891, + "u_ref_angle": 0.0, + "sk": 373374600.2019025, + "rx_ratio": 0.43328092499317067, + "z01_ratio": 1.0 + }, + { + "id": 10, + "node": 8, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 502831801.8442032, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 11, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.491489850159691, + "x1": 0.4040732359150051, + "c1": 5.542704681782861e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 620.4835422567822 + }, + { + "id": 12, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.20447882742405776, + "x1": 1.8950980219771785, + "c1": 7.03480392293747e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 457.50071124552545 + }, + { + "id": 13, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 3.6253268429110452, + "x1": 0.7857858079831292, + "c1": 2.3801220246653274e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 119.8380526982345 + }, + { + "id": 14, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 2.5313452583449116, + "x1": 4.619148932061478, + "c1": 5.904284571359125e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 776.467372563156 + }, + { + "id": 15, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 1.918324224263241, + "x1": 3.730476084622143, + "c1": 1.0166943757947843e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 298.26629819654306 + }, + { + "id": 16, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 3.371180006276856, + "x1": 3.628531761206524, + "c1": 4.21755395006955e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 96.8352592353108 + }, + { + "id": 17, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 1.3336678561337023, + "x1": 1.0494506506824086, + "c1": 2.811844150845688e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 811.415593719205 + }, + { + "id": 18, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 0.9974161054492264, + "x1": 4.431998655396387, + "c1": 8.793731884001768e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 64.24146254997386 + } + ], + "sym_load": [ + { + "id": 19, + "node": 1, + "status": 1, + "type": 1, + "p_specified": -72171.43621521718, + "q_specified": -5265.333738218942 + }, + { + "id": 20, + "node": 5, + "status": 1, + "type": 2, + "p_specified": -60465.93055828893, + "q_specified": 7043.927640177786 + }, + { + "id": 21, + "node": 6, + "status": 1, + "type": 0, + "p_specified": -73363.3212152579, + "q_specified": 8353.149297455671 + }, + { + "id": 22, + "node": 7, + "status": 1, + "type": 2, + "p_specified": -651.6701913064317, + "q_specified": 8418.526380982315 + }, + { + "id": 23, + "node": 8, + "status": 1, + "type": 1, + "p_specified": -61567.10142088304, + "q_specified": 5297.95409640935 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_010.json b/tests/fuzzer/corpus_json/21_random_010.json new file mode 100644 index 0000000000..6c6aa38ac5 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_010.json @@ -0,0 +1,281 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 230.0 + }, + { + "id": 1, + "u_rated": 230.0 + }, + { + "id": 2, + "u_rated": 230.0 + }, + { + "id": 3, + "u_rated": 230.0 + }, + { + "id": 4, + "u_rated": 230.0 + }, + { + "id": 5, + "u_rated": 230.0 + }, + { + "id": 6, + "u_rated": 230.0 + }, + { + "id": 7, + "u_rated": 230.0 + }, + { + "id": 8, + "u_rated": 230.0 + }, + { + "id": 9, + "u_rated": 230.0 + }, + { + "id": 10, + "u_rated": 230.0 + } + ], + "source": [ + { + "id": 11, + "node": 0, + "status": 1, + "u_ref": 1.0156182602268942, + "u_ref_angle": 0.0, + "sk": 428946165.7696471, + "rx_ratio": 0.10304911606975087, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 12, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.117944362667227, + "x1": 3.2673626695058786, + "c1": 1.6022955651881965e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 525.4626660435254 + }, + { + "id": 13, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.6388640581104656, + "x1": 1.2499833834320018, + "c1": 9.528169091459116e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 996.5914226140607 + }, + { + "id": 14, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 0.22278191225216515, + "x1": 4.300805186431455, + "c1": 6.031906109681851e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 387.7899260599267 + }, + { + "id": 15, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 1.4180910895335757, + "x1": 3.37482423567478, + "c1": 4.568311510583056e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 689.0028706198487 + }, + { + "id": 16, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 3.3092316002617554, + "x1": 0.664890723561064, + "c1": 7.678378139439905e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 982.589116521079 + }, + { + "id": 17, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 4.846940802024594, + "x1": 3.066634102733545, + "c1": 4.4260632864620895e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 14.01459271682339 + }, + { + "id": 18, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 0.6698626352456694, + "x1": 4.7050113569791705, + "c1": 3.0286056202907226e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 372.48414564382216 + }, + { + "id": 19, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 4.490981222695941, + "x1": 1.5718190247822532, + "c1": 5.489821840124055e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 441.670648047881 + }, + { + "id": 20, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 0.3249708806342527, + "x1": 2.9227311285096507, + "c1": 8.440678976619022e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 164.85472920353234 + }, + { + "id": 21, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 1.1214948434302074, + "x1": 2.0643510385742037, + "c1": 3.6924869058629016e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 501.6374636303827 + } + ], + "sym_load": [ + { + "id": 22, + "node": 3, + "status": 1, + "type": 0, + "p_specified": -70062.3730057197, + "q_specified": 1344.709537262479 + }, + { + "id": 23, + "node": 4, + "status": 1, + "type": 2, + "p_specified": -70067.66928297923, + "q_specified": 9275.930788444384 + }, + { + "id": 24, + "node": 6, + "status": 1, + "type": 0, + "p_specified": 89538.78484469815, + "q_specified": -1335.369948970285 + }, + { + "id": 25, + "node": 7, + "status": 1, + "type": 0, + "p_specified": 36157.91391537097, + "q_specified": -7129.735705665831 + }, + { + "id": 26, + "node": 8, + "status": 1, + "type": 0, + "p_specified": -46594.58628932409, + "q_specified": -3948.5993735584925 + } + ], + "shunt": [ + { + "id": 27, + "node": 0, + "status": 1, + "g1": 1.7608943939308365e-05, + "b1": 5.456986926134117e-05, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_011.json b/tests/fuzzer/corpus_json/21_random_011.json new file mode 100644 index 0000000000..6906a33fc7 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_011.json @@ -0,0 +1,230 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 380000.0 + }, + { + "id": 1, + "u_rated": 380000.0 + }, + { + "id": 2, + "u_rated": 380000.0 + }, + { + "id": 3, + "u_rated": 380000.0 + }, + { + "id": 4, + "u_rated": 380000.0 + }, + { + "id": 5, + "u_rated": 380000.0 + }, + { + "id": 6, + "u_rated": 380000.0 + }, + { + "id": 7, + "u_rated": 380000.0 + }, + { + "id": 8, + "u_rated": 380000.0 + } + ], + "source": [ + { + "id": 9, + "node": 0, + "status": 1, + "u_ref": 1.0562436110759528, + "u_ref_angle": 0.0, + "sk": 856877320.0841111, + "rx_ratio": 0.22591616029978268, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 10, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.9495101565368597, + "x1": 4.0195015636052425, + "c1": 4.7576323620887627e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 617.8192457187705 + }, + { + "id": 11, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.9308684279815649, + "x1": 2.232965763784992, + "c1": 1.4179512925945614e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 543.3065734919018 + }, + { + "id": 12, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 4.451902460062447, + "x1": 3.1722639144167424, + "c1": 5.954365058406696e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 402.1983766936525 + }, + { + "id": 13, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 2.2649743279040804, + "x1": 3.694579400701921, + "c1": 6.500709739140725e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 626.8971670035327 + }, + { + "id": 14, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 4.15850812674989, + "x1": 0.3158246002924109, + "c1": 3.565278045988274e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 880.7693228090076 + }, + { + "id": 15, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 2.9980904247642526, + "x1": 3.8905420327162163, + "c1": 3.262933525482647e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 595.049849033377 + }, + { + "id": 16, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 0.9766068875463346, + "x1": 1.1682281881679484, + "c1": 2.941515706462647e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 14.547834439762148 + }, + { + "id": 17, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 0.4249438068766098, + "x1": 3.2740081950337774, + "c1": 4.0677873788517856e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 555.7550582716965 + } + ], + "sym_load": [ + { + "id": 18, + "node": 2, + "status": 1, + "type": 1, + "p_specified": -36944.55659689002, + "q_specified": -5406.681967841889 + }, + { + "id": 19, + "node": 3, + "status": 1, + "type": 0, + "p_specified": 12628.452131581129, + "q_specified": -7841.46168822053 + }, + { + "id": 20, + "node": 4, + "status": 1, + "type": 1, + "p_specified": -22697.293658813098, + "q_specified": 9160.847666396268 + }, + { + "id": 21, + "node": 6, + "status": 1, + "type": 0, + "p_specified": 85408.42966775884, + "q_specified": -8953.548152746667 + }, + { + "id": 22, + "node": 7, + "status": 1, + "type": 2, + "p_specified": -20515.122384143775, + "q_specified": -8539.233123326041 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_012.json b/tests/fuzzer/corpus_json/21_random_012.json new file mode 100644 index 0000000000..32a361839b --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_012.json @@ -0,0 +1,259 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + }, + { + "id": 5, + "u_rated": 10000.0 + }, + { + "id": 6, + "u_rated": 10000.0 + }, + { + "id": 7, + "u_rated": 10000.0 + }, + { + "id": 8, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 9, + "node": 0, + "status": 1, + "u_ref": 1.0332820942249676, + "u_ref_angle": 0.0, + "sk": 657506755.4069896, + "rx_ratio": 0.07130017646268388, + "z01_ratio": 1.0 + }, + { + "id": 10, + "node": 8, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 374817016.6141581, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 11, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1.370240697391657, + "x1": 4.051740261175419, + "c1": 6.905926530386846e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 605.4424683404558 + }, + { + "id": 12, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 2.79095023876674, + "x1": 3.306605429360005, + "c1": 1.4530279471010299e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 445.6542440055221 + }, + { + "id": 13, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 0.8113366119444432, + "x1": 4.529864907646613, + "c1": 5.882432741086607e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 820.6319265636596 + }, + { + "id": 14, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 0.37304816817938735, + "x1": 3.4347275204677086, + "c1": 3.369995927917676e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 410.5681402973626 + }, + { + "id": 15, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 4.212016839062809, + "x1": 0.09302150156001388, + "c1": 6.078469618896886e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 915.8833069758474 + }, + { + "id": 16, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 2.544629582138507, + "x1": 0.4548899452929167, + "c1": 9.871339904055696e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 947.245888555838 + }, + { + "id": 17, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 0.5626381807351322, + "x1": 2.116033061270468, + "c1": 1.3506950094916401e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 319.4152872503455 + }, + { + "id": 18, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 3.1072597413571614, + "x1": 0.8176206415949067, + "c1": 6.968344888506455e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 60.83978399335475 + } + ], + "sym_load": [ + { + "id": 19, + "node": 1, + "status": 1, + "type": 0, + "p_specified": -19896.26048886926, + "q_specified": -1623.1957572476676 + }, + { + "id": 20, + "node": 2, + "status": 1, + "type": 1, + "p_specified": 21859.279848011414, + "q_specified": 822.9832396647889 + }, + { + "id": 21, + "node": 4, + "status": 1, + "type": 0, + "p_specified": 95260.7539106987, + "q_specified": 3271.9208689874013 + }, + { + "id": 22, + "node": 5, + "status": 1, + "type": 1, + "p_specified": 73226.36498527892, + "q_specified": -2288.1162652711846 + }, + { + "id": 23, + "node": 6, + "status": 1, + "type": 1, + "p_specified": -53005.51453943156, + "q_specified": -2733.5524005791513 + }, + { + "id": 24, + "node": 7, + "status": 1, + "type": 2, + "p_specified": -64118.30629685036, + "q_specified": -2381.6943433034994 + } + ], + "shunt": [ + { + "id": 25, + "node": 0, + "status": 1, + "g1": 2.57409455043669e-06, + "b1": 3.513087097889641e-05, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_013.json b/tests/fuzzer/corpus_json/21_random_013.json new file mode 100644 index 0000000000..41d2c04b02 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_013.json @@ -0,0 +1,164 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + }, + { + "id": 5, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 6, + "node": 0, + "status": 1, + "u_ref": 1.0368163836032223, + "u_ref_angle": 0.0, + "sk": 685289467.1652405, + "rx_ratio": 0.4246680806949651, + "z01_ratio": 1.0 + }, + { + "id": 7, + "node": 5, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 230635553.10457155, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 8, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.7357995908420889, + "x1": 1.1258146778105633, + "c1": 7.340236022127729e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 138.91089253215932 + }, + { + "id": 9, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 2.6565737592350915, + "x1": 1.0695376524587035, + "c1": 2.946567537633625e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 437.26452510829046 + }, + { + "id": 10, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 4.18828255251649, + "x1": 3.042010739371432, + "c1": 1.4432392962091865e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 283.0784853997651 + }, + { + "id": 11, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 0.7335516097005729, + "x1": 4.356423645992199, + "c1": 8.097396112110605e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 807.9863696532386 + }, + { + "id": 12, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 4.131826700682412, + "x1": 3.723750764011038, + "c1": 9.493234167956348e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 795.8328452575549 + } + ], + "sym_load": [ + { + "id": 13, + "node": 1, + "status": 1, + "type": 0, + "p_specified": -2642.901393412365, + "q_specified": 5100.077025548022 + }, + { + "id": 14, + "node": 2, + "status": 1, + "type": 1, + "p_specified": 34145.6657114664, + "q_specified": 7772.5877508256235 + }, + { + "id": 15, + "node": 5, + "status": 1, + "type": 2, + "p_specified": 59651.72742871157, + "q_specified": 9713.623711897402 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_014.json b/tests/fuzzer/corpus_json/21_random_014.json new file mode 100644 index 0000000000..e1d258d339 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_014.json @@ -0,0 +1,88 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 380000.0 + }, + { + "id": 1, + "u_rated": 380000.0 + }, + { + "id": 2, + "u_rated": 380000.0 + } + ], + "source": [ + { + "id": 3, + "node": 0, + "status": 1, + "u_ref": 1.0304084040628552, + "u_ref_angle": 0.0, + "sk": 702615265.4344568, + "rx_ratio": 0.47017619478305894, + "z01_ratio": 1.0 + }, + { + "id": 4, + "node": 2, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 255849935.88169587, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 5, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 3.670296820723484, + "x1": 3.292250091200379, + "c1": 3.0298797388835507e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 687.3907967961859 + }, + { + "id": 6, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.9833682251650697, + "x1": 3.887582939450562, + "c1": 1.1839956986543854e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 231.03345514912706 + } + ], + "sym_load": [ + { + "id": 7, + "node": 2, + "status": 1, + "type": 1, + "p_specified": -27865.977876959325, + "q_specified": 2654.5683490729207 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_015.json b/tests/fuzzer/corpus_json/21_random_015.json new file mode 100644 index 0000000000..01172c276c --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_015.json @@ -0,0 +1,155 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 230.0 + }, + { + "id": 1, + "u_rated": 230.0 + }, + { + "id": 2, + "u_rated": 230.0 + }, + { + "id": 3, + "u_rated": 230.0 + }, + { + "id": 4, + "u_rated": 230.0 + } + ], + "source": [ + { + "id": 5, + "node": 0, + "status": 1, + "u_ref": 0.9072352888554525, + "u_ref_angle": 0.0, + "sk": 521364767.19243836, + "rx_ratio": 0.45650692279018257, + "z01_ratio": 1.0 + }, + { + "id": 6, + "node": 4, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 55042722.44724114, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 7, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.024371828189144, + "x1": 0.7362417823576323, + "c1": 6.947772726402895e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 373.61960729448515 + }, + { + "id": 8, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.5856491751252768, + "x1": 2.33164890513548, + "c1": 3.5573930502371253e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 398.3528991839372 + }, + { + "id": 9, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.7216996933746975, + "x1": 4.675177777477991, + "c1": 2.0636682863930312e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 361.6162814918148 + }, + { + "id": 10, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 1.5668539786112012, + "x1": 1.5281924204840613, + "c1": 7.266233228994156e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 426.26260875964164 + } + ], + "sym_load": [ + { + "id": 11, + "node": 1, + "status": 1, + "type": 1, + "p_specified": -2075.7256761799945, + "q_specified": -777.8628819150363 + }, + { + "id": 12, + "node": 3, + "status": 1, + "type": 1, + "p_specified": 86043.47362224126, + "q_specified": 2911.425002006925 + }, + { + "id": 13, + "node": 4, + "status": 1, + "type": 0, + "p_specified": -1948.6949455574504, + "q_specified": 8900.496190609676 + } + ], + "shunt": [ + { + "id": 14, + "node": 0, + "status": 1, + "g1": 1.4031812201393757e-05, + "b1": -6.556109843544906e-05, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_016.json b/tests/fuzzer/corpus_json/21_random_016.json new file mode 100644 index 0000000000..6c58f353e4 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_016.json @@ -0,0 +1,193 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + }, + { + "id": 1, + "u_rated": 110000.0 + }, + { + "id": 2, + "u_rated": 110000.0 + }, + { + "id": 3, + "u_rated": 110000.0 + }, + { + "id": 4, + "u_rated": 110000.0 + }, + { + "id": 5, + "u_rated": 110000.0 + }, + { + "id": 6, + "u_rated": 110000.0 + } + ], + "source": [ + { + "id": 7, + "node": 0, + "status": 1, + "u_ref": 0.983390525321133, + "u_ref_angle": 0.0, + "sk": 480532617.53473383, + "rx_ratio": 0.2233796268919616, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 8, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 3.288529131971354, + "x1": 1.2942769094503914, + "c1": 6.349959241034841e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 20.027089891071526 + }, + { + "id": 9, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.510218523998229, + "x1": 1.6753167534885949, + "c1": 1.4195051753283404e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 745.9801075315986 + }, + { + "id": 10, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.5505412601747266, + "x1": 3.9462099678945046, + "c1": 9.56205037257012e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 260.9709449125047 + }, + { + "id": 11, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.467703519536547, + "x1": 4.038184121476416, + "c1": 6.674189689081608e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 37.09566012085733 + }, + { + "id": 12, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 2.283941641401034, + "x1": 3.1337437668272154, + "c1": 2.962256519901001e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 232.09215726572933 + }, + { + "id": 13, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 1.5489509463974305, + "x1": 1.291175239543663, + "c1": 7.878252125228973e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 354.30273882560334 + } + ], + "sym_load": [ + { + "id": 14, + "node": 1, + "status": 1, + "type": 2, + "p_specified": -65546.84795680115, + "q_specified": 1252.8892298075552 + }, + { + "id": 15, + "node": 2, + "status": 1, + "type": 1, + "p_specified": 94776.87490523621, + "q_specified": 6651.411354533146 + }, + { + "id": 16, + "node": 4, + "status": 1, + "type": 0, + "p_specified": -2022.6997814932547, + "q_specified": -3822.5157105567932 + }, + { + "id": 17, + "node": 5, + "status": 1, + "type": 1, + "p_specified": -86853.60973439207, + "q_specified": 3985.704404451524 + } + ], + "shunt": [ + { + "id": 18, + "node": 0, + "status": 1, + "g1": 8.424283777497127e-05, + "b1": -1.6936152965010452e-06, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_017.json b/tests/fuzzer/corpus_json/21_random_017.json new file mode 100644 index 0000000000..483d487c9a --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_017.json @@ -0,0 +1,250 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + }, + { + "id": 1, + "u_rated": 110000.0 + }, + { + "id": 2, + "u_rated": 110000.0 + }, + { + "id": 3, + "u_rated": 110000.0 + }, + { + "id": 4, + "u_rated": 110000.0 + }, + { + "id": 5, + "u_rated": 110000.0 + }, + { + "id": 6, + "u_rated": 110000.0 + }, + { + "id": 7, + "u_rated": 110000.0 + }, + { + "id": 8, + "u_rated": 110000.0 + }, + { + "id": 9, + "u_rated": 110000.0 + } + ], + "source": [ + { + "id": 10, + "node": 0, + "status": 1, + "u_ref": 1.0920989548647755, + "u_ref_angle": 0.0, + "sk": 806710108.0409672, + "rx_ratio": 0.14481268888223275, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 11, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 3.5210993342170633, + "x1": 3.306915286119152, + "c1": 1.1016204891721182e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 36.667411002621535 + }, + { + "id": 12, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.9208555227214874, + "x1": 3.7319759808319217, + "c1": 2.5238376751322197e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 506.5866438623534 + }, + { + "id": 13, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.5871754527287485, + "x1": 4.231639045642121, + "c1": 9.451939145048893e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 407.5750275415628 + }, + { + "id": 14, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.992235025435105, + "x1": 0.3109639562622335, + "c1": 8.126090004416156e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 876.5633371069978 + }, + { + "id": 15, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 0.7545774013849005, + "x1": 3.5278430779597536, + "c1": 5.588918686046748e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 955.63598363826 + }, + { + "id": 16, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 1.0500500474511116, + "x1": 2.6998167531006185, + "c1": 8.824561068087002e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 642.3854492491985 + }, + { + "id": 17, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 1.5459976497916261, + "x1": 0.4093192706737131, + "c1": 9.39776047011715e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 479.3574863953413 + }, + { + "id": 18, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 4.981630913911116, + "x1": 0.7080357031006768, + "c1": 8.12204252248064e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 815.2443405315978 + }, + { + "id": 19, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 4.599875112488201, + "x1": 0.089171582191514, + "c1": 3.721928415574348e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 61.1523034267917 + } + ], + "sym_load": [ + { + "id": 20, + "node": 2, + "status": 1, + "type": 1, + "p_specified": -25034.197300558022, + "q_specified": 5487.498492771063 + }, + { + "id": 21, + "node": 4, + "status": 1, + "type": 2, + "p_specified": -57231.348816466074, + "q_specified": -5028.604637545682 + }, + { + "id": 22, + "node": 6, + "status": 1, + "type": 0, + "p_specified": 57293.93851084213, + "q_specified": -6145.049967240877 + }, + { + "id": 23, + "node": 8, + "status": 1, + "type": 2, + "p_specified": 80344.48195917299, + "q_specified": -4996.555796479413 + }, + { + "id": 24, + "node": 9, + "status": 1, + "type": 1, + "p_specified": -36224.20106719844, + "q_specified": -3358.5361996124166 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_018.json b/tests/fuzzer/corpus_json/21_random_018.json new file mode 100644 index 0000000000..c8647dae18 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_018.json @@ -0,0 +1,98 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 230.0 + }, + { + "id": 1, + "u_rated": 230.0 + }, + { + "id": 2, + "u_rated": 230.0 + }, + { + "id": 3, + "u_rated": 230.0 + } + ], + "source": [ + { + "id": 4, + "node": 0, + "status": 1, + "u_ref": 0.9669119406335, + "u_ref_angle": 0.0, + "sk": 661464405.4403949, + "rx_ratio": 0.09896980208126022, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 5, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 2.470173395535876, + "x1": 2.398862700740716, + "c1": 4.583311147008101e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 271.8849995296952 + }, + { + "id": 6, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.2690046764624707, + "x1": 3.4594005017727603, + "c1": 3.244381436862491e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 678.0723646642293 + }, + { + "id": 7, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 3.935871019003245, + "x1": 4.329727737871812, + "c1": 9.440284133783024e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 242.21228962643335 + } + ], + "sym_load": [ + { + "id": 8, + "node": 1, + "status": 1, + "type": 2, + "p_specified": -26892.859376157576, + "q_specified": 154.82965139589942 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_019.json b/tests/fuzzer/corpus_json/21_random_019.json new file mode 100644 index 0000000000..062b6b88d5 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_019.json @@ -0,0 +1,317 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 230.0 + }, + { + "id": 1, + "u_rated": 230.0 + }, + { + "id": 2, + "u_rated": 230.0 + }, + { + "id": 3, + "u_rated": 230.0 + }, + { + "id": 4, + "u_rated": 230.0 + }, + { + "id": 5, + "u_rated": 230.0 + }, + { + "id": 6, + "u_rated": 230.0 + }, + { + "id": 7, + "u_rated": 230.0 + }, + { + "id": 8, + "u_rated": 230.0 + }, + { + "id": 9, + "u_rated": 230.0 + }, + { + "id": 10, + "u_rated": 230.0 + }, + { + "id": 11, + "u_rated": 230.0 + } + ], + "source": [ + { + "id": 12, + "node": 0, + "status": 1, + "u_ref": 1.0040932314406164, + "u_ref_angle": 0.0, + "sk": 784932864.9515021, + "rx_ratio": 0.2557458512466301, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 13, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.984084685489495, + "x1": 1.4468247288728535, + "c1": 1.482597931846946e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 268.4677888199027 + }, + { + "id": 14, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.302185968006645, + "x1": 1.6368350747230536, + "c1": 2.6791084434471325e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 116.5674984869893 + }, + { + "id": 15, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.6274987122864064, + "x1": 1.5553253525071076, + "c1": 5.692400158763194e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 209.61462483073797 + }, + { + "id": 16, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 0.3539385989457505, + "x1": 1.0127601442445655, + "c1": 5.424425933927817e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 394.676195885492 + }, + { + "id": 17, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 3.667352872852296, + "x1": 4.015297669861147, + "c1": 4.144375921547606e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 108.36482981820626 + }, + { + "id": 18, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 3.6399744236163745, + "x1": 3.778315702557435, + "c1": 3.960633310698073e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 661.7064053514605 + }, + { + "id": 19, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 1.495253912014387, + "x1": 4.574467372234946, + "c1": 8.338068660983387e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 794.0433929912899 + }, + { + "id": 20, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 4.769575089454393, + "x1": 1.1642064815272697, + "c1": 5.452519325658608e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 734.0634649741698 + }, + { + "id": 21, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 4.007371187483012, + "x1": 1.9514005330023694, + "c1": 1.3854350249956825e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 630.0541379181279 + }, + { + "id": 22, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 0.5232092942005212, + "x1": 3.5267992860849713, + "c1": 6.954900599812741e-09, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 459.954863763231 + }, + { + "id": 23, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 2.3987723363240345, + "x1": 0.5989936932986578, + "c1": 4.801934199376975e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 505.06566546158433 + } + ], + "sym_load": [ + { + "id": 24, + "node": 1, + "status": 1, + "type": 2, + "p_specified": 73214.03351947584, + "q_specified": 7810.694426725335 + }, + { + "id": 25, + "node": 2, + "status": 1, + "type": 0, + "p_specified": -6804.489528221442, + "q_specified": -963.9696607503065 + }, + { + "id": 26, + "node": 6, + "status": 1, + "type": 1, + "p_specified": -19315.336207873363, + "q_specified": 4707.991953349943 + }, + { + "id": 27, + "node": 7, + "status": 1, + "type": 1, + "p_specified": -38337.60816250733, + "q_specified": 5310.041613180441 + }, + { + "id": 28, + "node": 8, + "status": 1, + "type": 1, + "p_specified": 37494.01862176065, + "q_specified": 5040.938916892066 + }, + { + "id": 29, + "node": 9, + "status": 1, + "type": 0, + "p_specified": -6256.438038056527, + "q_specified": -975.3752266690026 + }, + { + "id": 30, + "node": 11, + "status": 1, + "type": 2, + "p_specified": -45040.02470467108, + "q_specified": -8297.898601536052 + } + ], + "shunt": [ + { + "id": 31, + "node": 0, + "status": 1, + "g1": 2.85840599857917e-05, + "b1": -6.5920072322444195e-06, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_020.json b/tests/fuzzer/corpus_json/21_random_020.json new file mode 100644 index 0000000000..c43fb41610 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_020.json @@ -0,0 +1,345 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + }, + { + "id": 1, + "u_rated": 400.0 + }, + { + "id": 2, + "u_rated": 400.0 + }, + { + "id": 3, + "u_rated": 400.0 + }, + { + "id": 4, + "u_rated": 400.0 + }, + { + "id": 5, + "u_rated": 400.0 + }, + { + "id": 6, + "u_rated": 400.0 + }, + { + "id": 7, + "u_rated": 400.0 + }, + { + "id": 8, + "u_rated": 400.0 + }, + { + "id": 9, + "u_rated": 400.0 + }, + { + "id": 10, + "u_rated": 400.0 + }, + { + "id": 11, + "u_rated": 400.0 + }, + { + "id": 12, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 13, + "node": 0, + "status": 1, + "u_ref": 1.0271451739211979, + "u_ref_angle": 0.0, + "sk": 259901464.744228, + "rx_ratio": 0.4524728473332394, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 14, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 2.864703346246109, + "x1": 0.8468904356278495, + "c1": 4.1152306204095665e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 993.8996326495563 + }, + { + "id": 15, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.5162389995558997, + "x1": 1.5956957442464486, + "c1": 9.500391079535002e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 454.90674829380214 + }, + { + "id": 16, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.0432628616622148, + "x1": 1.5845199162279648, + "c1": 9.086358448961127e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 342.2131223637891 + }, + { + "id": 17, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 2.136858965930502, + "x1": 3.138419185498714, + "c1": 8.055850702646647e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 497.19244994881495 + }, + { + "id": 18, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 0.4073299171903466, + "x1": 2.8660497159750156, + "c1": 3.509715349835263e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 103.57972303713814 + }, + { + "id": 19, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 0.9516877030366244, + "x1": 3.4671911136966287, + "c1": 2.8347242105799495e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 693.3473119453715 + }, + { + "id": 20, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 0.816747234164068, + "x1": 0.5884844402107503, + "c1": 2.334472736383486e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 708.7258745105569 + }, + { + "id": 21, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 4.295563207610167, + "x1": 1.0983280678812823, + "c1": 2.3756936979303123e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 22.85028622357593 + }, + { + "id": 22, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 3.2242922342446705, + "x1": 1.5037303894533993, + "c1": 1.3687230419203698e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 650.4048229940181 + }, + { + "id": 23, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 2.9986677587514095, + "x1": 2.23694275716337, + "c1": 1.5301328839682216e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 642.2839559693975 + }, + { + "id": 24, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 2.7784465563597207, + "x1": 2.164505092677851, + "c1": 1.646715879870595e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 929.5458778713582 + }, + { + "id": 25, + "from_node": 11, + "to_node": 12, + "from_status": 1, + "to_status": 1, + "r1": 4.31585278812925, + "x1": 3.4490143926884294, + "c1": 9.96002337185831e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 584.5578737874639 + } + ], + "sym_load": [ + { + "id": 26, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 81360.91322852031, + "q_specified": -8963.33954937931 + }, + { + "id": 27, + "node": 2, + "status": 1, + "type": 0, + "p_specified": 98526.9698088259, + "q_specified": 6789.650929122239 + }, + { + "id": 28, + "node": 3, + "status": 1, + "type": 1, + "p_specified": -99600.03970560443, + "q_specified": 3029.3245313102743 + }, + { + "id": 29, + "node": 4, + "status": 1, + "type": 2, + "p_specified": -19580.84709564432, + "q_specified": -851.9015415983613 + }, + { + "id": 30, + "node": 8, + "status": 1, + "type": 1, + "p_specified": 11455.032726417397, + "q_specified": -9746.543307140128 + }, + { + "id": 31, + "node": 9, + "status": 1, + "type": 0, + "p_specified": -81347.48588088056, + "q_specified": -4853.770041063947 + }, + { + "id": 32, + "node": 10, + "status": 1, + "type": 2, + "p_specified": 56230.43224365852, + "q_specified": 3272.8813654662736 + }, + { + "id": 33, + "node": 12, + "status": 1, + "type": 2, + "p_specified": 1328.0417036699364, + "q_specified": -9756.932086264667 + } + ], + "shunt": [ + { + "id": 34, + "node": 0, + "status": 1, + "g1": 6.665721740181761e-05, + "b1": 5.459689939399276e-06, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_021.json b/tests/fuzzer/corpus_json/21_random_021.json new file mode 100644 index 0000000000..e6d9fc351b --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_021.json @@ -0,0 +1,98 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + }, + { + "id": 1, + "u_rated": 110000.0 + }, + { + "id": 2, + "u_rated": 110000.0 + }, + { + "id": 3, + "u_rated": 110000.0 + } + ], + "source": [ + { + "id": 4, + "node": 0, + "status": 1, + "u_ref": 1.0269999880809442, + "u_ref_angle": 0.0, + "sk": 689797947.5251456, + "rx_ratio": 0.2395502360287256, + "z01_ratio": 1.0 + }, + { + "id": 5, + "node": 3, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 792654094.8644264, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 6, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.039271509767138, + "x1": 2.5622811981879656, + "c1": 5.050841534700116e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 243.69579986124842 + }, + { + "id": 7, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.01590315305148582, + "x1": 1.855233458160539, + "c1": 5.853624971821242e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 78.5721155514782 + }, + { + "id": 8, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 3.9687551092848254, + "x1": 1.1612635821660984, + "c1": 2.3269495139955363e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 51.91206248467679 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_022.json b/tests/fuzzer/corpus_json/21_random_022.json new file mode 100644 index 0000000000..16f7737161 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_022.json @@ -0,0 +1,116 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + }, + { + "id": 1, + "u_rated": 400.0 + }, + { + "id": 2, + "u_rated": 400.0 + }, + { + "id": 3, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 4, + "node": 0, + "status": 1, + "u_ref": 1.099726130734583, + "u_ref_angle": 0.0, + "sk": 23713785.524111655, + "rx_ratio": 0.09212682285142654, + "z01_ratio": 1.0 + }, + { + "id": 5, + "node": 3, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 651456098.4338636, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 6, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1.7282241878128335, + "x1": 4.447754698979015, + "c1": 2.31741489986076e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 959.8902112183324 + }, + { + "id": 7, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.597259192768684, + "x1": 3.0057114429449827, + "c1": 9.320876043438781e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 688.4077647015237 + }, + { + "id": 8, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 4.619245843217186, + "x1": 3.5405749039197416, + "c1": 4.844033403057124e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 882.5537116907936 + } + ], + "sym_load": [ + { + "id": 9, + "node": 1, + "status": 1, + "type": 1, + "p_specified": -15696.277931134682, + "q_specified": -6389.3775865721 + }, + { + "id": 10, + "node": 2, + "status": 1, + "type": 2, + "p_specified": 87597.78101576085, + "q_specified": 5479.042825556135 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_023.json b/tests/fuzzer/corpus_json/21_random_023.json new file mode 100644 index 0000000000..e09c11204c --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_023.json @@ -0,0 +1,362 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + }, + { + "id": 5, + "u_rated": 10000.0 + }, + { + "id": 6, + "u_rated": 10000.0 + }, + { + "id": 7, + "u_rated": 10000.0 + }, + { + "id": 8, + "u_rated": 10000.0 + }, + { + "id": 9, + "u_rated": 10000.0 + }, + { + "id": 10, + "u_rated": 10000.0 + }, + { + "id": 11, + "u_rated": 10000.0 + }, + { + "id": 12, + "u_rated": 10000.0 + }, + { + "id": 13, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 14, + "node": 0, + "status": 1, + "u_ref": 0.9167101353661368, + "u_ref_angle": 0.0, + "sk": 892444100.7141745, + "rx_ratio": 0.29601361344286764, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 15, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 2.6504400505900323, + "x1": 0.6515147062374027, + "c1": 1.9199715753929268e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 450.12783813428285 + }, + { + "id": 16, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.1051958657860954, + "x1": 2.275164794238582, + "c1": 2.4766967489568525e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 94.91634541348864 + }, + { + "id": 17, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 3.5500410012245505, + "x1": 2.1062418080709704, + "c1": 5.126339243923559e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 736.8669879956606 + }, + { + "id": 18, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 1.7949817989309986, + "x1": 0.2877726482460924, + "c1": 7.831023561605041e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 593.2322479442848 + }, + { + "id": 19, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 3.289563550499477, + "x1": 3.1049572756903348, + "c1": 9.70735227578957e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 369.16459329332736 + }, + { + "id": 20, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 3.798933061217655, + "x1": 1.8434190738410339, + "c1": 5.720467811917808e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 663.9267881578148 + }, + { + "id": 21, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 1.5719555531809326, + "x1": 0.4286806216193567, + "c1": 4.740664227130393e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 720.7348637152711 + }, + { + "id": 22, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 2.953048489670851, + "x1": 2.2372577963666718, + "c1": 6.423784655599654e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 190.20892382424827 + }, + { + "id": 23, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 0.8926997532541558, + "x1": 1.6170617443833002, + "c1": 8.158734926586414e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 203.65177427586102 + }, + { + "id": 24, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 0.5715060264739069, + "x1": 0.493020989974679, + "c1": 3.8933169603423075e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 282.8088168851508 + }, + { + "id": 25, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 2.864109474442189, + "x1": 4.103315904362622, + "c1": 3.308048479932988e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 375.9573926860382 + }, + { + "id": 26, + "from_node": 11, + "to_node": 12, + "from_status": 1, + "to_status": 1, + "r1": 1.4424216204194806, + "x1": 1.523937169259015, + "c1": 7.775824997926371e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 553.5035352119228 + }, + { + "id": 27, + "from_node": 12, + "to_node": 13, + "from_status": 1, + "to_status": 1, + "r1": 1.292092619446414, + "x1": 0.5356361575295127, + "c1": 7.838090667083399e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 710.072019674854 + } + ], + "sym_load": [ + { + "id": 28, + "node": 2, + "status": 1, + "type": 2, + "p_specified": -71509.98276659375, + "q_specified": 4906.280427082736 + }, + { + "id": 29, + "node": 3, + "status": 1, + "type": 1, + "p_specified": -66548.04878039153, + "q_specified": 9500.129376914974 + }, + { + "id": 30, + "node": 4, + "status": 1, + "type": 1, + "p_specified": -21323.62570857584, + "q_specified": -6748.606590991726 + }, + { + "id": 31, + "node": 5, + "status": 1, + "type": 0, + "p_specified": 94747.12941378701, + "q_specified": 6099.274715862564 + }, + { + "id": 32, + "node": 7, + "status": 1, + "type": 1, + "p_specified": 49802.87267687119, + "q_specified": -3077.148941760006 + }, + { + "id": 33, + "node": 9, + "status": 1, + "type": 0, + "p_specified": -92601.3125838681, + "q_specified": -4713.663389391037 + }, + { + "id": 34, + "node": 10, + "status": 1, + "type": 1, + "p_specified": 90090.7371873316, + "q_specified": -5680.977837494914 + }, + { + "id": 35, + "node": 11, + "status": 1, + "type": 2, + "p_specified": 29900.62858116618, + "q_specified": 3812.1905242872726 + }, + { + "id": 36, + "node": 12, + "status": 1, + "type": 0, + "p_specified": -49387.52934335007, + "q_specified": -1564.9679057403391 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_024.json b/tests/fuzzer/corpus_json/21_random_024.json new file mode 100644 index 0000000000..7bc6e8b033 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_024.json @@ -0,0 +1,320 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + }, + { + "id": 1, + "u_rated": 110000.0 + }, + { + "id": 2, + "u_rated": 110000.0 + }, + { + "id": 3, + "u_rated": 110000.0 + }, + { + "id": 4, + "u_rated": 110000.0 + }, + { + "id": 5, + "u_rated": 110000.0 + }, + { + "id": 6, + "u_rated": 110000.0 + }, + { + "id": 7, + "u_rated": 110000.0 + }, + { + "id": 8, + "u_rated": 110000.0 + }, + { + "id": 9, + "u_rated": 110000.0 + }, + { + "id": 10, + "u_rated": 110000.0 + }, + { + "id": 11, + "u_rated": 110000.0 + }, + { + "id": 12, + "u_rated": 110000.0 + } + ], + "source": [ + { + "id": 13, + "node": 0, + "status": 1, + "u_ref": 0.9365183773909035, + "u_ref_angle": 0.0, + "sk": 839815756.3382422, + "rx_ratio": 0.49914131375897536, + "z01_ratio": 1.0 + }, + { + "id": 14, + "node": 12, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 670919641.5929717, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 15, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.4589330667959618, + "x1": 3.7886849045285236, + "c1": 1.5130025749194376e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 709.4990424106853 + }, + { + "id": 16, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 3.622246642491959, + "x1": 3.8297139112916456, + "c1": 4.4137775501430253e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 867.1146703050917 + }, + { + "id": 17, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 4.939544746100043, + "x1": 0.5779688070777927, + "c1": 5.168944758821384e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 958.5792278229961 + }, + { + "id": 18, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 3.6957478465592546, + "x1": 2.2210365042780555, + "c1": 3.046009801310218e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 953.5009146867538 + }, + { + "id": 19, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 0.4255919787000878, + "x1": 3.8027797361429267, + "c1": 8.432547570122004e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 166.12352352136105 + }, + { + "id": 20, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 1.6343530997720275, + "x1": 1.5267909718489707, + "c1": 5.420861441566242e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 373.3273998212024 + }, + { + "id": 21, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 4.468453564988792, + "x1": 4.6231610780108285, + "c1": 3.161683554867636e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 895.8320899723517 + }, + { + "id": 22, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 0.3480521332762565, + "x1": 0.4845250862084255, + "c1": 6.651303067540132e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 801.0803934291189 + }, + { + "id": 23, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 4.09575212179523, + "x1": 4.959889966604955, + "c1": 8.597267440269967e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 273.748029072858 + }, + { + "id": 24, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 3.7139253420335128, + "x1": 4.623269036340571, + "c1": 9.359477144755657e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 499.4824879380235 + }, + { + "id": 25, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 0.7713879888067554, + "x1": 0.7155021028316794, + "c1": 4.795515775525989e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 673.6773367098242 + }, + { + "id": 26, + "from_node": 11, + "to_node": 12, + "from_status": 1, + "to_status": 1, + "r1": 4.868786475936881, + "x1": 0.6567447809812826, + "c1": 5.054452513111754e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 997.3916540574412 + } + ], + "sym_load": [ + { + "id": 27, + "node": 2, + "status": 1, + "type": 0, + "p_specified": -83094.09822379467, + "q_specified": -7267.51964375989 + }, + { + "id": 28, + "node": 3, + "status": 1, + "type": 2, + "p_specified": 29738.50552797057, + "q_specified": -2174.665152050501 + }, + { + "id": 29, + "node": 5, + "status": 1, + "type": 1, + "p_specified": -27492.276084979618, + "q_specified": -3484.99756298575 + }, + { + "id": 30, + "node": 9, + "status": 1, + "type": 0, + "p_specified": 81020.33342617736, + "q_specified": -9324.840149617337 + }, + { + "id": 31, + "node": 12, + "status": 1, + "type": 0, + "p_specified": -92505.17624394248, + "q_specified": 9784.904320237172 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_025.json b/tests/fuzzer/corpus_json/21_random_025.json new file mode 100644 index 0000000000..d5ce424ab8 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_025.json @@ -0,0 +1,220 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 230.0 + }, + { + "id": 1, + "u_rated": 230.0 + }, + { + "id": 2, + "u_rated": 230.0 + }, + { + "id": 3, + "u_rated": 230.0 + }, + { + "id": 4, + "u_rated": 230.0 + }, + { + "id": 5, + "u_rated": 230.0 + }, + { + "id": 6, + "u_rated": 230.0 + }, + { + "id": 7, + "u_rated": 230.0 + } + ], + "source": [ + { + "id": 8, + "node": 0, + "status": 1, + "u_ref": 1.0743416224490876, + "u_ref_angle": 0.0, + "sk": 214124365.3750482, + "rx_ratio": 0.3182308728753458, + "z01_ratio": 1.0 + }, + { + "id": 9, + "node": 7, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 952976762.9184464, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 10, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1.2784183410823358, + "x1": 1.5295049013472202, + "c1": 4.240801565062292e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 592.6288738850069 + }, + { + "id": 11, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.621958247419368, + "x1": 3.433386524356115, + "c1": 8.322405233765762e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 517.1958599526236 + }, + { + "id": 12, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 3.972304088817473, + "x1": 3.124899801444396, + "c1": 8.248125234140684e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 189.12939655257645 + }, + { + "id": 13, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 1.7933866573029351, + "x1": 2.3469719113652374, + "c1": 1.0398413153970209e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 973.3753929676224 + }, + { + "id": 14, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 3.1801476209631963, + "x1": 0.49112895878220597, + "c1": 5.827761542521051e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 420.28171941401564 + }, + { + "id": 15, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 0.9469819693315795, + "x1": 0.8046624667435531, + "c1": 4.6074351722343176e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 79.66615162355312 + }, + { + "id": 16, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 2.8153890397158676, + "x1": 2.574639120539862, + "c1": 1.2707991696432463e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 876.4095295107842 + } + ], + "sym_load": [ + { + "id": 17, + "node": 1, + "status": 1, + "type": 0, + "p_specified": -84537.58833232782, + "q_specified": 1638.098243000435 + }, + { + "id": 18, + "node": 4, + "status": 1, + "type": 1, + "p_specified": 22268.4733640123, + "q_specified": 3077.566248586567 + }, + { + "id": 19, + "node": 5, + "status": 1, + "type": 1, + "p_specified": -43430.1716547518, + "q_specified": -9045.204224111114 + }, + { + "id": 20, + "node": 6, + "status": 1, + "type": 1, + "p_specified": 25765.23865272368, + "q_specified": -855.3150268701265 + }, + { + "id": 21, + "node": 7, + "status": 1, + "type": 0, + "p_specified": -14158.847007063072, + "q_specified": 1524.524740942832 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_026.json b/tests/fuzzer/corpus_json/21_random_026.json new file mode 100644 index 0000000000..b99941c0f8 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_026.json @@ -0,0 +1,323 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + }, + { + "id": 1, + "u_rated": 400.0 + }, + { + "id": 2, + "u_rated": 400.0 + }, + { + "id": 3, + "u_rated": 400.0 + }, + { + "id": 4, + "u_rated": 400.0 + }, + { + "id": 5, + "u_rated": 400.0 + }, + { + "id": 6, + "u_rated": 400.0 + }, + { + "id": 7, + "u_rated": 400.0 + }, + { + "id": 8, + "u_rated": 400.0 + }, + { + "id": 9, + "u_rated": 400.0 + }, + { + "id": 10, + "u_rated": 400.0 + }, + { + "id": 11, + "u_rated": 400.0 + }, + { + "id": 12, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 13, + "node": 0, + "status": 1, + "u_ref": 0.9864915722619849, + "u_ref_angle": 0.0, + "sk": 659521367.3192123, + "rx_ratio": 0.2720071899025041, + "z01_ratio": 1.0 + }, + { + "id": 14, + "node": 12, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 951175310.7893071, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 15, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 2.386269310181449, + "x1": 3.6508561552835603, + "c1": 6.234095134044994e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 179.90130066193092 + }, + { + "id": 16, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 2.147990463440591, + "x1": 1.2122488761975436, + "c1": 7.477376044477572e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 720.0488840468378 + }, + { + "id": 17, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.009718656029717, + "x1": 3.4624937911240385, + "c1": 8.559337558507294e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 669.9934618809489 + }, + { + "id": 18, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.271105498905543, + "x1": 0.7210163447786627, + "c1": 2.1649359611762963e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 488.348155919242 + }, + { + "id": 19, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 3.8263588755083755, + "x1": 1.9434007392927533, + "c1": 2.436455028331983e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 588.3080443030801 + }, + { + "id": 20, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 0.15191245706774603, + "x1": 3.6850814258105995, + "c1": 8.44671529110583e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 541.3259595863019 + }, + { + "id": 21, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 2.5474950314994063, + "x1": 3.2219366359595143, + "c1": 4.643311023723887e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 660.835420530379 + }, + { + "id": 22, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 1.5680773115137825, + "x1": 1.595927061555527, + "c1": 6.660896943766852e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 437.6913691227798 + }, + { + "id": 23, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 3.4653842151437546, + "x1": 0.28101745549177826, + "c1": 9.50981305916186e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 205.40240712728126 + }, + { + "id": 24, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 3.121153801095049, + "x1": 4.334556439074238, + "c1": 6.071251669400935e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 164.42992052679995 + }, + { + "id": 25, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 0.49713079165260743, + "x1": 0.6291410157433758, + "c1": 5.486545764959769e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 781.3682974450386 + }, + { + "id": 26, + "from_node": 11, + "to_node": 12, + "from_status": 1, + "to_status": 1, + "r1": 0.235053502274718, + "x1": 1.0902177307742855, + "c1": 5.96168374874849e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 991.3059164623364 + } + ], + "sym_load": [ + { + "id": 27, + "node": 3, + "status": 1, + "type": 1, + "p_specified": 56748.03710732685, + "q_specified": 8844.340953301657 + }, + { + "id": 28, + "node": 5, + "status": 1, + "type": 0, + "p_specified": -29542.317843045326, + "q_specified": 3509.267157267812 + }, + { + "id": 29, + "node": 9, + "status": 1, + "type": 2, + "p_specified": 55080.17086860846, + "q_specified": 8257.178616813075 + }, + { + "id": 30, + "node": 11, + "status": 1, + "type": 1, + "p_specified": 20609.613344179626, + "q_specified": 4219.99365572567 + } + ], + "shunt": [ + { + "id": 31, + "node": 0, + "status": 1, + "g1": 8.153762837802448e-07, + "b1": -7.769230161245698e-05, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_027.json b/tests/fuzzer/corpus_json/21_random_027.json new file mode 100644 index 0000000000..8948e25ab8 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_027.json @@ -0,0 +1,324 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + }, + { + "id": 1, + "u_rated": 110000.0 + }, + { + "id": 2, + "u_rated": 110000.0 + }, + { + "id": 3, + "u_rated": 110000.0 + }, + { + "id": 4, + "u_rated": 110000.0 + }, + { + "id": 5, + "u_rated": 110000.0 + }, + { + "id": 6, + "u_rated": 110000.0 + }, + { + "id": 7, + "u_rated": 110000.0 + }, + { + "id": 8, + "u_rated": 110000.0 + }, + { + "id": 9, + "u_rated": 110000.0 + }, + { + "id": 10, + "u_rated": 110000.0 + }, + { + "id": 11, + "u_rated": 110000.0 + } + ], + "source": [ + { + "id": 12, + "node": 0, + "status": 1, + "u_ref": 1.0914094005316137, + "u_ref_angle": 0.0, + "sk": 701399404.0145779, + "rx_ratio": 0.09820155454408014, + "z01_ratio": 1.0 + }, + { + "id": 13, + "node": 11, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 824275004.2409434, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 14, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1.665333258096603, + "x1": 1.8618735981789163, + "c1": 8.148658231116957e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 191.501421968344 + }, + { + "id": 15, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 4.548407243185854, + "x1": 2.455847480198064, + "c1": 7.13372135887923e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 918.6342433928634 + }, + { + "id": 16, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 2.864992568427145, + "x1": 0.3936606128065251, + "c1": 8.385794417948504e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 777.0669053027603 + }, + { + "id": 17, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 3.7008464356032054, + "x1": 3.287641012649326, + "c1": 9.92705228550068e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 21.982506115491297 + }, + { + "id": 18, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 4.8721551454089145, + "x1": 3.213740418795897, + "c1": 2.529389570469289e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 616.3195432782549 + }, + { + "id": 19, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 1.6891614574947, + "x1": 3.251571440229992, + "c1": 7.042470709570998e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 528.9913186398268 + }, + { + "id": 20, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 0.4936917862189094, + "x1": 1.95970444947279, + "c1": 3.020359494640535e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 751.9169714142926 + }, + { + "id": 21, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 4.656134174673816, + "x1": 3.8782663896618264, + "c1": 5.304840660461477e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 178.48042394948294 + }, + { + "id": 22, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 3.537696493849769, + "x1": 1.3252871312306735, + "c1": 9.972961995819602e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 181.18023340203604 + }, + { + "id": 23, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 4.841191122319946, + "x1": 0.07524465963504645, + "c1": 7.797109123410145e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 352.893859824357 + }, + { + "id": 24, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 2.8703809371092537, + "x1": 2.079059819317757, + "c1": 3.0791613457067413e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 443.30817650040103 + } + ], + "sym_load": [ + { + "id": 25, + "node": 2, + "status": 1, + "type": 1, + "p_specified": -68604.09709597424, + "q_specified": -4691.927704556516 + }, + { + "id": 26, + "node": 3, + "status": 1, + "type": 2, + "p_specified": -87703.92311013927, + "q_specified": -5015.107665962635 + }, + { + "id": 27, + "node": 4, + "status": 1, + "type": 2, + "p_specified": -2172.8119914009585, + "q_specified": -8171.045283289471 + }, + { + "id": 28, + "node": 5, + "status": 1, + "type": 0, + "p_specified": -21383.963013083543, + "q_specified": 2719.190584765616 + }, + { + "id": 29, + "node": 6, + "status": 1, + "type": 2, + "p_specified": 39068.15899840114, + "q_specified": -8351.976826813905 + }, + { + "id": 30, + "node": 7, + "status": 1, + "type": 1, + "p_specified": 2643.813367713912, + "q_specified": 1717.0017991202458 + }, + { + "id": 31, + "node": 9, + "status": 1, + "type": 1, + "p_specified": 10854.258451792906, + "q_specified": 7890.637065259718 + }, + { + "id": 32, + "node": 11, + "status": 1, + "type": 0, + "p_specified": -25422.698561637677, + "q_specified": -6207.164630865949 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_028.json b/tests/fuzzer/corpus_json/21_random_028.json new file mode 100644 index 0000000000..4e2ff8b1ce --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_028.json @@ -0,0 +1,89 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + }, + { + "id": 1, + "u_rated": 400.0 + }, + { + "id": 2, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 3, + "node": 0, + "status": 1, + "u_ref": 1.0424183475644073, + "u_ref_angle": 0.0, + "sk": 545700950.2180007, + "rx_ratio": 0.11320330251938371, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 4, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 3.818286933659314, + "x1": 1.0546080847579664, + "c1": 1.4431594604013263e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 171.24521288157464 + }, + { + "id": 5, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 4.776060437079602, + "x1": 3.0320116947437152, + "c1": 2.012279259249301e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 412.92946850872204 + } + ], + "sym_load": [ + { + "id": 6, + "node": 1, + "status": 1, + "type": 1, + "p_specified": 96948.0006365208, + "q_specified": -3708.896980207037 + } + ], + "shunt": [ + { + "id": 7, + "node": 0, + "status": 1, + "g1": 9.04000043368862e-05, + "b1": 1.2907006140447082e-06, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_029.json b/tests/fuzzer/corpus_json/21_random_029.json new file mode 100644 index 0000000000..673f7900d0 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_029.json @@ -0,0 +1,242 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 230.0 + }, + { + "id": 1, + "u_rated": 230.0 + }, + { + "id": 2, + "u_rated": 230.0 + }, + { + "id": 3, + "u_rated": 230.0 + }, + { + "id": 4, + "u_rated": 230.0 + }, + { + "id": 5, + "u_rated": 230.0 + }, + { + "id": 6, + "u_rated": 230.0 + }, + { + "id": 7, + "u_rated": 230.0 + }, + { + "id": 8, + "u_rated": 230.0 + }, + { + "id": 9, + "u_rated": 230.0 + } + ], + "source": [ + { + "id": 10, + "node": 0, + "status": 1, + "u_ref": 1.0689702177133256, + "u_ref_angle": 0.0, + "sk": 345897240.15572107, + "rx_ratio": 0.1442987177026716, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 11, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1.7190713954312908, + "x1": 2.077469640174961, + "c1": 9.738587963010672e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 112.69536218752054 + }, + { + "id": 12, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 2.223516428924986, + "x1": 1.1240378321362372, + "c1": 3.4956656460106914e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 998.7527094253234 + }, + { + "id": 13, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.6464948250895088, + "x1": 3.038888929123738, + "c1": 4.1961686936080477e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 733.149083162459 + }, + { + "id": 14, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 2.2360375887560884, + "x1": 0.8521789394113244, + "c1": 4.339126928458493e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 413.97952234395524 + }, + { + "id": 15, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 3.963587942860488, + "x1": 2.8130322517268, + "c1": 1.9640127974473076e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 677.1067602053752 + }, + { + "id": 16, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 1.4918770744754062, + "x1": 2.559454059246462, + "c1": 2.198562608566158e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 416.6469491201631 + }, + { + "id": 17, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 3.930565695185085, + "x1": 2.578519141066063, + "c1": 7.523228772512508e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 759.1721486770637 + }, + { + "id": 18, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 2.9354673142718584, + "x1": 3.225801679171682, + "c1": 3.9728674904228456e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 621.7724902924887 + }, + { + "id": 19, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 3.886192064556159, + "x1": 0.4959183831163244, + "c1": 9.37629885149392e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 373.56506577793186 + } + ], + "sym_load": [ + { + "id": 20, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 37713.5132859289, + "q_specified": 6039.072881529615 + }, + { + "id": 21, + "node": 2, + "status": 1, + "type": 0, + "p_specified": -16982.283256675742, + "q_specified": 3106.9300213459464 + }, + { + "id": 22, + "node": 3, + "status": 1, + "type": 2, + "p_specified": 31874.975794099475, + "q_specified": -3579.5905075251785 + }, + { + "id": 23, + "node": 9, + "status": 1, + "type": 1, + "p_specified": -96956.92066504486, + "q_specified": 5100.90113012142 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_030.json b/tests/fuzzer/corpus_json/21_random_030.json new file mode 100644 index 0000000000..5fd1983995 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_030.json @@ -0,0 +1,242 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + }, + { + "id": 5, + "u_rated": 10000.0 + }, + { + "id": 6, + "u_rated": 10000.0 + }, + { + "id": 7, + "u_rated": 10000.0 + }, + { + "id": 8, + "u_rated": 10000.0 + }, + { + "id": 9, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 10, + "node": 0, + "status": 1, + "u_ref": 1.0243752101862964, + "u_ref_angle": 0.0, + "sk": 611042239.1804597, + "rx_ratio": 0.41352682638916627, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 11, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 0.24237999309592917, + "x1": 1.8808954820624795, + "c1": 1.3407121590384252e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 90.50429081110418 + }, + { + "id": 12, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.03803338831234737, + "x1": 2.6117935401414325, + "c1": 9.324003103574777e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 35.592228784551075 + }, + { + "id": 13, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 4.999475000795014, + "x1": 4.542684176635098, + "c1": 8.160995140638553e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 535.5157649389508 + }, + { + "id": 14, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 2.008895127928596, + "x1": 4.159421535373621, + "c1": 3.4840049993399356e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 883.2492537569606 + }, + { + "id": 15, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 2.0070572578724493, + "x1": 1.2430896910017086, + "c1": 5.628178393242486e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 287.00215835408585 + }, + { + "id": 16, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 2.144117190154361, + "x1": 0.477434123825049, + "c1": 2.7842980354072753e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 566.6612922118893 + }, + { + "id": 17, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 4.849858623435721, + "x1": 3.0673176979441346, + "c1": 9.33746139028624e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 138.0518288243671 + }, + { + "id": 18, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 1.5431138454778859, + "x1": 1.5586220939468654, + "c1": 5.069971314098125e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 146.95472464555044 + }, + { + "id": 19, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 3.496917013623379, + "x1": 0.5926189858330422, + "c1": 2.8744328094468917e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 917.2378573745535 + } + ], + "sym_load": [ + { + "id": 20, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 4748.497371468853, + "q_specified": -6272.626299854518 + }, + { + "id": 21, + "node": 3, + "status": 1, + "type": 2, + "p_specified": 89692.56629385237, + "q_specified": 400.3687706071996 + }, + { + "id": 22, + "node": 4, + "status": 1, + "type": 2, + "p_specified": 88968.76588869447, + "q_specified": -514.9239483312631 + }, + { + "id": 23, + "node": 5, + "status": 1, + "type": 1, + "p_specified": -49266.249566380524, + "q_specified": -4888.0246439038765 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_031.json b/tests/fuzzer/corpus_json/21_random_031.json new file mode 100644 index 0000000000..825362b93e --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_031.json @@ -0,0 +1,69 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + }, + { + "id": 1, + "u_rated": 110000.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 0.9785674723101485, + "u_ref_angle": 0.0, + "sk": 112487621.19412775, + "rx_ratio": 0.3419321367266335, + "z01_ratio": 1.0 + }, + { + "id": 3, + "node": 1, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 112532318.50310135, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 4, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1.1590117853697512, + "x1": 3.787962426975058, + "c1": 1.474012209602784e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 743.248646950606 + } + ], + "shunt": [ + { + "id": 5, + "node": 0, + "status": 1, + "g1": 5.356617475477887e-05, + "b1": -1.0449814012543278e-05, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_032.json b/tests/fuzzer/corpus_json/21_random_032.json new file mode 100644 index 0000000000..f1c57e2e48 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_032.json @@ -0,0 +1,88 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + }, + { + "id": 1, + "u_rated": 400.0 + }, + { + "id": 2, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 3, + "node": 0, + "status": 1, + "u_ref": 1.039670793563446, + "u_ref_angle": 0.0, + "sk": 144730602.82094792, + "rx_ratio": 0.11889748087619428, + "z01_ratio": 1.0 + }, + { + "id": 4, + "node": 2, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 38646418.30344002, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 5, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1.6236018951582554, + "x1": 1.6517054976177559, + "c1": 5.7062473317975533e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 693.6616189424227 + }, + { + "id": 6, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 4.963303017683332, + "x1": 2.3438547689825544, + "c1": 6.012122705634391e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 546.9854789056965 + } + ], + "sym_load": [ + { + "id": 7, + "node": 2, + "status": 1, + "type": 1, + "p_specified": 46136.83040886195, + "q_specified": 6856.83909102753 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_033.json b/tests/fuzzer/corpus_json/21_random_033.json new file mode 100644 index 0000000000..00622472b6 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_033.json @@ -0,0 +1,278 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + }, + { + "id": 1, + "u_rated": 400.0 + }, + { + "id": 2, + "u_rated": 400.0 + }, + { + "id": 3, + "u_rated": 400.0 + }, + { + "id": 4, + "u_rated": 400.0 + }, + { + "id": 5, + "u_rated": 400.0 + }, + { + "id": 6, + "u_rated": 400.0 + }, + { + "id": 7, + "u_rated": 400.0 + }, + { + "id": 8, + "u_rated": 400.0 + }, + { + "id": 9, + "u_rated": 400.0 + }, + { + "id": 10, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 11, + "node": 0, + "status": 1, + "u_ref": 1.0634007719766547, + "u_ref_angle": 0.0, + "sk": 632269772.2792207, + "rx_ratio": 0.1386454272231724, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 12, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.454054777796406, + "x1": 4.54414261606934, + "c1": 1.865125594975845e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 655.209838346751 + }, + { + "id": 13, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 3.085586389284836, + "x1": 2.5169691935552367, + "c1": 9.661979651974596e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 532.983562619652 + }, + { + "id": 14, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 2.2262704850064425, + "x1": 4.717805783186785, + "c1": 6.356198271421528e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 308.2815119596683 + }, + { + "id": 15, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 1.5462970926702653, + "x1": 2.480502832638317, + "c1": 5.259804236206777e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 611.5058793965236 + }, + { + "id": 16, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 3.6792730419794233, + "x1": 2.130709060104163, + "c1": 8.465878686344782e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 928.7047000696288 + }, + { + "id": 17, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 2.77803986388299, + "x1": 3.406763011426437, + "c1": 1.1725731093115698e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 65.45935888677423 + }, + { + "id": 18, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 4.900112110661477, + "x1": 1.4222005380395748, + "c1": 2.1336270861708095e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 897.6947208908629 + }, + { + "id": 19, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 3.749095699408942, + "x1": 0.6159143393304722, + "c1": 3.216711414573171e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 250.25144657243493 + }, + { + "id": 20, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 1.3635296493808702, + "x1": 0.031864432762268025, + "c1": 5.246836368628076e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 311.2991758398461 + }, + { + "id": 21, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 1.971047088095634, + "x1": 0.927180785216804, + "c1": 1.1008489041914825e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 42.58548744717719 + } + ], + "sym_load": [ + { + "id": 22, + "node": 3, + "status": 1, + "type": 0, + "p_specified": -87335.3285358107, + "q_specified": -8134.695422701128 + }, + { + "id": 23, + "node": 5, + "status": 1, + "type": 1, + "p_specified": -44919.14309834244, + "q_specified": -5942.104776638715 + }, + { + "id": 24, + "node": 6, + "status": 1, + "type": 2, + "p_specified": -22290.315541923817, + "q_specified": 1953.2159676373376 + }, + { + "id": 25, + "node": 8, + "status": 1, + "type": 1, + "p_specified": 57032.242210125754, + "q_specified": -3839.868532701341 + }, + { + "id": 26, + "node": 9, + "status": 1, + "type": 1, + "p_specified": -24046.125443027995, + "q_specified": 5157.586601451934 + }, + { + "id": 27, + "node": 10, + "status": 1, + "type": 2, + "p_specified": 74545.59541313312, + "q_specified": -9703.461388211634 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_034.json b/tests/fuzzer/corpus_json/21_random_034.json new file mode 100644 index 0000000000..ddfecd40fc --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_034.json @@ -0,0 +1,250 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + }, + { + "id": 5, + "u_rated": 10000.0 + }, + { + "id": 6, + "u_rated": 10000.0 + }, + { + "id": 7, + "u_rated": 10000.0 + }, + { + "id": 8, + "u_rated": 10000.0 + }, + { + "id": 9, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 10, + "node": 0, + "status": 1, + "u_ref": 1.0686652410467152, + "u_ref_angle": 0.0, + "sk": 585788280.0643867, + "rx_ratio": 0.44932232063229655, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 11, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1.8234790099625382, + "x1": 4.744202199003435, + "c1": 4.2407453026989136e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 313.12192773612264 + }, + { + "id": 12, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.4726644822973275, + "x1": 2.558390603308931, + "c1": 1.5482334864507364e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 281.48727069500154 + }, + { + "id": 13, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 3.052926734144545, + "x1": 3.881887315025601, + "c1": 7.52661321489852e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 95.53915033650213 + }, + { + "id": 14, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 0.30616620068263156, + "x1": 1.2760843612185742, + "c1": 5.519603394340749e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 840.4552445496158 + }, + { + "id": 15, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 4.00232573549223, + "x1": 4.668750098599109, + "c1": 5.887922858710344e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 640.3227169581254 + }, + { + "id": 16, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 1.45978623560084, + "x1": 1.5692605902548933, + "c1": 2.060033489250864e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 539.9255753115661 + }, + { + "id": 17, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 3.036278453883932, + "x1": 2.8659623383853767, + "c1": 3.919817994793331e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 429.6597264243715 + }, + { + "id": 18, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 1.2422274680457013, + "x1": 4.07594088881976, + "c1": 5.810433601682314e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 751.2093276093694 + }, + { + "id": 19, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 4.058160537648543, + "x1": 1.4041924258665495, + "c1": 1.1702966378038937e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 290.0642557765577 + } + ], + "sym_load": [ + { + "id": 20, + "node": 3, + "status": 1, + "type": 1, + "p_specified": -9771.77639990687, + "q_specified": 8148.727281431125 + }, + { + "id": 21, + "node": 4, + "status": 1, + "type": 1, + "p_specified": -15985.518894393055, + "q_specified": -761.8738170487886 + }, + { + "id": 22, + "node": 5, + "status": 1, + "type": 1, + "p_specified": -71970.28959713345, + "q_specified": -6862.938955996187 + }, + { + "id": 23, + "node": 6, + "status": 1, + "type": 1, + "p_specified": 3412.7505188032956, + "q_specified": 1692.6109082394123 + }, + { + "id": 24, + "node": 7, + "status": 1, + "type": 0, + "p_specified": -18437.153185578412, + "q_specified": 6932.831899738761 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_035.json b/tests/fuzzer/corpus_json/21_random_035.json new file mode 100644 index 0000000000..0ec3b3770b --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_035.json @@ -0,0 +1,276 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + }, + { + "id": 5, + "u_rated": 10000.0 + }, + { + "id": 6, + "u_rated": 10000.0 + }, + { + "id": 7, + "u_rated": 10000.0 + }, + { + "id": 8, + "u_rated": 10000.0 + }, + { + "id": 9, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 10, + "node": 0, + "status": 1, + "u_ref": 1.0494613458819209, + "u_ref_angle": 0.0, + "sk": 750565896.2906321, + "rx_ratio": 0.43252256197500494, + "z01_ratio": 1.0 + }, + { + "id": 11, + "node": 9, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 965575906.1181794, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 12, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 2.8337001451034567, + "x1": 3.736945484792949, + "c1": 7.548983161359918e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 929.9074611214331 + }, + { + "id": 13, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.370561109963719, + "x1": 1.8331090660919331, + "c1": 7.173445069748814e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 589.4436935443799 + }, + { + "id": 14, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 3.751839365687701, + "x1": 1.821453236364604, + "c1": 9.552362077987965e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 21.163203088189057 + }, + { + "id": 15, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 3.608409520062703, + "x1": 1.872736280077535, + "c1": 2.521939084626412e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 678.3330700636755 + }, + { + "id": 16, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 0.2578882509235392, + "x1": 1.1732579387643867, + "c1": 3.2498596667246203e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 165.47345278687231 + }, + { + "id": 17, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 0.82071310151965, + "x1": 0.3680744945432607, + "c1": 8.460857895108203e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 92.22860195503182 + }, + { + "id": 18, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 0.8040490961278601, + "x1": 0.3849908215627018, + "c1": 9.094209755212598e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 550.4025117593603 + }, + { + "id": 19, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 4.112415479141898, + "x1": 4.862312965661414, + "c1": 4.952532747608908e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 400.98140293856596 + }, + { + "id": 20, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 1.9446036605402195, + "x1": 1.3232239997427104, + "c1": 5.947565493705971e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 966.6268792125207 + } + ], + "sym_load": [ + { + "id": 21, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 77793.86017649391, + "q_specified": 6601.7534009455885 + }, + { + "id": 22, + "node": 3, + "status": 1, + "type": 0, + "p_specified": -85317.96875988258, + "q_specified": -1876.538417762621 + }, + { + "id": 23, + "node": 4, + "status": 1, + "type": 1, + "p_specified": 36157.02093777046, + "q_specified": -4805.240495477155 + }, + { + "id": 24, + "node": 5, + "status": 1, + "type": 0, + "p_specified": -50687.9839511444, + "q_specified": 1590.1955684172026 + }, + { + "id": 25, + "node": 6, + "status": 1, + "type": 2, + "p_specified": -84115.04463173119, + "q_specified": -7674.442984293583 + }, + { + "id": 26, + "node": 8, + "status": 1, + "type": 2, + "p_specified": 78517.52860162503, + "q_specified": 2293.5601497944463 + }, + { + "id": 27, + "node": 9, + "status": 1, + "type": 1, + "p_specified": 735.17237446949, + "q_specified": 5002.8562792046505 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_036.json b/tests/fuzzer/corpus_json/21_random_036.json new file mode 100644 index 0000000000..72ddad9e8c --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_036.json @@ -0,0 +1,166 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 230.0 + }, + { + "id": 1, + "u_rated": 230.0 + }, + { + "id": 2, + "u_rated": 230.0 + }, + { + "id": 3, + "u_rated": 230.0 + }, + { + "id": 4, + "u_rated": 230.0 + }, + { + "id": 5, + "u_rated": 230.0 + }, + { + "id": 6, + "u_rated": 230.0 + } + ], + "source": [ + { + "id": 7, + "node": 0, + "status": 1, + "u_ref": 1.0918495070954692, + "u_ref_angle": 0.0, + "sk": 983215595.1846204, + "rx_ratio": 0.4591622200212863, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 8, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 4.375333118386357, + "x1": 0.0020138734027191907, + "c1": 6.269890530143344e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 255.16621929943935 + }, + { + "id": 9, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 3.652222292585483, + "x1": 2.1619472788465672, + "c1": 5.600881671017947e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 547.3473146332169 + }, + { + "id": 10, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 2.8808099183384273, + "x1": 4.1367057893428765, + "c1": 9.815468966212772e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 352.0923229213836 + }, + { + "id": 11, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.030506029562536, + "x1": 4.446320468310657, + "c1": 3.920708311174756e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 132.22271374611307 + }, + { + "id": 12, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 2.486938823074118, + "x1": 3.8232811988720075, + "c1": 5.241956434720472e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 192.62015303077854 + }, + { + "id": 13, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 3.5273504850751545, + "x1": 1.6226585847614738, + "c1": 8.862404864225237e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 176.8088913942172 + } + ], + "sym_load": [ + { + "id": 14, + "node": 1, + "status": 1, + "type": 1, + "p_specified": 80139.56246516985, + "q_specified": -108.19224437764024 + }, + { + "id": 15, + "node": 3, + "status": 1, + "type": 1, + "p_specified": 60680.2675249601, + "q_specified": 7356.090917377453 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_037.json b/tests/fuzzer/corpus_json/21_random_037.json new file mode 100644 index 0000000000..f02ce5fb95 --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_037.json @@ -0,0 +1,333 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 380000.0 + }, + { + "id": 1, + "u_rated": 380000.0 + }, + { + "id": 2, + "u_rated": 380000.0 + }, + { + "id": 3, + "u_rated": 380000.0 + }, + { + "id": 4, + "u_rated": 380000.0 + }, + { + "id": 5, + "u_rated": 380000.0 + }, + { + "id": 6, + "u_rated": 380000.0 + }, + { + "id": 7, + "u_rated": 380000.0 + }, + { + "id": 8, + "u_rated": 380000.0 + }, + { + "id": 9, + "u_rated": 380000.0 + }, + { + "id": 10, + "u_rated": 380000.0 + }, + { + "id": 11, + "u_rated": 380000.0 + } + ], + "source": [ + { + "id": 12, + "node": 0, + "status": 1, + "u_ref": 1.0235632697722805, + "u_ref_angle": 0.0, + "sk": 91693447.81875592, + "rx_ratio": 0.4209599522754781, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 13, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 2.575088628956747, + "x1": 3.1551898264783826, + "c1": 3.692298340629185e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 532.7384357990325 + }, + { + "id": 14, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 0.5392834165136595, + "x1": 3.4147496691664827, + "c1": 6.006683617497798e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 289.10527762784096 + }, + { + "id": 15, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 1.8928642188409954, + "x1": 3.680657685668357, + "c1": 4.4387744474707366e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 960.0199029011853 + }, + { + "id": 16, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.856279824037411, + "x1": 4.191813023742714, + "c1": 9.102750132312587e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 84.4011058526655 + }, + { + "id": 17, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 1.4429299134650337, + "x1": 1.8055353182640232, + "c1": 7.049528914120153e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 828.6175999187909 + }, + { + "id": 18, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 2.813121727338455, + "x1": 3.195955332561673, + "c1": 5.730797646226705e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 43.71602907048005 + }, + { + "id": 19, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 2.6333168752267717, + "x1": 1.0662190804331306, + "c1": 4.169628401325784e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 18.69620045649031 + }, + { + "id": 20, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 3.2789073701995477, + "x1": 4.551115757260385, + "c1": 6.861090441910423e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 584.2660747663031 + }, + { + "id": 21, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 0.11740529253717658, + "x1": 1.7593650343828422, + "c1": 1.5928580478498277e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 861.9761300197528 + }, + { + "id": 22, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 3.640133888032472, + "x1": 4.482675863138332, + "c1": 2.179641107905381e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 721.7105032388031 + }, + { + "id": 23, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 3.4974851171391936, + "x1": 2.5534149501258785, + "c1": 9.161938153335088e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 628.676977169877 + } + ], + "sym_load": [ + { + "id": 24, + "node": 1, + "status": 1, + "type": 2, + "p_specified": -59280.40820175884, + "q_specified": -7137.1005158077905 + }, + { + "id": 25, + "node": 2, + "status": 1, + "type": 2, + "p_specified": -90342.73410029012, + "q_specified": -1018.6682485088186 + }, + { + "id": 26, + "node": 3, + "status": 1, + "type": 0, + "p_specified": -46649.487840279915, + "q_specified": -5217.197673291461 + }, + { + "id": 27, + "node": 4, + "status": 1, + "type": 0, + "p_specified": -31774.036063751046, + "q_specified": -9410.9436723777 + }, + { + "id": 28, + "node": 6, + "status": 1, + "type": 0, + "p_specified": 25622.390964253893, + "q_specified": 3154.862410591373 + }, + { + "id": 29, + "node": 8, + "status": 1, + "type": 0, + "p_specified": 15306.447714284426, + "q_specified": 872.5416478694206 + }, + { + "id": 30, + "node": 9, + "status": 1, + "type": 0, + "p_specified": -77609.01496626981, + "q_specified": -6682.479913684412 + }, + { + "id": 31, + "node": 10, + "status": 1, + "type": 2, + "p_specified": 83182.13922569974, + "q_specified": -9830.31058947062 + }, + { + "id": 32, + "node": 11, + "status": 1, + "type": 2, + "p_specified": 67298.18292557332, + "q_specified": -5515.539086762802 + } + ], + "shunt": [ + { + "id": 33, + "node": 0, + "status": 1, + "g1": 4.463733532754383e-05, + "b1": -8.650709510679062e-05, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_038.json b/tests/fuzzer/corpus_json/21_random_038.json new file mode 100644 index 0000000000..4e2eddaebf --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_038.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 110000.0 + }, + { + "id": 1, + "u_rated": 110000.0 + }, + { + "id": 2, + "u_rated": 110000.0 + }, + { + "id": 3, + "u_rated": 110000.0 + }, + { + "id": 4, + "u_rated": 110000.0 + }, + { + "id": 5, + "u_rated": 110000.0 + }, + { + "id": 6, + "u_rated": 110000.0 + }, + { + "id": 7, + "u_rated": 110000.0 + }, + { + "id": 8, + "u_rated": 110000.0 + }, + { + "id": 9, + "u_rated": 110000.0 + }, + { + "id": 10, + "u_rated": 110000.0 + }, + { + "id": 11, + "u_rated": 110000.0 + } + ], + "source": [ + { + "id": 12, + "node": 0, + "status": 1, + "u_ref": 1.0448597641312578, + "u_ref_angle": 0.0, + "sk": 429078082.0334924, + "rx_ratio": 0.03311573477982538, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 13, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 1.8746586905300915, + "x1": 3.0401819819597646, + "c1": 1.7009129070200167e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 351.12139228551274 + }, + { + "id": 14, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 1.3348165791520912, + "x1": 1.6473932423472575, + "c1": 7.265968271185355e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 478.32015470043285 + }, + { + "id": 15, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 4.813959440733472, + "x1": 2.914207071093458, + "c1": 2.2329304317795007e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 616.6697161162324 + }, + { + "id": 16, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 2.6402457985471472, + "x1": 0.7041471614178851, + "c1": 5.26846246767392e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 21.565238137472416 + }, + { + "id": 17, + "from_node": 4, + "to_node": 5, + "from_status": 1, + "to_status": 1, + "r1": 1.8720360741954567, + "x1": 2.6819336753191187, + "c1": 6.862225596861035e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 959.8197250308797 + }, + { + "id": 18, + "from_node": 5, + "to_node": 6, + "from_status": 1, + "to_status": 1, + "r1": 3.0733143726163226, + "x1": 0.12288906224195983, + "c1": 4.7553390340842525e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 257.6988819491285 + }, + { + "id": 19, + "from_node": 6, + "to_node": 7, + "from_status": 1, + "to_status": 1, + "r1": 3.7364308583796713, + "x1": 4.468153918430871, + "c1": 8.678004232970216e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 773.9133602423005 + }, + { + "id": 20, + "from_node": 7, + "to_node": 8, + "from_status": 1, + "to_status": 1, + "r1": 1.4661020664914215, + "x1": 0.9141504152098201, + "c1": 4.5353319428936086e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 424.5696982256273 + }, + { + "id": 21, + "from_node": 8, + "to_node": 9, + "from_status": 1, + "to_status": 1, + "r1": 1.4376349239389796, + "x1": 1.3193198732611449, + "c1": 4.334984888445319e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 692.579082200429 + }, + { + "id": 22, + "from_node": 9, + "to_node": 10, + "from_status": 1, + "to_status": 1, + "r1": 0.8196431286060496, + "x1": 1.8641276314326638, + "c1": 2.391994559987378e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 731.2990409282993 + }, + { + "id": 23, + "from_node": 10, + "to_node": 11, + "from_status": 1, + "to_status": 1, + "r1": 1.2402364352420336, + "x1": 3.698384463494224, + "c1": 2.877332379543862e-08, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 857.1866294631112 + } + ], + "sym_load": [ + { + "id": 24, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 59201.293236094876, + "q_specified": 6851.304183412496 + }, + { + "id": 25, + "node": 2, + "status": 1, + "type": 2, + "p_specified": 97289.16663731547, + "q_specified": 6587.484909031191 + }, + { + "id": 26, + "node": 6, + "status": 1, + "type": 0, + "p_specified": -55817.28312688399, + "q_specified": -7084.00924734334 + }, + { + "id": 27, + "node": 7, + "status": 1, + "type": 2, + "p_specified": -87071.05046299999, + "q_specified": 1971.8299188770234 + }, + { + "id": 28, + "node": 8, + "status": 1, + "type": 1, + "p_specified": 59808.591017622675, + "q_specified": -7092.859987070786 + }, + { + "id": 29, + "node": 9, + "status": 1, + "type": 2, + "p_specified": 74336.1052159676, + "q_specified": 7036.385325629755 + } + ], + "shunt": [ + { + "id": 30, + "node": 0, + "status": 1, + "g1": 3.40742265353315e-05, + "b1": -4.955859832884477e-05, + "g0": 0.0001, + "b0": 0.0001 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/21_random_039.json b/tests/fuzzer/corpus_json/21_random_039.json new file mode 100644 index 0000000000..2f1c30895d --- /dev/null +++ b/tests/fuzzer/corpus_json/21_random_039.json @@ -0,0 +1,118 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 10000.0 + }, + { + "id": 2, + "u_rated": 10000.0 + }, + { + "id": 3, + "u_rated": 10000.0 + }, + { + "id": 4, + "u_rated": 10000.0 + } + ], + "source": [ + { + "id": 5, + "node": 0, + "status": 1, + "u_ref": 0.9390120628782225, + "u_ref_angle": 0.0, + "sk": 385459371.4739138, + "rx_ratio": 0.19780033353279175, + "z01_ratio": 1.0 + } + ], + "line": [ + { + "id": 6, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "r1": 3.2290538698033893, + "x1": 1.2734302757944727, + "c1": 3.560924582957651e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 186.5150457569026 + }, + { + "id": 7, + "from_node": 1, + "to_node": 2, + "from_status": 1, + "to_status": 1, + "r1": 4.073449933048653, + "x1": 1.4700234187690397, + "c1": 8.827730256872422e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 82.97752948528587 + }, + { + "id": 8, + "from_node": 2, + "to_node": 3, + "from_status": 1, + "to_status": 1, + "r1": 0.0430833588525914, + "x1": 2.1192569787738122, + "c1": 4.2217723868822266e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 754.7548003951983 + }, + { + "id": 9, + "from_node": 3, + "to_node": 4, + "from_status": 1, + "to_status": 1, + "r1": 4.336564182923058, + "x1": 2.566831133532564, + "c1": 2.997975071297856e-07, + "tan1": 0.0, + "r0": 0.3, + "x0": 0.3, + "c0": 1e-09, + "tan0": 0.0, + "i_n": 719.0563315595203 + } + ], + "sym_load": [ + { + "id": 10, + "node": 1, + "status": 1, + "type": 1, + "p_specified": 15546.05710602783, + "q_specified": 1306.6904247591956 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/22_attributes_mixed.json b/tests/fuzzer/corpus_json/22_attributes_mixed.json new file mode 100644 index 0000000000..85672003ae --- /dev/null +++ b/tests/fuzzer/corpus_json/22_attributes_mixed.json @@ -0,0 +1,61 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": { + "sym_load": [ + "id", + "node", + "status", + "type", + "p_specified", + "q_specified" + ] + }, + "data": { + "node": [ + { + "id": 0, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 1, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "sym_load": [ + [ + 2, + 0, + 1, + 0, + 10000.0, + 5000.0 + ], + [ + 3, + 0, + 1, + 1, + 20000.0, + 1000.0 + ], + [ + 4, + 0, + 0, + 2, + 0.0, + 0.0 + ] + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/22_attributes_sparse.json b/tests/fuzzer/corpus_json/22_attributes_sparse.json new file mode 100644 index 0000000000..da181cc881 --- /dev/null +++ b/tests/fuzzer/corpus_json/22_attributes_sparse.json @@ -0,0 +1,37 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": { + "node": [ + "id", + "u_rated" + ], + "source": [ + "id", + "node", + "status", + "u_ref", + "sk", + "rx_ratio" + ] + }, + "data": { + "node": [ + [ + 0, + 10000.0 + ] + ], + "source": [ + [ + 1, + 0, + 1, + 1.0, + 1000000.0, + 0.1 + ] + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/23_transformer_autotransformer.json b/tests/fuzzer/corpus_json/23_transformer_autotransformer.json new file mode 100644 index 0000000000..e3a51afd5b --- /dev/null +++ b/tests/fuzzer/corpus_json/23_transformer_autotransformer.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 9000.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 9000.0, + "sn": 50000000.0, + "uk": 0.02, + "pk": 100.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 1, + "clock": 5, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/23_transformer_tap_side_tap_from.json b/tests/fuzzer/corpus_json/23_transformer_tap_side_tap_from.json new file mode 100644 index 0000000000..131e4bf7ab --- /dev/null +++ b/tests/fuzzer/corpus_json/23_transformer_tap_side_tap_from.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 1, + "clock": 5, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/23_transformer_tap_side_tap_to.json b/tests/fuzzer/corpus_json/23_transformer_tap_side_tap_to.json new file mode 100644 index 0000000000..c5ccbc2a4f --- /dev/null +++ b/tests/fuzzer/corpus_json/23_transformer_tap_side_tap_to.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.06, + "pk": 1000.0, + "i0": 0.01, + "p0": 500.0, + "winding_from": 2, + "winding_to": 1, + "clock": 5, + "tap_side": 1, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/23_transformer_uk_boundary.json b/tests/fuzzer/corpus_json/23_transformer_uk_boundary.json new file mode 100644 index 0000000000..8593c488c6 --- /dev/null +++ b/tests/fuzzer/corpus_json/23_transformer_uk_boundary.json @@ -0,0 +1,65 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + { + "id": 0, + "u_rated": 10000.0 + }, + { + "id": 1, + "u_rated": 400.0 + } + ], + "source": [ + { + "id": 2, + "node": 0, + "status": 1, + "u_ref": 1.0, + "u_ref_angle": 0.0, + "sk": 1000000.0, + "rx_ratio": 0.1, + "z01_ratio": 1.0 + } + ], + "transformer": [ + { + "id": 3, + "from_node": 0, + "to_node": 1, + "from_status": 1, + "to_status": 1, + "u1": 10000.0, + "u2": 400.0, + "sn": 1000000.0, + "uk": 0.001, + "pk": 0.0, + "i0": 0.0, + "p0": 0.0, + "winding_from": 2, + "winding_to": 1, + "clock": 5, + "tap_side": 0, + "tap_pos": 0, + "tap_min": -10, + "tap_max": 10, + "tap_nom": 0, + "tap_size": 0.01 + } + ], + "sym_load": [ + { + "id": 4, + "node": 1, + "status": 1, + "type": 0, + "p_specified": 10000.0, + "q_specified": 5000.0 + } + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/corpus_json/json_binary.bin b/tests/fuzzer/corpus_json/json_binary.bin new file mode 100644 index 0000000000..0ed58e0247 --- /dev/null +++ b/tests/fuzzer/corpus_json/json_binary.bin @@ -0,0 +1,17 @@ +{ + "version": "1.0", + "type": "input", + "is_batch": false, + "attributes": {}, + "data": { + "node": [ + {"id": 0, "u_rated": 100} + ], + "source": [ + {"id": 1, "node": 0, "status": 1, "u_ref": 1, "sk": 1000, "rx_ratio": 0} + ], + "sym_load": [ + {"id": 2, "node": 0, "status": 1, "type": 2, "p_specified": 0, "q_specified": 500} + ] + } +} \ No newline at end of file diff --git a/tests/fuzzer/harness_deserializer_json.c b/tests/fuzzer/harness_deserializer_json.c new file mode 100644 index 0000000000..5e1720ee83 --- /dev/null +++ b/tests/fuzzer/harness_deserializer_json.c @@ -0,0 +1,384 @@ +// SPDX-FileCopyrightText: Contributors to the Power Grid Model project +// +// SPDX-License-Identifier: MPL-2.0 + +// Coverage-guided fuzz harness for the Power Grid Model C API JSON +// deserialization path. It runs under AFL++ by default; libFuzzer works too. +// +// It drives PGM_create_deserializer_from_binary_buffer(..., PGM_json) and the +// downstream model/solver code: +// deserialize -> inspect dataset -> allocate + register component buffers -> +// parse into buffers -> buffer get/set round-trips -> create model -> +// symmetric / asymmetric power flow + short-circuit calculation. +// +// The harness exposes the standard libFuzzer entry points +// (LLVMFuzzerTestOneInput / LLVMFuzzerInitialize); AFL++ drives them via its +// aflpp_driver (libAFLDriver.a), so the same source runs under either engine. +// Build it locally with `cmake ... -DPGM_ENABLE_FUZZER=ON` (AFL++ toolchain by +// default, or -DPGM_FUZZER_ENGINE=libfuzzer with Clang); OSS-Fuzz compiles this +// same source against $LIB_FUZZING_ENGINE. + +#include +#include +#include +#include +#include + +#include "power_grid_model_c.h" + +/* Safety caps — prevent OOM from adversarial element counts in the input */ +#define MAX_COMPONENTS 64 +#define MAX_ELEMENTS 1000 + +/* -------------------------------------------------------------------------- + * Helper: aligned_alloc wrapper that guarantees size is a multiple of + * alignment (required on macOS) and handles zero-element cases. + * -------------------------------------------------------------------------- */ +static void *alloc_aligned(size_t alignment, size_t size) { + if (alignment == 0) alignment = 1; + if (size == 0) size = alignment; + size = ((size + alignment - 1) / alignment) * alignment; + return aligned_alloc(alignment, size); +} + +/* -------------------------------------------------------------------------- + * Helper: retrieve the error message (exercises handle.cpp message path) + * then clear. Call this instead of bare PGM_clear_error() everywhere so + * PGM_error_message() always appears in the coverage trace. + * -------------------------------------------------------------------------- */ +static void drain_error(PGM_Handle *handle) { + if (PGM_error_code(handle) != PGM_no_error) { + (void)PGM_error_message(handle); + PGM_clear_error(handle); + } +} + +/* -------------------------------------------------------------------------- + * Required lifecycle stubs for libAFLDriver.a / cov_driver.c + * -------------------------------------------------------------------------- */ +int LLVMFuzzerInitialize(int *argc, char ***argv) { + (void)argc; (void)argv; + return 0; +} + +void LLVMFuzzerCleanup(void) {} + +/* -------------------------------------------------------------------------- + * Fuzzer entry point + * -------------------------------------------------------------------------- */ +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + if (size < 2) + return 0; + + const char *payload = (const char *)(data); + const size_t payload_len = size; + + /* All resources declared upfront so cleanup is unconditional. + * opt/out_ds/out_buf are now block-scoped in each calculation step. */ + PGM_Handle *handle = PGM_create_handle(); + PGM_Deserializer *deserializer = NULL; + void *comp_bufs[MAX_COMPONENTS]; + void *node_buf = NULL; /* points into comp_bufs for the node component */ + PGM_ConstDataset *const_ds = NULL; + PGM_PowerGridModel *model = NULL; + + memset(comp_bufs, 0, sizeof(comp_bufs)); + + /* ── 1. Deserialize ────────────────────────────────────────────────── */ + + /* Parse a JSON byte buffer (no null terminator required). + * Same nlohmann_json path, different entry point. */ + deserializer = PGM_create_deserializer_from_binary_buffer( + handle, payload, (PGM_Idx)payload_len, PGM_json); + + if (!deserializer) goto cleanup; + + /* ── 2. Inspect dataset ────────────────────────────────────────────── */ + + /* Retrieve the writable dataset embedded in the deserializer. */ + PGM_WritableDataset *writable = PGM_deserializer_get_dataset(handle, deserializer); + if (!writable) goto cleanup; + + PGM_DatasetInfo const *info = PGM_dataset_writable_get_info(handle, writable); + if (!info) goto cleanup; + + const char *ds_name = PGM_dataset_info_name(handle, info); + /* Only "input" datasets can be used with PGM_create_model. */ + if (!ds_name || strcmp(ds_name, "input") != 0) goto cleanup; + + PGM_Idx batch_size = PGM_dataset_info_batch_size(handle, info); + PGM_Idx n_components = PGM_dataset_info_n_components(handle, info); + + if (batch_size != 1 || n_components <= 0 || n_components > MAX_COMPONENTS) + goto cleanup; + + /* ── 3. Allocate and register per-component buffers ───────────────── */ + PGM_Idx node_count = 0; + + for (PGM_Idx i = 0; i < n_components; i++) { + const char *comp_name = PGM_dataset_info_component_name(handle, info, i); + PGM_Idx total = PGM_dataset_info_total_elements(handle, info, i); + PGM_Idx per_scen = PGM_dataset_info_elements_per_scenario(handle, info, i); + + if (per_scen < 0 || total <= 0 || total > MAX_ELEMENTS) + goto cleanup; + + if (comp_name && strcmp(comp_name, "node") == 0) + node_count = total; + + PGM_MetaComponent const *meta = PGM_meta_get_component_by_name( + handle, "input", comp_name); + if (!meta) goto cleanup; + + size_t comp_size = PGM_meta_component_size(handle, meta); + size_t comp_align = PGM_meta_component_alignment(handle, meta); + + comp_bufs[i] = alloc_aligned(comp_align, comp_size * (size_t)total); + if (!comp_bufs[i]) goto cleanup; + + /* Track the node buffer — needed later for PGM_get_indexer. */ + if (comp_name && strcmp(comp_name, "node") == 0) + node_buf = comp_bufs[i]; + + PGM_dataset_writable_set_buffer(handle, writable, comp_name, NULL, comp_bufs[i]); + if (PGM_error_code(handle) != PGM_no_error) { + drain_error(handle); + goto cleanup; + } + } + + /* ── 4. Parse serialized data into the allocated buffers ──────────── */ + + /* Walk the parse tree and write each field value into the component + * buffers registered in step 3. */ + PGM_deserializer_parse_to_buffer(handle, deserializer); + if (PGM_error_code(handle) != PGM_no_error) { + drain_error(handle); + goto cleanup; + } + + /* ── 4b. Exercise buffer.cpp: create / nan / get / set / destroy ───── + * Re-walk the parsed component buffers using the C API's own allocation + * and attribute I/O so that PGM_create_buffer, PGM_buffer_set_nan, + * PGM_buffer_get_value, PGM_buffer_set_value, and PGM_destroy_buffer + * all land in the coverage trace. + * ──────────────────────────────────────────────────────────────────── */ + for (PGM_Idx i = 0; i < n_components; i++) { + if (!comp_bufs[i]) continue; + + const char *cname = PGM_dataset_info_component_name(handle, info, i); + PGM_Idx nelems = PGM_dataset_info_total_elements(handle, info, i); + if (nelems <= 0) continue; + + PGM_MetaComponent const *meta2 = + PGM_meta_get_component_by_name(handle, "input", cname); + if (!meta2) continue; + + /* API-managed aligned allocation — exercises PGM_create_buffer. */ + void *api_buf = PGM_create_buffer(handle, meta2, nelems); + if (!api_buf) { drain_error(handle); continue; } + + /* Fill every attribute slot with NaN — exercises PGM_buffer_set_nan. */ + PGM_buffer_set_nan(handle, meta2, api_buf, 0, nelems); + if (PGM_error_code(handle) != PGM_no_error) { + drain_error(handle); + PGM_destroy_buffer(api_buf); + continue; + } + + /* Scratch array sized for the widest possible attribute × nelems. + * comp_sz (the full struct size) is always >= any single attribute. */ + size_t comp_sz = PGM_meta_component_size(handle, meta2); + void *tmp = malloc(comp_sz * (size_t)nelems); + if (!tmp) { PGM_destroy_buffer(api_buf); continue; } + + /* Round-trip every attribute: get from parsed buf → set into api_buf + * → get back. Covers both directions of buffer_get_set_value. + * stride=-1 exercises the negative-stride branch (use attr's own size). */ + PGM_Idx n_attrs = PGM_meta_n_attributes(handle, meta2); + for (PGM_Idx j = 0; j < n_attrs; j++) { + PGM_MetaAttribute const *attr = + PGM_meta_get_attribute_by_idx(handle, meta2, j); + if (!attr) continue; + + PGM_buffer_get_value(handle, attr, comp_bufs[i], tmp, 0, nelems, -1); + if (PGM_error_code(handle) != PGM_no_error) { drain_error(handle); continue; } + + PGM_buffer_set_value(handle, attr, api_buf, tmp, 0, nelems, -1); + if (PGM_error_code(handle) != PGM_no_error) { drain_error(handle); continue; } + + /* Second get covers the path where we read a buffer we filled. */ + PGM_buffer_get_value(handle, attr, api_buf, tmp, 0, nelems, -1); + if (PGM_error_code(handle) != PGM_no_error) { drain_error(handle); continue; } + } + + free(tmp); + /* API-managed aligned free — exercises PGM_destroy_buffer. */ + PGM_destroy_buffer(api_buf); + } + + /* ── 5. Create model ───────────────────────────────────────────────── */ + + const_ds = PGM_create_dataset_const_from_writable(handle, writable); + if (!const_ds) { drain_error(handle); goto cleanup; } + + model = PGM_create_model(handle, 50.0, const_ds); + if (!model) { drain_error(handle); goto cleanup; } + + /* ── 5b. Copy model + get_indexer ─────────────────────────────────── */ + do { + /* PGM_copy_model: exercises the deep-copy constructor path in model.cpp. */ + PGM_PowerGridModel *model_copy = PGM_copy_model(handle, model); + if (model_copy) { + PGM_destroy_model(model_copy); + } else { + drain_error(handle); + } + + /* PGM_get_indexer: look up sequence positions for the parsed node IDs. + * Reads the id field from the node buffer then asks the model to + * resolve each ID to its internal sequence number. */ + if (node_count <= 0 || !node_buf) break; + + PGM_MetaAttribute const *id_attr = + PGM_meta_get_attribute_by_name(handle, "input", "node", "id"); + if (!id_attr) break; + + PGM_ID *node_ids = malloc(sizeof(PGM_ID) * (size_t)node_count); + PGM_Idx *node_seq = malloc(sizeof(PGM_Idx) * (size_t)node_count); + if (node_ids && node_seq) { + PGM_buffer_get_value(handle, id_attr, node_buf, node_ids, 0, node_count, -1); + if (PGM_error_code(handle) == PGM_no_error) { + PGM_get_indexer(handle, model, "node", node_count, node_ids, node_seq); + drain_error(handle); /* bad IDs may trigger an error — not a crash */ + } else { + drain_error(handle); + } + } + free(node_ids); + free(node_seq); + } while (0); + + if (node_count <= 0) goto cleanup; + + /* ── 6a. Symmetric power flow — all option setters called ─────────── * + * Every PGM_set_* function is called here so that options.cpp reaches + * full line coverage in a single pass. + * ──────────────────────────────────────────────────────────────────── */ + do { + PGM_MetaComponent const *meta = + PGM_meta_get_component_by_name(handle, "sym_output", "node"); + if (!meta) break; + + void *out_buf = alloc_aligned( + PGM_meta_component_alignment(handle, meta), + PGM_meta_component_size(handle, meta) * (size_t)node_count); + if (!out_buf) break; + + PGM_MutableDataset *out_ds = PGM_create_dataset_mutable(handle, "sym_output", 0, 1); + if (!out_ds) { free(out_buf); break; } + + PGM_dataset_mutable_add_buffer(handle, out_ds, "node", node_count, node_count, NULL, out_buf); + + PGM_Options *opt = PGM_create_options(handle); + if (opt) { + PGM_set_calculation_type(handle, opt, PGM_power_flow); + PGM_set_calculation_method(handle, opt, PGM_newton_raphson); + PGM_set_symmetric(handle, opt, PGM_symmetric); + PGM_set_err_tol(handle, opt, 1e-8); + PGM_set_max_iter(handle, opt, 5); + PGM_set_threading(handle, opt, -1); + PGM_set_tap_changing_strategy(handle, opt, PGM_tap_changing_strategy_disabled); + PGM_set_short_circuit_voltage_scaling(handle, opt, + PGM_short_circuit_voltage_scaling_maximum); + PGM_set_experimental_features(handle, opt, PGM_experimental_features_disabled); + + PGM_calculate(handle, model, opt, out_ds, NULL); + drain_error(handle); /* divergence, topology issues — not a bug */ + PGM_destroy_options(opt); + } + PGM_destroy_dataset_mutable(out_ds); + free(out_buf); + } while (0); + + /* ── 6b. Asymmetric power flow ─────────────────────────────────────── * + * Uses asym_output (double[3] fields) and PGM_asymmetric symmetry flag, + * exercising the asymmetric dispatch path in job_dispatch and model.cpp. + * ──────────────────────────────────────────────────────────────────── */ + do { + PGM_MetaComponent const *meta = + PGM_meta_get_component_by_name(handle, "asym_output", "node"); + if (!meta) break; + + void *out_buf = alloc_aligned( + PGM_meta_component_alignment(handle, meta), + PGM_meta_component_size(handle, meta) * (size_t)node_count); + if (!out_buf) break; + + PGM_MutableDataset *out_ds = PGM_create_dataset_mutable(handle, "asym_output", 0, 1); + if (!out_ds) { free(out_buf); break; } + + PGM_dataset_mutable_add_buffer(handle, out_ds, "node", node_count, node_count, NULL, out_buf); + + PGM_Options *opt = PGM_create_options(handle); + if (opt) { + PGM_set_calculation_type(handle, opt, PGM_power_flow); + PGM_set_calculation_method(handle, opt, PGM_linear); + PGM_set_symmetric(handle, opt, PGM_asymmetric); + PGM_set_max_iter(handle, opt, 5); + + PGM_calculate(handle, model, opt, out_ds, NULL); + drain_error(handle); + PGM_destroy_options(opt); + } + PGM_destroy_dataset_mutable(out_ds); + free(out_buf); + } while (0); + + /* ── 6c. Symmetric short circuit ──────────────────────────────────── * + * Drives PGM_short_circuit + PGM_iec60909 through the dispatch layer. + * Most random inputs will fail validation inside the solver — that is + * expected and handled via drain_error. + * ──────────────────────────────────────────────────────────────────── */ + do { + PGM_MetaComponent const *meta = + PGM_meta_get_component_by_name(handle, "sc_output", "node"); + if (!meta) break; + + void *out_buf = alloc_aligned( + PGM_meta_component_alignment(handle, meta), + PGM_meta_component_size(handle, meta) * (size_t)node_count); + if (!out_buf) break; + + PGM_MutableDataset *out_ds = PGM_create_dataset_mutable(handle, "sc_output", 0, 1); + if (!out_ds) { free(out_buf); break; } + + PGM_dataset_mutable_add_buffer(handle, out_ds, "node", node_count, node_count, NULL, out_buf); + + PGM_Options *opt = PGM_create_options(handle); + if (opt) { + PGM_set_calculation_type(handle, opt, PGM_short_circuit); + PGM_set_calculation_method(handle, opt, PGM_iec60909); + PGM_set_symmetric(handle, opt, PGM_symmetric); + PGM_set_max_iter(handle, opt, 5); + PGM_set_short_circuit_voltage_scaling(handle, opt, + PGM_short_circuit_voltage_scaling_minimum); + + PGM_calculate(handle, model, opt, out_ds, NULL); + drain_error(handle); + PGM_destroy_options(opt); + } + PGM_destroy_dataset_mutable(out_ds); + free(out_buf); + } while (0); + + /* ── Cleanup ───────────────────────────────────────────────────────── */ +cleanup: + if (model) PGM_destroy_model(model); + if (const_ds) PGM_destroy_dataset_const(const_ds); + for (PGM_Idx i = 0; i < MAX_COMPONENTS; i++) + free(comp_bufs[i]); /* free(NULL) is always safe */ + if (deserializer) PGM_destroy_deserializer(deserializer); + PGM_destroy_handle(handle); + return 0; +} diff --git a/tests/fuzzer/pgm.dict b/tests/fuzzer/pgm.dict new file mode 100644 index 0000000000..d3c67fccf4 --- /dev/null +++ b/tests/fuzzer/pgm.dict @@ -0,0 +1,156 @@ +# SPDX-FileCopyrightText: Contributors to the Power Grid Model project +# +# SPDX-License-Identifier: MPL-2.0 + +# libFuzzer/AFL++ dictionary for Power Grid Model JSON/msgpack input format +# +# Helps AFL++ generate structurally valid PGM inputs, increasing the ratio +# of payloads that survive past the top-level JSON parser and reach the +# component parsing, model construction, and solver code. + +# ── JSON structural tokens ─────────────────────────────────────────────────── +"{" +"}" +"[" +"]" +":" +"," +"true" +"false" +"null" + +# ── Top-level PGM envelope keys ────────────────────────────────────────────── +"\"version\"" +"\"type\"" +"\"is_batch\"" +"\"attributes\"" +"\"data\"" + +# ── Known version strings ──────────────────────────────────────────────────── +"\"1.0\"" + +# ── Dataset type values ────────────────────────────────────────────────────── +"\"input\"" +"\"update\"" +"\"sym_output\"" +"\"asym_output\"" +"\"sc_output\"" + +# ── Component names ────────────────────────────────────────────────────────── +"\"node\"" +"\"source\"" +"\"line\"" +"\"asym_line\"" +"\"link\"" +"\"generic_branch\"" +"\"transformer\"" +"\"three_winding_transformer\"" +"\"transformer_tap_regulator\"" +"\"voltage_regulator\"" +"\"sym_load\"" +"\"asym_load\"" +"\"sym_gen\"" +"\"asym_gen\"" +"\"shunt\"" +"\"sym_voltage_sensor\"" +"\"asym_voltage_sensor\"" +"\"sym_power_sensor\"" +"\"asym_power_sensor\"" +"\"sym_current_sensor\"" +"\"asym_current_sensor\"" +"\"fault\"" + +# ── Universal attributes ───────────────────────────────────────────────────── +"\"id\"" +"\"node\"" +"\"status\"" +"\"type\"" + +# ── Node attributes ────────────────────────────────────────────────────────── +"\"u_rated\"" + +# ── Source attributes ──────────────────────────────────────────────────────── +"\"u_ref\"" +"\"u_ref_angle\"" +"\"sk\"" +"\"rx_ratio\"" +"\"z01_ratio\"" + +# ── Branch attributes (line, link, transformer) ────────────────────────────── +"\"from_node\"" +"\"to_node\"" +"\"from_status\"" +"\"to_status\"" + +# ── Line attributes ────────────────────────────────────────────────────────── +"\"r1\"" +"\"x1\"" +"\"c1\"" +"\"tan1\"" +"\"r0\"" +"\"x0\"" +"\"c0\"" +"\"tan0\"" +"\"i_n\"" + +# ── Transformer attributes ─────────────────────────────────────────────────── +"\"u1\"" +"\"u2\"" +"\"uk\"" +"\"pk\"" +"\"i0\"" +"\"p0\"" +"\"winding_from\"" +"\"winding_to\"" +"\"clock\"" +"\"tap_side\"" +"\"tap_pos\"" +"\"tap_min\"" +"\"tap_max\"" +"\"tap_nom\"" +"\"tap_size\"" + +# ── Load/gen attributes ────────────────────────────────────────────────────── +"\"p_specified\"" +"\"q_specified\"" + +# ── Shunt attributes ───────────────────────────────────────────────────────── +"\"g1\"" +"\"b1\"" +"\"g0\"" +"\"b0\"" + +# ── Sensor attributes ──────────────────────────────────────────────────────── +"\"measured_object\"" +"\"measured_terminal_type\"" +"\"power_sigma\"" +"\"u_sigma\"" +"\"u_measured\"" +"\"p_measured\"" +"\"q_measured\"" +"\"i_sigma\"" +"\"i_angle_sigma\"" + +# ── Fault attributes ───────────────────────────────────────────────────────── +"\"fault_type\"" +"\"fault_phase\"" +"\"fault_object\"" +"\"r_f\"" +"\"x_f\"" + +# ── Common numeric values ──────────────────────────────────────────────────── +"0" +"1" +"-1" +"50.0" +"60.0" +"0.0" +"1.0" +"1e3" +"1e6" +"1e9" +"0.1" +"0.01" +"10000.0" +"110000.0" +"400.0"