From 2a38817812eac428c5b0126fea7a28398fd2ed9d Mon Sep 17 00:00:00 2001 From: Trevor Hansen Date: Wed, 7 Feb 2024 08:25:27 +1100 Subject: [PATCH] Test code (#31) * better testing * remove unused code * remove unused code. Increase the number of tests * Add necessary include * Less duplication - but more complexity. * Can test on all .json files too * Replace with macros as suggested by @oflatt * Fixed the random egraph generator - previously it was only producing acyclic egraphs. Disabled the faster-greedy-dag extractor - the update fuzzer has generated more egraphs that trigger failure * extra test cases from fuzzing * * Use the new ILP timeout class, * Shift to nextest * Revert. nextest is not currently installed by github actions * Fix crash if some optimal extractors aren't provided. Generate egraphs that are more likely to be problematic * oops. remove debug code * Use enum so that optimal tree/dag are distinct * Move test files so they don't impact the benchmarking * move test code to a separate module * Move into separate files as requested --- Cargo.toml | 2 + src/extract/mod.rs | 3 + src/main.rs | 84 +++++-- src/test.rs | 211 ++++++++++++++++++ .../crafted/lots_of_paths_through_cycle.egg | 0 .../crafted/lots_of_paths_through_cycle.json | 0 .../crafted/lots_of_paths_through_cycle.svg | 0 {data => test_data}/crafted/paths.egg | 0 {data => test_data}/crafted/paths.json | 0 {data => test_data}/crafted/paths.svg | 0 {data => test_data}/crafted/readme.md | 0 {data => test_data}/crafted/tree.egg | 0 {data => test_data}/crafted/tree.json | 0 {data => test_data}/crafted/tree.svg | 0 .../crafted/tree_plus_cycles.json | 0 .../crafted/tree_plus_cycles.svg | 0 .../crafted/tree_with_cycles.egg | 0 {data => test_data}/fuzz/1.json | 0 {data => test_data}/fuzz/10.json | 0 {data => test_data}/fuzz/11.json | 0 {data => test_data}/fuzz/12.json | 0 {data => test_data}/fuzz/13.json | 0 {data => test_data}/fuzz/14.json | 0 {data => test_data}/fuzz/15.json | 0 {data => test_data}/fuzz/16.json | 0 {data => test_data}/fuzz/17.json | 0 {data => test_data}/fuzz/18.json | 0 test_data/fuzz/19.json | 1 + {data => test_data}/fuzz/2.json | 0 test_data/fuzz/20.json | 1 + test_data/fuzz/21.json | 1 + test_data/fuzz/22.json | 1 + test_data/fuzz/23.json | 1 + test_data/fuzz/24.json | 1 + test_data/fuzz/25.json | 1 + test_data/fuzz/26.json | 1 + test_data/fuzz/27.json | 1 + test_data/fuzz/28.json | 1 + test_data/fuzz/29.json | 1 + {data => test_data}/fuzz/3.json | 0 test_data/fuzz/30.json | 1 + test_data/fuzz/31.json | 1 + test_data/fuzz/32.json | 1 + test_data/fuzz/33.json | 1 + test_data/fuzz/34.json | 1 + test_data/fuzz/35.json | 1 + test_data/fuzz/36.json | 1 + test_data/fuzz/37.json | 1 + test_data/fuzz/38.json | 1 + {data => test_data}/fuzz/4.json | 0 {data => test_data}/fuzz/5.json | 0 {data => test_data}/fuzz/6.json | 0 {data => test_data}/fuzz/7.json | 0 {data => test_data}/fuzz/8.json | 0 {data => test_data}/fuzz/9.json | 0 {data => test_data}/fuzz/readme.md | 0 56 files changed, 306 insertions(+), 14 deletions(-) create mode 100644 src/test.rs rename {data => test_data}/crafted/lots_of_paths_through_cycle.egg (100%) rename {data => test_data}/crafted/lots_of_paths_through_cycle.json (100%) rename {data => test_data}/crafted/lots_of_paths_through_cycle.svg (100%) rename {data => test_data}/crafted/paths.egg (100%) rename {data => test_data}/crafted/paths.json (100%) rename {data => test_data}/crafted/paths.svg (100%) rename {data => test_data}/crafted/readme.md (100%) rename {data => test_data}/crafted/tree.egg (100%) rename {data => test_data}/crafted/tree.json (100%) rename {data => test_data}/crafted/tree.svg (100%) rename {data => test_data}/crafted/tree_plus_cycles.json (100%) rename {data => test_data}/crafted/tree_plus_cycles.svg (100%) rename {data => test_data}/crafted/tree_with_cycles.egg (100%) rename {data => test_data}/fuzz/1.json (100%) rename {data => test_data}/fuzz/10.json (100%) rename {data => test_data}/fuzz/11.json (100%) rename {data => test_data}/fuzz/12.json (100%) rename {data => test_data}/fuzz/13.json (100%) rename {data => test_data}/fuzz/14.json (100%) rename {data => test_data}/fuzz/15.json (100%) rename {data => test_data}/fuzz/16.json (100%) rename {data => test_data}/fuzz/17.json (100%) rename {data => test_data}/fuzz/18.json (100%) create mode 100644 test_data/fuzz/19.json rename {data => test_data}/fuzz/2.json (100%) create mode 100644 test_data/fuzz/20.json create mode 100644 test_data/fuzz/21.json create mode 100644 test_data/fuzz/22.json create mode 100644 test_data/fuzz/23.json create mode 100644 test_data/fuzz/24.json create mode 100644 test_data/fuzz/25.json create mode 100644 test_data/fuzz/26.json create mode 100644 test_data/fuzz/27.json create mode 100644 test_data/fuzz/28.json create mode 100644 test_data/fuzz/29.json rename {data => test_data}/fuzz/3.json (100%) create mode 100644 test_data/fuzz/30.json create mode 100644 test_data/fuzz/31.json create mode 100644 test_data/fuzz/32.json create mode 100644 test_data/fuzz/33.json create mode 100644 test_data/fuzz/34.json create mode 100644 test_data/fuzz/35.json create mode 100644 test_data/fuzz/36.json create mode 100644 test_data/fuzz/37.json create mode 100644 test_data/fuzz/38.json rename {data => test_data}/fuzz/4.json (100%) rename {data => test_data}/fuzz/5.json (100%) rename {data => test_data}/fuzz/6.json (100%) rename {data => test_data}/fuzz/7.json (100%) rename {data => test_data}/fuzz/8.json (100%) rename {data => test_data}/fuzz/9.json (100%) rename {data => test_data}/fuzz/readme.md (100%) diff --git a/Cargo.toml b/Cargo.toml index 367fb50..24a0550 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,8 @@ indexmap = "2.0.0" log = "0.4.19" ordered-float = "3" pico-args = { version = "0.5.0", features = ["eq-separator"] } +rand = "0.8.5" +walkdir = "2.4.0" anyhow = "1.0.71" coin_cbc = { version = "0.1.6", optional = true } diff --git a/src/extract/mod.rs b/src/extract/mod.rs index 72a7fa0..9995957 100644 --- a/src/extract/mod.rs +++ b/src/extract/mod.rs @@ -12,6 +12,9 @@ pub mod greedy_dag; #[cfg(feature = "ilp-cbc")] pub mod ilp_cbc; +// Allowance for floating point values to be considered equal +pub const EPSILON_ALLOWANCE: f64 = 0.00001; + pub trait Extractor: Sync { fn extract(&self, egraph: &EGraph, roots: &[ClassId]) -> ExtractionResult; diff --git a/src/main.rs b/src/main.rs index fab1624..cfb59bc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,26 +15,71 @@ use std::path::PathBuf; pub type Cost = NotNan; pub const INFINITY: Cost = unsafe { NotNan::new_unchecked(std::f64::INFINITY) }; -fn main() { - env_logger::init(); +#[derive(PartialEq, Eq)] +enum Optimal { + Tree, + DAG, + Neither, +} + +struct ExtractorDetail { + extractor: Box, + optimal: Optimal, + use_for_bench: bool, +} - let extractors: IndexMap<&str, Box> = [ - ("bottom-up", extract::bottom_up::BottomUpExtractor.boxed()), +fn extractors() -> IndexMap<&'static str, ExtractorDetail> { + let extractors: IndexMap<&'static str, ExtractorDetail> = [ ( - "faster-bottom-up", - extract::faster_bottom_up::FasterBottomUpExtractor.boxed(), + "bottom-up", + ExtractorDetail { + extractor: extract::bottom_up::BottomUpExtractor.boxed(), + optimal: Optimal::Tree, + use_for_bench: true, + }, ), ( - "greedy-dag", - extract::greedy_dag::GreedyDagExtractor.boxed(), + "faster-bottom-up", + ExtractorDetail { + extractor: extract::faster_bottom_up::FasterBottomUpExtractor.boxed(), + optimal: Optimal::Tree, + use_for_bench: true, + }, ), - ( + /*( "faster-greedy-dag", - extract::faster_greedy_dag::FasterGreedyDagExtractor.boxed(), + ExtractorDetail { + extractor: extract::faster_greedy_dag::FasterGreedyDagExtractor.boxed(), + optimal: Optimal::Neither, + use_for_bench: true, + }, + ),*/ + + /*( + "global-greedy-dag", + ExtractorDetail { + extractor: extract::global_greedy_dag::GlobalGreedyDagExtractor.boxed(), + optimal: Optimal::Neither, + use_for_bench: true, + }, + ),*/ + #[cfg(feature = "ilp-cbc")] + ( + "ilp-cbc-timeout", + ExtractorDetail { + extractor: extract::ilp_cbc::CbcExtractorWithTimeout::<10>.boxed(), + optimal: Optimal::DAG, + use_for_bench: true, + }, ), + #[cfg(feature = "ilp-cbc")] ( - "global-greedy-dag", - extract::global_greedy_dag::GlobalGreedyDagExtractor.boxed(), + "ilp-cbc", + ExtractorDetail { + extractor: extract::ilp_cbc::CbcExtractor.boxed(), + optimal: Optimal::DAG, + use_for_bench: false, // takes >10 hours sometimes + }, ), #[cfg(feature = "ilp-cbc")] ( @@ -44,6 +89,14 @@ fn main() { ] .into_iter() .collect(); + return extractors; +} + +fn main() { + env_logger::init(); + + let mut extractors = extractors(); + extractors.retain(|_, ed| ed.use_for_bench); let mut args = pico_args::Arguments::from_env(); @@ -76,13 +129,13 @@ fn main() { .with_context(|| format!("Failed to parse {filename}")) .unwrap(); - let extractor = extractors + let ed = extractors .get(extractor_name.as_str()) .with_context(|| format!("Unknown extractor: {extractor_name}")) .unwrap(); let start_time = std::time::Instant::now(); - let result = extractor.extract(&egraph, &egraph.root_eclasses); + let result = ed.extractor.extract(&egraph, &egraph.root_eclasses); let us = start_time.elapsed().as_micros(); result.check(&egraph); @@ -103,3 +156,6 @@ fn main() { ) .unwrap(); } + +#[cfg(test)] +mod test; diff --git a/src/test.rs b/src/test.rs new file mode 100644 index 0000000..6bc5a9c --- /dev/null +++ b/src/test.rs @@ -0,0 +1,211 @@ +/* + * Checks that no extractors produce better results than the extractors that produce optimal results. + * Checks that the extractions are valid. + */ + +use super::*; + +use crate::{extractors, Extractor, Optimal, EPSILON_ALLOWANCE}; +pub type Cost = NotNan; +use egraph_serialize::{EGraph, Node, NodeId}; +use ordered_float::NotNan; +use rand::Rng; + +// generates a float between 0 and 1 +fn generate_random_not_nan() -> NotNan { + let mut rng: rand::prelude::ThreadRng = rand::thread_rng(); + let random_float: f64 = rng.gen(); + NotNan::new(random_float).unwrap() +} + +//make a random egraph that has a loop-free extraction. +pub fn generate_random_egraph() -> EGraph { + let mut rng = rand::thread_rng(); + let core_node_count = rng.gen_range(1..100) as usize; + let extra_node_count = rng.gen_range(1..100); + let mut nodes: Vec = Vec::with_capacity(core_node_count + extra_node_count); + let mut eclass = 0; + + let id2nid = |id: usize| -> NodeId { format!("node_{}", id).into() }; + + // Unless we do it explicitly, the costs are almost never equal to others' costs or zero: + let get_semi_random_cost = |nodes: &Vec| -> Cost { + let mut rng = rand::thread_rng(); + + if nodes.len() > 0 && rng.gen_bool(0.1) { + return nodes[rng.gen_range(0..nodes.len())].cost; + } else if rng.gen_bool(0.05) { + return Cost::default(); + } else { + return generate_random_not_nan() * 100.0; + } + }; + + for i in 0..core_node_count { + let children: Vec = (0..i).filter(|_| rng.gen_bool(0.1)).map(id2nid).collect(); + + if rng.gen_bool(0.2) { + eclass += 1; + } + + nodes.push(Node { + op: "operation".to_string(), + children: children, + eclass: eclass.to_string().clone().into(), + cost: get_semi_random_cost(&nodes), + }); + } + + // So far we have the nodes for a feasible egraph. Now we add some + // cycles to extra nodes - nodes that aren't required in the extraction. + for _ in 0..extra_node_count { + nodes.push(Node { + op: "operation".to_string(), + children: vec![], + eclass: rng.gen_range(0..eclass * 2 + 1).to_string().clone().into(), + cost: get_semi_random_cost(&nodes), + }); + } + + for i in core_node_count..nodes.len() { + for j in 0..nodes.len() { + if rng.gen_bool(0.05) { + nodes.get_mut(i).unwrap().children.push(id2nid(j)); + } + } + } + + let mut egraph = EGraph::default(); + + for i in 0..nodes.len() { + egraph.add_node(id2nid(i), nodes[i].clone()); + } + + // Set roots + for _ in 1..rng.gen_range(2..6) { + egraph.root_eclasses.push( + nodes + .get(rng.gen_range(0..core_node_count)) + .unwrap() + .eclass + .clone(), + ); + } + + egraph +} + +fn check_optimal_results>(egraphs: I) { + let mut optimal_dag: Vec> = Default::default(); + let mut optimal_tree: Vec> = Default::default(); + let mut others: Vec> = Default::default(); + + for (_, ed) in extractors().into_iter() { + match ed.optimal { + Optimal::DAG => optimal_dag.push(ed.extractor), + Optimal::Tree => optimal_tree.push(ed.extractor), + Optimal::Neither => others.push(ed.extractor), + } + } + + for egraph in egraphs { + let mut optimal_dag_cost: Option = None; + + for e in &optimal_dag { + let extract = e.extract(&egraph, &egraph.root_eclasses); + extract.check(&egraph); + let dag_cost = extract.dag_cost(&egraph, &egraph.root_eclasses); + let tree_cost = extract.tree_cost(&egraph, &egraph.root_eclasses); + if optimal_dag_cost.is_none() { + optimal_dag_cost = Some(dag_cost); + continue; + } + + assert!( + (dag_cost.into_inner() - optimal_dag_cost.unwrap().into_inner()).abs() + < EPSILON_ALLOWANCE + ); + + assert!( + tree_cost.into_inner() + EPSILON_ALLOWANCE > optimal_dag_cost.unwrap().into_inner() + ); + } + + let mut optimal_tree_cost: Option = None; + + for e in &optimal_tree { + let extract = e.extract(&egraph, &egraph.root_eclasses); + extract.check(&egraph); + let tree_cost = extract.tree_cost(&egraph, &egraph.root_eclasses); + if optimal_tree_cost.is_none() { + optimal_tree_cost = Some(tree_cost); + continue; + } + + assert!( + (tree_cost.into_inner() - optimal_tree_cost.unwrap().into_inner()).abs() + < EPSILON_ALLOWANCE + ); + } + + if optimal_dag_cost.is_some() && optimal_tree_cost.is_some() { + assert!(optimal_dag_cost.unwrap() < optimal_tree_cost.unwrap() + EPSILON_ALLOWANCE); + } + + for e in &others { + let extract = e.extract(&egraph, &egraph.root_eclasses); + extract.check(&egraph); + let tree_cost = extract.tree_cost(&egraph, &egraph.root_eclasses); + let dag_cost = extract.dag_cost(&egraph, &egraph.root_eclasses); + + // The optimal tree cost should be <= any extractor's tree cost. + if optimal_tree_cost.is_some() { + assert!(optimal_tree_cost.unwrap() <= tree_cost + EPSILON_ALLOWANCE); + } + + if optimal_dag_cost.is_some() { + // The optimal dag should be less <= any extractor's dag cost + assert!(optimal_dag_cost.unwrap() <= dag_cost + EPSILON_ALLOWANCE); + } + } + } +} + +// Run on all the .json test files +#[test] +fn run_on_test_egraphs() { + use walkdir::WalkDir; + + let egraphs = WalkDir::new("./test_data/") + .into_iter() + .filter_map(Result::ok) + .filter(|e| { + e.file_type().is_file() + && e.path().extension().and_then(std::ffi::OsStr::to_str) == Some("json") + }) + .map(|e| e.path().to_string_lossy().into_owned()) + .map(|e| EGraph::from_json_file(e).unwrap()); + check_optimal_results(egraphs); +} + +#[test] +#[should_panic] +fn check_assert_enabled() { + assert!(false); +} + +macro_rules! create_optimal_check_tests { + ($($name:ident),*) => { + $( + #[test] + fn $name() { + let optimal_dag_found = extractors().into_iter().any(|(_, ed)| ed.optimal == Optimal::DAG); + let iterations = if optimal_dag_found { 100 } else { 10000 }; + let egraphs = (0..iterations).map(|_| generate_random_egraph()); + check_optimal_results(egraphs); + } + )* + } +} + +create_optimal_check_tests!(check0, check1, check2, check3, check4, check5, check6, check7); diff --git a/data/crafted/lots_of_paths_through_cycle.egg b/test_data/crafted/lots_of_paths_through_cycle.egg similarity index 100% rename from data/crafted/lots_of_paths_through_cycle.egg rename to test_data/crafted/lots_of_paths_through_cycle.egg diff --git a/data/crafted/lots_of_paths_through_cycle.json b/test_data/crafted/lots_of_paths_through_cycle.json similarity index 100% rename from data/crafted/lots_of_paths_through_cycle.json rename to test_data/crafted/lots_of_paths_through_cycle.json diff --git a/data/crafted/lots_of_paths_through_cycle.svg b/test_data/crafted/lots_of_paths_through_cycle.svg similarity index 100% rename from data/crafted/lots_of_paths_through_cycle.svg rename to test_data/crafted/lots_of_paths_through_cycle.svg diff --git a/data/crafted/paths.egg b/test_data/crafted/paths.egg similarity index 100% rename from data/crafted/paths.egg rename to test_data/crafted/paths.egg diff --git a/data/crafted/paths.json b/test_data/crafted/paths.json similarity index 100% rename from data/crafted/paths.json rename to test_data/crafted/paths.json diff --git a/data/crafted/paths.svg b/test_data/crafted/paths.svg similarity index 100% rename from data/crafted/paths.svg rename to test_data/crafted/paths.svg diff --git a/data/crafted/readme.md b/test_data/crafted/readme.md similarity index 100% rename from data/crafted/readme.md rename to test_data/crafted/readme.md diff --git a/data/crafted/tree.egg b/test_data/crafted/tree.egg similarity index 100% rename from data/crafted/tree.egg rename to test_data/crafted/tree.egg diff --git a/data/crafted/tree.json b/test_data/crafted/tree.json similarity index 100% rename from data/crafted/tree.json rename to test_data/crafted/tree.json diff --git a/data/crafted/tree.svg b/test_data/crafted/tree.svg similarity index 100% rename from data/crafted/tree.svg rename to test_data/crafted/tree.svg diff --git a/data/crafted/tree_plus_cycles.json b/test_data/crafted/tree_plus_cycles.json similarity index 100% rename from data/crafted/tree_plus_cycles.json rename to test_data/crafted/tree_plus_cycles.json diff --git a/data/crafted/tree_plus_cycles.svg b/test_data/crafted/tree_plus_cycles.svg similarity index 100% rename from data/crafted/tree_plus_cycles.svg rename to test_data/crafted/tree_plus_cycles.svg diff --git a/data/crafted/tree_with_cycles.egg b/test_data/crafted/tree_with_cycles.egg similarity index 100% rename from data/crafted/tree_with_cycles.egg rename to test_data/crafted/tree_with_cycles.egg diff --git a/data/fuzz/1.json b/test_data/fuzz/1.json similarity index 100% rename from data/fuzz/1.json rename to test_data/fuzz/1.json diff --git a/data/fuzz/10.json b/test_data/fuzz/10.json similarity index 100% rename from data/fuzz/10.json rename to test_data/fuzz/10.json diff --git a/data/fuzz/11.json b/test_data/fuzz/11.json similarity index 100% rename from data/fuzz/11.json rename to test_data/fuzz/11.json diff --git a/data/fuzz/12.json b/test_data/fuzz/12.json similarity index 100% rename from data/fuzz/12.json rename to test_data/fuzz/12.json diff --git a/data/fuzz/13.json b/test_data/fuzz/13.json similarity index 100% rename from data/fuzz/13.json rename to test_data/fuzz/13.json diff --git a/data/fuzz/14.json b/test_data/fuzz/14.json similarity index 100% rename from data/fuzz/14.json rename to test_data/fuzz/14.json diff --git a/data/fuzz/15.json b/test_data/fuzz/15.json similarity index 100% rename from data/fuzz/15.json rename to test_data/fuzz/15.json diff --git a/data/fuzz/16.json b/test_data/fuzz/16.json similarity index 100% rename from data/fuzz/16.json rename to test_data/fuzz/16.json diff --git a/data/fuzz/17.json b/test_data/fuzz/17.json similarity index 100% rename from data/fuzz/17.json rename to test_data/fuzz/17.json diff --git a/data/fuzz/18.json b/test_data/fuzz/18.json similarity index 100% rename from data/fuzz/18.json rename to test_data/fuzz/18.json diff --git a/test_data/fuzz/19.json b/test_data/fuzz/19.json new file mode 100644 index 0000000..8308662 --- /dev/null +++ b/test_data/fuzz/19.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":88.33907914523702},"node_1":{"op":"operation","children":[],"eclass":"0","cost":31.380094022709294},"node_2":{"op":"operation","children":[],"eclass":"0","cost":85.46008208334565},"node_3":{"op":"operation","children":[],"eclass":"1","cost":51.03798035678284},"node_4":{"op":"operation","children":[],"eclass":"1","cost":88.57609102193999},"node_5":{"op":"operation","children":["node_3","node_4"],"eclass":"1","cost":29.920743409811124},"node_6":{"op":"operation","children":[],"eclass":"1","cost":83.84156235361831},"node_7":{"op":"operation","children":[],"eclass":"1","cost":15.961085173271005},"node_8":{"op":"operation","children":["node_0","node_4"],"eclass":"2","cost":95.02774306310243},"node_9":{"op":"operation","children":[],"eclass":"2","cost":59.71792436293144},"node_10":{"op":"operation","children":["node_5"],"eclass":"2","cost":68.45922247445554},"node_11":{"op":"operation","children":["node_5","node_6","node_9"],"eclass":"2","cost":57.01097446465635},"node_12":{"op":"operation","children":["node_9"],"eclass":"2","cost":81.34398176692994},"node_13":{"op":"operation","children":["node_0","node_10"],"eclass":"2","cost":88.8278857769136},"node_14":{"op":"operation","children":["node_6"],"eclass":"2","cost":29.12956833073791},"node_15":{"op":"operation","children":["node_7"],"eclass":"2","cost":60.913906070481275},"node_16":{"op":"operation","children":["node_3","node_14"],"eclass":"2","cost":38.327931493858856},"node_17":{"op":"operation","children":[],"eclass":"2","cost":3.0666168877196975},"node_18":{"op":"operation","children":["node_3","node_8","node_13"],"eclass":"2","cost":90.71871650194228},"node_19":{"op":"operation","children":["node_17"],"eclass":"2","cost":36.90315552724963},"node_20":{"op":"operation","children":[],"eclass":"3","cost":68.74450717533955},"node_21":{"op":"operation","children":["node_15"],"eclass":"4","cost":86.4333128929997},"node_22":{"op":"operation","children":[],"eclass":"4","cost":39.135523596243125},"node_23":{"op":"operation","children":["node_0","node_2","node_22"],"eclass":"4","cost":68.33455667461268},"node_24":{"op":"operation","children":["node_2","node_4","node_5","node_7","node_10"],"eclass":"4","cost":48.63662876945013},"node_25":{"op":"operation","children":[],"eclass":"4","cost":5.275616481149159},"node_26":{"op":"operation","children":["node_22"],"eclass":"4","cost":48.82599038198296},"node_27":{"op":"operation","children":["node_7"],"eclass":"4","cost":49.69001156482923},"node_28":{"op":"operation","children":["node_5","node_12","node_20","node_24"],"eclass":"4","cost":7.036804972594057},"node_29":{"op":"operation","children":["node_17","node_28"],"eclass":"4","cost":70.54109393760133},"node_30":{"op":"operation","children":["node_6","node_7","node_14"],"eclass":"5","cost":95.93578126220126},"node_31":{"op":"operation","children":["node_5","node_13","node_25"],"eclass":"5","cost":54.28803013353224},"node_32":{"op":"operation","children":["node_7","node_10","node_30"],"eclass":"5","cost":3.572346212908928},"node_33":{"op":"operation","children":["node_0","node_10","node_15","node_24","node_32"],"eclass":"6","cost":84.31285228381701},"node_34":{"op":"operation","children":["node_1","node_3","node_16","node_22","node_23"],"eclass":"6","cost":6.515351494494381},"node_35":{"op":"operation","children":["node_1","node_13","node_22","node_32"],"eclass":"6","cost":33.036709109796256},"node_36":{"op":"operation","children":["node_24"],"eclass":"7","cost":90.6873521656599},"node_37":{"op":"operation","children":["node_1","node_2","node_8","node_29","node_31"],"eclass":"7","cost":1.8364613848407596},"node_38":{"op":"operation","children":["node_8","node_25","node_30","node_32","node_36","node_37"],"eclass":"7","cost":94.45614868004778},"node_39":{"op":"operation","children":["node_11","node_31","node_33"],"eclass":"7","cost":87.30408798371053},"node_40":{"op":"operation","children":["node_2","node_4","node_8","node_15"],"eclass":"7","cost":99.33533866173661},"node_41":{"op":"operation","children":["node_0","node_3","node_6","node_8","node_11","node_23","node_33","node_38"],"eclass":"7","cost":1.017173923360426},"node_42":{"op":"operation","children":["node_11"],"eclass":"7","cost":67.35391642646766},"node_43":{"op":"operation","children":["node_4","node_6","node_14","node_35","node_37","node_39"],"eclass":"7","cost":25.188737716223553},"node_44":{"op":"operation","children":["node_16","node_21","node_24"],"eclass":"7","cost":6.621741488453536},"node_45":{"op":"operation","children":["node_16","node_18","node_38"],"eclass":"7","cost":37.226773804762125},"node_46":{"op":"operation","children":["node_3","node_25","node_27"],"eclass":"7","cost":98.0170455983861},"node_47":{"op":"operation","children":["node_5","node_10","node_12","node_22","node_25","node_26","node_32","node_38","node_39","node_43"],"eclass":"8","cost":8.286875513283443},"node_48":{"op":"operation","children":["node_11","node_21","node_29"],"eclass":"9","cost":57.43141619732109},"node_49":{"op":"operation","children":["node_14","node_17","node_21","node_22","node_28","node_30"],"eclass":"9","cost":6.31613518850469},"node_50":{"op":"operation","children":["node_20","node_33","node_40"],"eclass":"9","cost":51.70111022535549},"node_51":{"op":"operation","children":["node_26","node_47"],"eclass":"9","cost":50.74398959092199},"node_52":{"op":"operation","children":["node_10","node_13","node_23","node_45","node_51"],"eclass":"9","cost":92.18725389709668},"node_53":{"op":"operation","children":["node_35","node_37","node_44"],"eclass":"9","cost":72.97669763885398},"node_54":{"op":"operation","children":["node_2","node_11","node_12","node_22","node_25","node_32","node_33","node_34"],"eclass":"9","cost":89.03357592761667},"node_55":{"op":"operation","children":["node_3","node_4","node_14","node_34","node_49"],"eclass":"9","cost":28.60041721917057}},"root_eclasses":["7","7","7"]} \ No newline at end of file diff --git a/data/fuzz/2.json b/test_data/fuzz/2.json similarity index 100% rename from data/fuzz/2.json rename to test_data/fuzz/2.json diff --git a/test_data/fuzz/20.json b/test_data/fuzz/20.json new file mode 100644 index 0000000..1db8135 --- /dev/null +++ b/test_data/fuzz/20.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"1","cost":70.2721327790228},"node_1":{"op":"operation","children":[],"eclass":"1","cost":6.4920232684143375},"node_2":{"op":"operation","children":[],"eclass":"1","cost":42.78088736710542},"node_3":{"op":"operation","children":[],"eclass":"2","cost":30.47070015707476},"node_4":{"op":"operation","children":[],"eclass":"2","cost":14.455712895038687},"node_5":{"op":"operation","children":[],"eclass":"3","cost":22.69943553756557},"node_6":{"op":"operation","children":[],"eclass":"3","cost":33.53070076029512},"node_7":{"op":"operation","children":[],"eclass":"3","cost":83.73756910410867},"node_8":{"op":"operation","children":["node_2"],"eclass":"4","cost":67.60765670803667},"node_9":{"op":"operation","children":[],"eclass":"4","cost":18.55732385574941},"node_10":{"op":"operation","children":["node_5","node_8"],"eclass":"4","cost":56.170358986602},"node_11":{"op":"operation","children":[],"eclass":"5","cost":36.80664953558397},"node_12":{"op":"operation","children":[],"eclass":"5","cost":39.52178205013678},"node_13":{"op":"operation","children":["node_4"],"eclass":"5","cost":1.205513686731663},"node_14":{"op":"operation","children":["node_5"],"eclass":"5","cost":90.7774707907316},"node_15":{"op":"operation","children":["node_2","node_5","node_12"],"eclass":"5","cost":93.90466701423674},"node_16":{"op":"operation","children":["node_14"],"eclass":"6","cost":3.0847826754068497},"node_17":{"op":"operation","children":["node_2"],"eclass":"6","cost":7.756700028946928},"node_18":{"op":"operation","children":["node_8","node_12","node_16"],"eclass":"6","cost":52.45963502700837},"node_19":{"op":"operation","children":["node_6","node_14"],"eclass":"7","cost":36.03764859953687},"node_20":{"op":"operation","children":["node_7","node_13"],"eclass":"7","cost":31.947599308161656},"node_21":{"op":"operation","children":["node_7","node_11"],"eclass":"8","cost":49.3596864532775},"node_22":{"op":"operation","children":["node_1","node_8","node_12","node_17","node_21"],"eclass":"8","cost":15.390197964638407},"node_23":{"op":"operation","children":["node_3","node_5","node_21"],"eclass":"8","cost":7.20230952652191},"node_24":{"op":"operation","children":["node_20"],"eclass":"8","cost":61.69559727573382},"node_25":{"op":"operation","children":["node_7","node_9"],"eclass":"9","cost":9.4732432724554},"node_26":{"op":"operation","children":["node_1","node_12","node_14"],"eclass":"9","cost":20.02570352884314},"node_27":{"op":"operation","children":["node_6"],"eclass":"9","cost":96.33510393259456},"node_28":{"op":"operation","children":["node_6","node_14"],"eclass":"9","cost":23.93519276506211},"node_29":{"op":"operation","children":["node_6"],"eclass":"9","cost":78.75924366645657},"node_30":{"op":"operation","children":["node_2","node_4","node_7","node_9","node_20","node_26","node_28"],"eclass":"9","cost":62.65046240611447},"node_31":{"op":"operation","children":["node_8","node_25"],"eclass":"9","cost":23.043537418290715},"node_32":{"op":"operation","children":[],"eclass":"10","cost":3.3183436702210245},"node_33":{"op":"operation","children":["node_0","node_9","node_22","node_26"],"eclass":"10","cost":59.46276528324592},"node_34":{"op":"operation","children":["node_0","node_6","node_13","node_20"],"eclass":"10","cost":53.570173433371714},"node_35":{"op":"operation","children":["node_16","node_25"],"eclass":"10","cost":55.49940954095498},"node_36":{"op":"operation","children":["node_9","node_14","node_21"],"eclass":"10","cost":34.13167290173868},"node_37":{"op":"operation","children":["node_13"],"eclass":"10","cost":90.13407515042354},"node_38":{"op":"operation","children":["node_25"],"eclass":"10","cost":27.670021102919783},"node_39":{"op":"operation","children":["node_1","node_16","node_27","node_35"],"eclass":"10","cost":6.382981991432968},"node_40":{"op":"operation","children":["node_0","node_5","node_15","node_20","node_28"],"eclass":"10","cost":29.291523951679743},"node_41":{"op":"operation","children":["node_9","node_10","node_14","node_17","node_20","node_25"],"eclass":"11","cost":9.616404253090671},"node_42":{"op":"operation","children":["node_8","node_9","node_11","node_12","node_22"],"eclass":"11","cost":4.298225365225717},"node_43":{"op":"operation","children":["node_5","node_18","node_28"],"eclass":"11","cost":20.76854847722258},"node_44":{"op":"operation","children":["node_6","node_19","node_22","node_25","node_39","node_41"],"eclass":"11","cost":26.588435064333872},"node_45":{"op":"operation","children":["node_21","node_34"],"eclass":"11","cost":83.36734477463786},"node_46":{"op":"operation","children":["node_8","node_35","node_40","node_43"],"eclass":"12","cost":81.82282415729807},"node_47":{"op":"operation","children":["node_6","node_9","node_10","node_13","node_25","node_38","node_43"],"eclass":"12","cost":19.32462002226243},"node_48":{"op":"operation","children":["node_3","node_25","node_28","node_37","node_39","node_43","node_44"],"eclass":"12","cost":0.4091297666135585},"node_49":{"op":"operation","children":["node_1","node_4","node_14","node_17","node_21","node_32"],"eclass":"12","cost":92.29246635554614},"node_50":{"op":"operation","children":["node_5","node_9","node_18","node_22","node_32","node_48"],"eclass":"13","cost":58.64303626683303},"node_51":{"op":"operation","children":["node_9","node_12","node_23","node_31","node_32","node_40","node_49"],"eclass":"13","cost":2.142965673606767},"node_52":{"op":"operation","children":["node_5","node_16","node_27","node_35","node_36"],"eclass":"13","cost":14.145395377038595},"node_53":{"op":"operation","children":["node_2","node_6","node_20","node_25","node_26","node_33","node_35","node_51"],"eclass":"13","cost":70.88015937485795},"node_54":{"op":"operation","children":["node_3","node_22","node_37","node_41","node_43","node_52"],"eclass":"14","cost":46.4193225258419}},"root_eclasses":["9"]} \ No newline at end of file diff --git a/test_data/fuzz/21.json b/test_data/fuzz/21.json new file mode 100644 index 0000000..01b32ee --- /dev/null +++ b/test_data/fuzz/21.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":15.916309001866768},"node_1":{"op":"operation","children":[],"eclass":"0","cost":45.006641652425415},"node_2":{"op":"operation","children":[],"eclass":"0","cost":26.574186717673044},"node_3":{"op":"operation","children":[],"eclass":"0","cost":82.72977299545025},"node_4":{"op":"operation","children":[],"eclass":"0","cost":2.5029520297463637},"node_5":{"op":"operation","children":[],"eclass":"0","cost":62.28392043578622},"node_6":{"op":"operation","children":["node_4"],"eclass":"0","cost":50.969655973909},"node_7":{"op":"operation","children":[],"eclass":"0","cost":37.22972304905486},"node_8":{"op":"operation","children":["node_4"],"eclass":"1","cost":36.944047371571344},"node_9":{"op":"operation","children":["node_0"],"eclass":"1","cost":1.917361700818676},"node_10":{"op":"operation","children":[],"eclass":"1","cost":96.78226580453675},"node_11":{"op":"operation","children":["node_0","node_9"],"eclass":"1","cost":90.04727334374908},"node_12":{"op":"operation","children":["node_8","node_10"],"eclass":"2","cost":35.31502866973818},"node_13":{"op":"operation","children":["node_2"],"eclass":"2","cost":96.21590387081852},"node_14":{"op":"operation","children":["node_3","node_5"],"eclass":"2","cost":43.22663775722686},"node_15":{"op":"operation","children":["node_11","node_12"],"eclass":"2","cost":63.13546380086782},"node_16":{"op":"operation","children":["node_1","node_6","node_13"],"eclass":"2","cost":6.847285504865597},"node_17":{"op":"operation","children":["node_2","node_4"],"eclass":"2","cost":79.7369955677064},"node_18":{"op":"operation","children":["node_11","node_15"],"eclass":"2","cost":85.98420646950858},"node_19":{"op":"operation","children":["node_12","node_17"],"eclass":"2","cost":48.929174146128304},"node_20":{"op":"operation","children":["node_0","node_6"],"eclass":"2","cost":69.72506989692391},"node_21":{"op":"operation","children":["node_0","node_17"],"eclass":"2","cost":35.47924368433549},"node_22":{"op":"operation","children":["node_9"],"eclass":"3","cost":55.15653086609672},"node_23":{"op":"operation","children":["node_10","node_22"],"eclass":"3","cost":56.352787034091534},"node_24":{"op":"operation","children":["node_5","node_8","node_10","node_14","node_18"],"eclass":"3","cost":67.06509119067412},"node_25":{"op":"operation","children":["node_20"],"eclass":"4","cost":66.19086452789679},"node_26":{"op":"operation","children":["node_9","node_11","node_13","node_19","node_22"],"eclass":"5","cost":78.97865537916408},"node_27":{"op":"operation","children":["node_3","node_4","node_10","node_11","node_17","node_23"],"eclass":"5","cost":20.537789915697292},"node_28":{"op":"operation","children":["node_2","node_9","node_13","node_17"],"eclass":"5","cost":13.983880143201377},"node_29":{"op":"operation","children":["node_6","node_13","node_19"],"eclass":"5","cost":56.64832622937044},"node_30":{"op":"operation","children":["node_16","node_20"],"eclass":"5","cost":0.4207314263296902},"node_31":{"op":"operation","children":["node_9","node_14","node_15","node_30"],"eclass":"6","cost":19.555493152526026},"node_32":{"op":"operation","children":["node_27"],"eclass":"7","cost":89.4304243804299},"node_33":{"op":"operation","children":["node_14"],"eclass":"8","cost":90.41287881790421},"node_34":{"op":"operation","children":["node_9","node_10","node_13","node_17","node_19","node_27","node_30"],"eclass":"8","cost":98.94021877473797}},"root_eclasses":["5","5"]} \ No newline at end of file diff --git a/test_data/fuzz/22.json b/test_data/fuzz/22.json new file mode 100644 index 0000000..121531d --- /dev/null +++ b/test_data/fuzz/22.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":81.72731601370266},"node_1":{"op":"operation","children":[],"eclass":"0","cost":61.840440513193826},"node_2":{"op":"operation","children":[],"eclass":"0","cost":23.87823836059647},"node_3":{"op":"operation","children":["node_1"],"eclass":"1","cost":76.29327639560273},"node_4":{"op":"operation","children":["node_1"],"eclass":"1","cost":73.6731721030058},"node_5":{"op":"operation","children":[],"eclass":"1","cost":1.257359586912421},"node_6":{"op":"operation","children":[],"eclass":"2","cost":84.2289162655649},"node_7":{"op":"operation","children":["node_5"],"eclass":"2","cost":39.895575889738986},"node_8":{"op":"operation","children":["node_1"],"eclass":"3","cost":2.470105840346304},"node_9":{"op":"operation","children":["node_1"],"eclass":"4","cost":91.50510840488799},"node_10":{"op":"operation","children":["node_0","node_3"],"eclass":"5","cost":78.90964028263414},"node_11":{"op":"operation","children":["node_2"],"eclass":"5","cost":85.89611195975871},"node_12":{"op":"operation","children":["node_10"],"eclass":"5","cost":17.12260724159772},"node_13":{"op":"operation","children":["node_9"],"eclass":"5","cost":58.99347209302045},"node_14":{"op":"operation","children":["node_2"],"eclass":"5","cost":49.55135972051907},"node_15":{"op":"operation","children":["node_3","node_11"],"eclass":"5","cost":31.26717094427426},"node_16":{"op":"operation","children":[],"eclass":"5","cost":34.595488342775226},"node_17":{"op":"operation","children":["node_0"],"eclass":"6","cost":3.982216349379808},"node_18":{"op":"operation","children":["node_1","node_2","node_15"],"eclass":"6","cost":60.51951279283118},"node_19":{"op":"operation","children":["node_8"],"eclass":"7","cost":75.60096961402832},"node_20":{"op":"operation","children":["node_3"],"eclass":"7","cost":28.900395426860815},"node_21":{"op":"operation","children":["node_8","node_17"],"eclass":"7","cost":60.40525083107118},"node_22":{"op":"operation","children":["node_2","node_14","node_16","node_19"],"eclass":"8","cost":25.063075834031313},"node_23":{"op":"operation","children":["node_6","node_20"],"eclass":"9","cost":64.52792084241851},"node_24":{"op":"operation","children":["node_12"],"eclass":"10","cost":71.95239453836321},"node_25":{"op":"operation","children":["node_4","node_10","node_18"],"eclass":"10","cost":10.643231128270225},"node_26":{"op":"operation","children":["node_3","node_5","node_15","node_17","node_22","node_24","node_25"],"eclass":"10","cost":47.705834309414854},"node_27":{"op":"operation","children":["node_3","node_10","node_16"],"eclass":"10","cost":13.16748335949568},"node_28":{"op":"operation","children":["node_4","node_7","node_18"],"eclass":"10","cost":74.35497765279682},"node_29":{"op":"operation","children":["node_18"],"eclass":"10","cost":60.87026796951951},"node_30":{"op":"operation","children":["node_20","node_21","node_24","node_29"],"eclass":"10","cost":15.866980195086333},"node_31":{"op":"operation","children":["node_4","node_25"],"eclass":"11","cost":84.32621726935523},"node_32":{"op":"operation","children":["node_0","node_10","node_13","node_20","node_26"],"eclass":"11","cost":80.9612004788205},"node_33":{"op":"operation","children":[],"eclass":"11","cost":47.078608554522695},"node_34":{"op":"operation","children":["node_5","node_9","node_22","node_26","node_28","node_30"],"eclass":"12","cost":59.17435601723828},"node_35":{"op":"operation","children":["node_2"],"eclass":"13","cost":71.57711982578198},"node_36":{"op":"operation","children":["node_4","node_19"],"eclass":"14","cost":98.81896481836625},"node_37":{"op":"operation","children":["node_8","node_33","node_35","node_36"],"eclass":"14","cost":44.33570201786433},"node_38":{"op":"operation","children":["node_6","node_14","node_22","node_28"],"eclass":"14","cost":66.82233645214886},"node_39":{"op":"operation","children":["node_3","node_6","node_16","node_21","node_38"],"eclass":"14","cost":27.56879468688791},"node_40":{"op":"operation","children":["node_14"],"eclass":"15","cost":9.019299981219142},"node_41":{"op":"operation","children":["node_1","node_17","node_29","node_36"],"eclass":"15","cost":63.551875666275016},"node_42":{"op":"operation","children":["node_5","node_14","node_20","node_23","node_30"],"eclass":"16","cost":31.675734861813687},"node_43":{"op":"operation","children":["node_10","node_20","node_31"],"eclass":"16","cost":57.090573887901044},"node_44":{"op":"operation","children":["node_2","node_7","node_15","node_26","node_30","node_31","node_34","node_36"],"eclass":"16","cost":41.811532096436935},"node_45":{"op":"operation","children":["node_19","node_31"],"eclass":"16","cost":40.90217832546929},"node_46":{"op":"operation","children":["node_11","node_23"],"eclass":"17","cost":31.39390230800938},"node_47":{"op":"operation","children":["node_27","node_28","node_31","node_35","node_43"],"eclass":"17","cost":14.697179907530922},"node_48":{"op":"operation","children":["node_19","node_20","node_24","node_35","node_36"],"eclass":"18","cost":80.3127354212841},"node_49":{"op":"operation","children":["node_18","node_20","node_28","node_31","node_42","node_45","node_46"],"eclass":"19","cost":32.26437986513751},"node_50":{"op":"operation","children":["node_1","node_3","node_5","node_20","node_27","node_40","node_41"],"eclass":"20","cost":75.43493697211659},"node_51":{"op":"operation","children":["node_0","node_21","node_23","node_26","node_31","node_32","node_38","node_43"],"eclass":"20","cost":19.591002527307744},"node_52":{"op":"operation","children":["node_0","node_6","node_12","node_22"],"eclass":"20","cost":19.34403400333291},"node_53":{"op":"operation","children":["node_6","node_8","node_13","node_21","node_23","node_32","node_36","node_42","node_50"],"eclass":"21","cost":13.917015261155308},"node_54":{"op":"operation","children":["node_10","node_17","node_18","node_20","node_22","node_26","node_33","node_39","node_44","node_48"],"eclass":"21","cost":86.0200230706855},"node_55":{"op":"operation","children":["node_25","node_27","node_28","node_31"],"eclass":"21","cost":51.947795609112546},"node_56":{"op":"operation","children":["node_6","node_9","node_11","node_13","node_19","node_24"],"eclass":"21","cost":84.33738698409569},"node_57":{"op":"operation","children":["node_0","node_13","node_33","node_39","node_56"],"eclass":"21","cost":68.39600624643339},"node_58":{"op":"operation","children":["node_16","node_21","node_23","node_33","node_46","node_57"],"eclass":"22","cost":78.44670711767986},"node_59":{"op":"operation","children":["node_1","node_3","node_41","node_46","node_56","node_57"],"eclass":"22","cost":38.90794665406126},"node_60":{"op":"operation","children":["node_20","node_28","node_55"],"eclass":"22","cost":92.00425932588365},"node_61":{"op":"operation","children":["node_1","node_2","node_9","node_23","node_28","node_29","node_33","node_47","node_48","node_60"],"eclass":"22","cost":30.061744753570864},"node_62":{"op":"operation","children":["node_11","node_24","node_29","node_49"],"eclass":"22","cost":40.416211257191925},"node_63":{"op":"operation","children":["node_16","node_18","node_26","node_34","node_55"],"eclass":"22","cost":60.19428938650192},"node_64":{"op":"operation","children":["node_6","node_15","node_23","node_35","node_44","node_61"],"eclass":"22","cost":98.14476586000809},"node_65":{"op":"operation","children":["node_5","node_8","node_25","node_31","node_39","node_56","node_57","node_58","node_60"],"eclass":"22","cost":97.17049862719418},"node_66":{"op":"operation","children":["node_4","node_20","node_38","node_46","node_52","node_53","node_54","node_59","node_62"],"eclass":"22","cost":59.10344092049825},"node_67":{"op":"operation","children":["node_21","node_34","node_46","node_50","node_57"],"eclass":"22","cost":66.00600033799952},"node_68":{"op":"operation","children":["node_2","node_3","node_5","node_8","node_12","node_14","node_16","node_26","node_27","node_33","node_40","node_44","node_48","node_65"],"eclass":"22","cost":30.12582823984208},"node_69":{"op":"operation","children":["node_12","node_18","node_31","node_32","node_51","node_52","node_63"],"eclass":"22","cost":41.441861482951026},"node_70":{"op":"operation","children":["node_3","node_14","node_40","node_43","node_44","node_55","node_61","node_63","node_66"],"eclass":"22","cost":2.1162182922892625},"node_71":{"op":"operation","children":["node_25","node_26","node_39","node_42","node_54"],"eclass":"22","cost":5.433405305490124},"node_72":{"op":"operation","children":["node_7","node_24","node_25","node_29","node_41","node_52","node_59"],"eclass":"22","cost":20.70807400759167},"node_73":{"op":"operation","children":["node_8","node_9","node_11","node_34","node_39","node_59","node_63","node_64","node_68"],"eclass":"22","cost":6.86035111496982},"node_74":{"op":"operation","children":["node_9","node_20","node_52","node_63","node_72"],"eclass":"22","cost":60.568962458393074},"node_75":{"op":"operation","children":["node_21","node_37","node_52","node_57","node_59","node_60","node_65","node_67"],"eclass":"23","cost":61.87936884962458},"node_76":{"op":"operation","children":["node_7","node_16","node_23","node_24","node_41","node_61","node_69","node_72"],"eclass":"23","cost":22.591383462696555},"node_77":{"op":"operation","children":["node_8","node_40","node_43","node_46","node_48","node_49","node_50","node_53","node_54"],"eclass":"23","cost":92.10557669601617},"node_78":{"op":"operation","children":["node_14","node_48","node_56","node_64","node_66","node_68"],"eclass":"23","cost":25.61415150508235},"node_79":{"op":"operation","children":["node_12","node_30","node_50","node_51","node_57","node_66","node_76","node_77"],"eclass":"23","cost":6.487611118700376},"node_80":{"op":"operation","children":["node_19","node_23","node_25","node_28","node_29","node_41","node_49","node_68","node_72"],"eclass":"23","cost":13.780151475841206},"node_81":{"op":"operation","children":["node_0","node_10","node_32","node_52","node_65"],"eclass":"23","cost":41.545995426950945},"node_82":{"op":"operation","children":["node_4","node_35","node_56","node_62","node_71","node_76"],"eclass":"24","cost":9.414449941306291},"node_83":{"op":"operation","children":["node_6","node_12","node_31"],"eclass":"24","cost":54.96366721903715},"node_84":{"op":"operation","children":["node_8","node_21","node_43","node_50","node_60"],"eclass":"25","cost":4.08733590220497},"node_85":{"op":"operation","children":["node_1","node_3","node_16","node_19","node_22","node_57","node_63","node_84"],"eclass":"25","cost":54.90980652822625},"node_86":{"op":"operation","children":["node_8","node_14","node_16","node_22","node_23","node_30","node_37","node_46","node_47","node_48","node_53","node_55","node_70","node_76","node_85"],"eclass":"25","cost":50.08928256206485},"node_87":{"op":"operation","children":["node_1","node_16","node_31","node_49","node_64","node_72","node_81","node_84"],"eclass":"25","cost":48.19985847674613},"node_88":{"op":"operation","children":["node_4","node_17","node_45","node_52","node_60","node_70"],"eclass":"25","cost":34.7103173037639},"node_89":{"op":"operation","children":["node_0","node_11","node_12","node_23","node_31","node_58","node_61","node_74"],"eclass":"26","cost":86.2187207441071}},"root_eclasses":["10"]} \ No newline at end of file diff --git a/test_data/fuzz/23.json b/test_data/fuzz/23.json new file mode 100644 index 0000000..f7deaf7 --- /dev/null +++ b/test_data/fuzz/23.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"1","cost":54.64997330152681},"node_1":{"op":"operation","children":[],"eclass":"1","cost":66.30528884620492},"node_2":{"op":"operation","children":["node_0"],"eclass":"1","cost":39.3955341898012},"node_3":{"op":"operation","children":[],"eclass":"1","cost":99.70091594999509},"node_4":{"op":"operation","children":[],"eclass":"1","cost":10.693089185914717},"node_5":{"op":"operation","children":[],"eclass":"1","cost":98.02606760680351},"node_6":{"op":"operation","children":["node_4"],"eclass":"2","cost":14.066986045589648},"node_7":{"op":"operation","children":[],"eclass":"3","cost":49.764994247471925},"node_8":{"op":"operation","children":["node_3"],"eclass":"3","cost":93.72300384230631},"node_9":{"op":"operation","children":[],"eclass":"3","cost":50.02884970508033},"node_10":{"op":"operation","children":[],"eclass":"4","cost":44.90960964980205},"node_11":{"op":"operation","children":["node_1","node_3","node_4"],"eclass":"4","cost":64.37342480922005},"node_12":{"op":"operation","children":["node_6","node_10"],"eclass":"4","cost":4.32980598247571},"node_13":{"op":"operation","children":["node_5"],"eclass":"5","cost":33.53163932128209},"node_14":{"op":"operation","children":[],"eclass":"5","cost":31.29034479423307},"node_15":{"op":"operation","children":[],"eclass":"5","cost":78.05078468750327},"node_16":{"op":"operation","children":["node_7"],"eclass":"6","cost":61.87744240851375},"node_17":{"op":"operation","children":["node_11"],"eclass":"6","cost":8.199823825268881},"node_18":{"op":"operation","children":[],"eclass":"6","cost":36.97705416591231},"node_19":{"op":"operation","children":["node_6","node_11"],"eclass":"6","cost":48.596839746890744},"node_20":{"op":"operation","children":["node_0","node_17"],"eclass":"6","cost":89.67819199437776},"node_21":{"op":"operation","children":["node_6","node_8","node_9"],"eclass":"7","cost":52.83000047198371},"node_22":{"op":"operation","children":["node_6","node_12"],"eclass":"7","cost":71.0338406450544},"node_23":{"op":"operation","children":["node_10","node_12"],"eclass":"8","cost":93.81893195459055},"node_24":{"op":"operation","children":["node_13","node_17","node_18","node_21","node_23"],"eclass":"8","cost":13.623535804483932},"node_25":{"op":"operation","children":["node_18"],"eclass":"8","cost":22.445526079654023},"node_26":{"op":"operation","children":["node_6","node_18","node_22"],"eclass":"9","cost":29.573153686769505},"node_27":{"op":"operation","children":["node_6","node_22"],"eclass":"9","cost":45.088433342410006},"node_28":{"op":"operation","children":["node_0","node_8","node_10","node_13","node_24","node_25","node_27","node_30","node_33","node_37","node_40","node_44","node_56","node_58"],"eclass":"16","cost":74.15258658270848},"node_29":{"op":"operation","children":["node_6","node_15","node_16","node_18","node_19","node_27","node_37","node_45"],"eclass":"11","cost":51.40506887918096},"node_30":{"op":"operation","children":["node_8","node_24","node_25","node_29","node_38","node_42","node_51","node_56"],"eclass":"12","cost":99.12602704710251},"node_31":{"op":"operation","children":["node_3","node_11","node_17","node_27","node_32","node_37","node_46","node_55","node_58"],"eclass":"18","cost":84.47835922407417},"node_32":{"op":"operation","children":["node_0","node_3","node_9","node_12","node_14","node_19","node_20","node_34","node_49","node_57","node_58"],"eclass":"14","cost":66.22618147940508},"node_33":{"op":"operation","children":["node_4","node_6","node_14","node_25","node_29","node_30","node_34","node_35","node_39","node_41","node_43","node_44","node_46","node_55"],"eclass":"17","cost":69.33905003686397},"node_34":{"op":"operation","children":["node_5","node_8","node_9","node_13","node_18","node_23","node_26","node_31","node_32","node_33","node_35","node_38","node_45","node_50","node_51","node_56"],"eclass":"0","cost":12.293827013372304},"node_35":{"op":"operation","children":["node_2","node_4","node_6","node_8","node_12","node_14","node_17","node_22","node_24","node_26","node_33","node_37","node_39","node_49","node_53","node_56"],"eclass":"13","cost":10.758975922136916},"node_36":{"op":"operation","children":["node_6","node_7","node_24","node_45","node_46","node_50","node_54","node_58"],"eclass":"17","cost":78.82079513109663},"node_37":{"op":"operation","children":["node_1","node_15","node_16","node_18","node_20","node_26","node_28","node_35","node_40","node_44","node_53"],"eclass":"1","cost":19.361660777056844},"node_38":{"op":"operation","children":["node_3","node_6","node_7","node_12","node_13","node_14","node_22","node_23","node_24","node_38","node_53"],"eclass":"16","cost":66.74239379539344},"node_39":{"op":"operation","children":["node_3","node_7","node_10","node_12","node_13","node_19","node_24","node_26","node_27","node_29","node_36","node_40","node_43"],"eclass":"8","cost":93.75777747234903},"node_40":{"op":"operation","children":["node_0","node_2","node_14","node_16","node_17","node_19","node_22","node_28","node_31","node_34","node_37","node_42","node_49","node_53"],"eclass":"4","cost":41.85196325023311},"node_41":{"op":"operation","children":["node_0","node_2","node_7","node_9","node_12","node_13","node_14","node_30","node_33","node_35","node_37","node_38","node_40","node_41","node_51","node_52","node_55"],"eclass":"17","cost":8.981606922906426},"node_42":{"op":"operation","children":["node_11","node_14","node_28","node_29","node_30","node_33","node_42","node_50","node_51"],"eclass":"1","cost":32.82760495329246},"node_43":{"op":"operation","children":["node_1","node_2","node_8","node_12","node_13","node_19","node_22","node_30","node_40","node_42","node_49","node_52","node_57"],"eclass":"14","cost":34.278903180698606},"node_44":{"op":"operation","children":["node_11","node_18","node_20","node_21","node_35","node_46","node_58"],"eclass":"14","cost":89.25077776383279},"node_45":{"op":"operation","children":["node_3","node_12","node_13","node_25","node_37","node_46","node_49","node_56"],"eclass":"6","cost":6.08017960096463},"node_46":{"op":"operation","children":["node_0","node_2","node_8","node_11","node_12","node_37","node_41","node_43","node_44","node_51","node_55","node_57"],"eclass":"8","cost":26.153367363667368},"node_47":{"op":"operation","children":["node_1","node_8","node_11","node_17","node_20","node_21","node_22","node_31","node_32","node_38","node_53"],"eclass":"9","cost":96.78072617655438},"node_48":{"op":"operation","children":["node_1","node_2","node_4","node_7","node_9","node_10","node_12","node_15","node_17","node_20","node_21","node_27","node_29","node_36","node_47","node_48","node_49","node_55","node_57","node_58"],"eclass":"5","cost":43.96988797945035},"node_49":{"op":"operation","children":["node_2","node_3","node_10","node_17","node_24","node_26","node_27","node_30","node_31","node_32","node_35","node_38","node_43","node_54"],"eclass":"4","cost":95.81867206661818},"node_50":{"op":"operation","children":["node_1","node_10","node_16","node_21","node_45","node_46","node_54","node_58"],"eclass":"17","cost":58.33863986317455},"node_51":{"op":"operation","children":["node_7","node_9","node_26","node_32","node_41","node_42","node_52","node_56"],"eclass":"12","cost":79.45194743721602},"node_52":{"op":"operation","children":["node_2","node_21","node_22","node_27","node_35","node_36","node_39","node_42","node_56","node_58"],"eclass":"5","cost":45.83652224896523},"node_53":{"op":"operation","children":["node_4","node_5","node_6","node_10","node_18","node_19","node_28","node_29","node_33","node_36","node_43","node_48","node_51","node_53","node_58"],"eclass":"16","cost":6.824645928775874},"node_54":{"op":"operation","children":["node_3","node_4","node_5","node_9","node_10","node_18","node_21","node_22","node_31","node_41","node_44","node_45","node_49","node_58"],"eclass":"17","cost":5.700356936636464},"node_55":{"op":"operation","children":["node_3","node_9","node_22","node_26","node_34","node_35","node_38","node_39","node_46","node_51","node_56","node_58"],"eclass":"0","cost":40.710499295375705},"node_56":{"op":"operation","children":["node_1","node_22","node_26","node_36","node_39","node_44","node_52","node_58"],"eclass":"4","cost":79.05298890198702},"node_57":{"op":"operation","children":["node_6","node_9","node_10","node_16","node_31","node_33","node_48","node_50","node_56"],"eclass":"5","cost":21.137656399631233},"node_58":{"op":"operation","children":["node_4","node_5","node_10","node_17","node_23","node_27","node_45","node_48","node_50","node_56","node_58"],"eclass":"14","cost":20.52556231889431}},"root_eclasses":["8"]} \ No newline at end of file diff --git a/test_data/fuzz/24.json b/test_data/fuzz/24.json new file mode 100644 index 0000000..cf9cee2 --- /dev/null +++ b/test_data/fuzz/24.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":82.70595842177059},"node_1":{"op":"operation","children":[],"eclass":"1","cost":8.150694607846065},"node_2":{"op":"operation","children":["node_0"],"eclass":"1","cost":32.34183774416165},"node_3":{"op":"operation","children":["node_2"],"eclass":"1","cost":77.47340310975892},"node_4":{"op":"operation","children":["node_1"],"eclass":"1","cost":19.874748483693416},"node_5":{"op":"operation","children":[],"eclass":"1","cost":93.81256338686185},"node_6":{"op":"operation","children":["node_2","node_3","node_10","node_12","node_17","node_18","node_19","node_20","node_25","node_26"],"eclass":"0","cost":35.922621294409815},"node_7":{"op":"operation","children":["node_3","node_7","node_9","node_10","node_12","node_17","node_28","node_30","node_33"],"eclass":"0","cost":54.1673895222935},"node_8":{"op":"operation","children":["node_4","node_5","node_8","node_9","node_16","node_17","node_25","node_29","node_32"],"eclass":"0","cost":51.67402522972926},"node_9":{"op":"operation","children":["node_16"],"eclass":"1","cost":72.93572014804055},"node_10":{"op":"operation","children":["node_0","node_17","node_18","node_25","node_28","node_29","node_33"],"eclass":"1","cost":62.67718669793816},"node_11":{"op":"operation","children":["node_25","node_26","node_27"],"eclass":"1","cost":14.67356960586833},"node_12":{"op":"operation","children":["node_1","node_14","node_19","node_22","node_27","node_28","node_29"],"eclass":"2","cost":83.662832572598},"node_13":{"op":"operation","children":["node_0","node_1","node_5","node_11","node_17","node_22","node_30"],"eclass":"1","cost":88.8166221708033},"node_14":{"op":"operation","children":["node_1","node_3","node_7","node_26","node_27"],"eclass":"2","cost":36.790885658720676},"node_15":{"op":"operation","children":["node_3","node_11","node_12","node_17","node_18","node_31","node_33"],"eclass":"2","cost":16.299919355302016},"node_16":{"op":"operation","children":["node_1","node_3","node_7","node_14","node_16","node_18","node_21","node_31"],"eclass":"1","cost":75.86443518611648},"node_17":{"op":"operation","children":["node_0","node_7","node_8","node_12","node_15","node_21","node_29"],"eclass":"0","cost":77.15513231496544},"node_18":{"op":"operation","children":["node_0","node_10","node_14","node_25","node_29"],"eclass":"1","cost":24.687893261855244},"node_19":{"op":"operation","children":["node_3","node_4","node_6","node_7","node_19","node_30","node_32"],"eclass":"2","cost":60.030393969186605},"node_20":{"op":"operation","children":["node_3","node_7","node_8","node_12","node_15","node_19","node_29"],"eclass":"2","cost":14.39181964513805},"node_21":{"op":"operation","children":["node_6","node_9","node_10","node_12","node_17","node_21","node_26","node_28"],"eclass":"2","cost":72.6170009692647},"node_22":{"op":"operation","children":["node_9","node_18","node_22","node_25"],"eclass":"1","cost":96.96352787905099},"node_23":{"op":"operation","children":["node_0","node_6","node_18","node_21","node_22","node_26"],"eclass":"2","cost":25.922470824057932},"node_24":{"op":"operation","children":["node_0","node_3","node_8","node_18","node_31","node_32"],"eclass":"2","cost":8.010829947079024},"node_25":{"op":"operation","children":["node_8","node_14","node_18","node_26","node_27","node_28"],"eclass":"2","cost":17.117241809076646},"node_26":{"op":"operation","children":["node_1","node_3","node_6","node_9","node_21","node_23","node_27","node_28","node_31"],"eclass":"2","cost":14.557837336660906},"node_27":{"op":"operation","children":["node_3","node_5","node_10","node_24","node_33"],"eclass":"2","cost":15.91392398519601},"node_28":{"op":"operation","children":["node_1","node_6","node_9","node_11","node_14","node_16","node_19","node_20","node_28"],"eclass":"1","cost":80.44476173740019},"node_29":{"op":"operation","children":["node_1","node_5","node_10","node_12","node_17","node_20","node_21","node_25","node_30"],"eclass":"2","cost":7.0965262886099945},"node_30":{"op":"operation","children":["node_11","node_21"],"eclass":"1","cost":29.918095729861392},"node_31":{"op":"operation","children":["node_7","node_12","node_24"],"eclass":"2","cost":18.479513139763405},"node_32":{"op":"operation","children":["node_22","node_33"],"eclass":"2","cost":72.72748302299559},"node_33":{"op":"operation","children":["node_1","node_2","node_5","node_14","node_21"],"eclass":"0","cost":1.8995874320782313}},"root_eclasses":["0","1"]} \ No newline at end of file diff --git a/test_data/fuzz/25.json b/test_data/fuzz/25.json new file mode 100644 index 0000000..842a777 --- /dev/null +++ b/test_data/fuzz/25.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":81.49348232291926},"node_1":{"op":"operation","children":["node_0"],"eclass":"0","cost":44.824225769224554},"node_2":{"op":"operation","children":[],"eclass":"0","cost":41.79415705249699},"node_3":{"op":"operation","children":["node_1"],"eclass":"1","cost":64.7505914843587},"node_4":{"op":"operation","children":[],"eclass":"1","cost":18.69712634184123},"node_5":{"op":"operation","children":["node_3"],"eclass":"1","cost":9.303340186461407},"node_6":{"op":"operation","children":[],"eclass":"1","cost":12.949251689602548},"node_7":{"op":"operation","children":["node_0"],"eclass":"1","cost":29.614697426358973},"node_8":{"op":"operation","children":["node_4","node_7"],"eclass":"1","cost":72.52149547768497},"node_9":{"op":"operation","children":["node_1","node_3","node_4"],"eclass":"1","cost":28.09397548083342},"node_10":{"op":"operation","children":["node_8"],"eclass":"1","cost":98.41167989173968},"node_11":{"op":"operation","children":["node_2"],"eclass":"1","cost":46.73854313806189},"node_12":{"op":"operation","children":[],"eclass":"1","cost":54.10989360944188},"node_13":{"op":"operation","children":["node_1","node_20","node_21","node_29"],"eclass":"1","cost":95.69637526273638},"node_14":{"op":"operation","children":["node_10","node_11","node_13","node_14","node_15","node_23"],"eclass":"0","cost":71.1468147459218},"node_15":{"op":"operation","children":["node_7","node_13","node_15","node_16","node_23"],"eclass":"0","cost":66.51359475864535},"node_16":{"op":"operation","children":["node_0","node_1","node_5","node_9","node_11","node_13","node_16","node_19","node_21"],"eclass":"1","cost":81.58446997600437},"node_17":{"op":"operation","children":["node_0","node_8","node_12","node_17","node_24","node_28","node_29"],"eclass":"2","cost":81.00361178070425},"node_18":{"op":"operation","children":["node_0","node_1","node_6","node_18"],"eclass":"0","cost":80.27017798616355},"node_19":{"op":"operation","children":["node_0","node_8","node_10","node_18","node_25","node_29"],"eclass":"0","cost":33.22698448317113},"node_20":{"op":"operation","children":["node_8","node_10","node_11","node_16","node_17","node_24","node_27"],"eclass":"1","cost":90.21342680974864},"node_21":{"op":"operation","children":["node_3","node_6","node_7","node_12","node_19","node_24"],"eclass":"1","cost":32.98634032293491},"node_22":{"op":"operation","children":["node_0","node_3","node_6","node_8","node_13","node_18","node_21","node_29"],"eclass":"1","cost":30.30018180349716},"node_23":{"op":"operation","children":["node_0","node_1","node_11","node_14","node_26"],"eclass":"2","cost":94.18662974991324},"node_24":{"op":"operation","children":["node_3","node_14","node_19","node_25"],"eclass":"2","cost":8.789008375767594},"node_25":{"op":"operation","children":["node_1","node_16","node_18","node_24","node_29"],"eclass":"1","cost":99.54326253208112},"node_26":{"op":"operation","children":["node_0","node_1","node_13","node_23","node_24"],"eclass":"0","cost":56.80987700262242},"node_27":{"op":"operation","children":["node_14","node_28"],"eclass":"2","cost":98.48927089277308},"node_28":{"op":"operation","children":["node_6","node_8","node_9","node_22","node_27"],"eclass":"0","cost":11.197705228199128},"node_29":{"op":"operation","children":["node_1","node_2","node_6","node_12","node_14","node_25"],"eclass":"0","cost":45.21306229325308}},"root_eclasses":["1","1","0","0"]} \ No newline at end of file diff --git a/test_data/fuzz/26.json b/test_data/fuzz/26.json new file mode 100644 index 0000000..c1919dd --- /dev/null +++ b/test_data/fuzz/26.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":68.39239753247197},"node_1":{"op":"operation","children":[],"eclass":"0","cost":30.200185401949465},"node_2":{"op":"operation","children":[],"eclass":"1","cost":66.47351238494649},"node_3":{"op":"operation","children":[],"eclass":"1","cost":99.83014756959024},"node_4":{"op":"operation","children":[],"eclass":"1","cost":85.246448388275},"node_5":{"op":"operation","children":["node_0"],"eclass":"1","cost":38.205060404114},"node_6":{"op":"operation","children":["node_4"],"eclass":"1","cost":4.511195847324667},"node_7":{"op":"operation","children":["node_2","node_10","node_11","node_12","node_13","node_14","node_28","node_31","node_32","node_36","node_40","node_42","node_44","node_46","node_51"],"eclass":"2","cost":85.39391351517916},"node_8":{"op":"operation","children":["node_5","node_6","node_12","node_28","node_44"],"eclass":"1","cost":1.586660545366958},"node_9":{"op":"operation","children":["node_0","node_1","node_5","node_6","node_9","node_12","node_17","node_18","node_23","node_37","node_40","node_43","node_45"],"eclass":"2","cost":50.47913820304706},"node_10":{"op":"operation","children":["node_0","node_7","node_23","node_24","node_29","node_31","node_40","node_43","node_46"],"eclass":"1","cost":8.33310641545596},"node_11":{"op":"operation","children":["node_3","node_7","node_24","node_28","node_33","node_34","node_40","node_41","node_43","node_46"],"eclass":"1","cost":92.76605821340365},"node_12":{"op":"operation","children":["node_19","node_25","node_28","node_42","node_44","node_46"],"eclass":"1","cost":85.72889111447323},"node_13":{"op":"operation","children":["node_0","node_2","node_3","node_7","node_14","node_20","node_21","node_29","node_35","node_38","node_52"],"eclass":"1","cost":8.000871103942286},"node_14":{"op":"operation","children":["node_5","node_9","node_12","node_31","node_33","node_37","node_43","node_45"],"eclass":"1","cost":30.1960361261587},"node_15":{"op":"operation","children":["node_8","node_12","node_16","node_18","node_19","node_31","node_32","node_41","node_42","node_43","node_45","node_47"],"eclass":"2","cost":61.26128804991161},"node_16":{"op":"operation","children":["node_1","node_11","node_16","node_17","node_18","node_19","node_28","node_30","node_31","node_45","node_49"],"eclass":"0","cost":52.42143546992336},"node_17":{"op":"operation","children":["node_0","node_12","node_15","node_16","node_21","node_22","node_24","node_25","node_28","node_32","node_36","node_37","node_44","node_46"],"eclass":"1","cost":18.1760394815201},"node_18":{"op":"operation","children":["node_11","node_15","node_16","node_19","node_27","node_31","node_33","node_37","node_49","node_52"],"eclass":"2","cost":22.607708865456154},"node_19":{"op":"operation","children":["node_1","node_7","node_8","node_9","node_10","node_12","node_13","node_18","node_22","node_24","node_29","node_45","node_47","node_52"],"eclass":"0","cost":22.222187021286434},"node_20":{"op":"operation","children":["node_2","node_7","node_8","node_13","node_16","node_21","node_33","node_42","node_52"],"eclass":"1","cost":45.01675149781639},"node_21":{"op":"operation","children":["node_0","node_26","node_30","node_34","node_39","node_45","node_46","node_49","node_50"],"eclass":"2","cost":90.98806600856926},"node_22":{"op":"operation","children":["node_0","node_2","node_10","node_11","node_23","node_27","node_29","node_33","node_35","node_44"],"eclass":"0","cost":78.10269355069457},"node_23":{"op":"operation","children":["node_2","node_6","node_16","node_24","node_38","node_47","node_52"],"eclass":"1","cost":70.06106569925443},"node_24":{"op":"operation","children":["node_13","node_17","node_23","node_34","node_40","node_45","node_47","node_50","node_51","node_52"],"eclass":"1","cost":91.74608275039371},"node_25":{"op":"operation","children":["node_4","node_10","node_22","node_26","node_27","node_30","node_31","node_32"],"eclass":"1","cost":85.77973152827782},"node_26":{"op":"operation","children":["node_0","node_1","node_25","node_33","node_40","node_42","node_44","node_48"],"eclass":"2","cost":1.1304177682719851},"node_27":{"op":"operation","children":["node_2","node_3","node_6","node_8","node_28","node_31","node_35","node_41","node_46","node_51"],"eclass":"2","cost":72.271823795759},"node_28":{"op":"operation","children":["node_2","node_4","node_5","node_17","node_21","node_23","node_24","node_25","node_27","node_39","node_45","node_46","node_48","node_49"],"eclass":"1","cost":35.22941895085342},"node_29":{"op":"operation","children":["node_3","node_7","node_8","node_9","node_10","node_11","node_13","node_17","node_23","node_27","node_28","node_31","node_33","node_34","node_42","node_45","node_49","node_52"],"eclass":"1","cost":51.88571065469903},"node_30":{"op":"operation","children":["node_3","node_5","node_12","node_24","node_27","node_29","node_33","node_37","node_38","node_39"],"eclass":"1","cost":46.73455127371559},"node_31":{"op":"operation","children":["node_5","node_10","node_11","node_33","node_42","node_43","node_44"],"eclass":"2","cost":59.218383107949265},"node_32":{"op":"operation","children":["node_11","node_21","node_22","node_30","node_36","node_37","node_41"],"eclass":"1","cost":2.5268581259877743},"node_33":{"op":"operation","children":["node_0","node_1","node_3","node_24","node_29","node_35","node_44"],"eclass":"2","cost":7.207100839945602},"node_34":{"op":"operation","children":["node_4","node_10","node_11","node_16","node_33","node_34","node_35","node_36","node_44","node_46","node_52"],"eclass":"0","cost":13.008976316507692},"node_35":{"op":"operation","children":["node_9","node_12","node_15","node_18","node_26","node_34","node_37","node_52"],"eclass":"1","cost":69.4114890967628},"node_36":{"op":"operation","children":["node_0","node_6","node_13","node_25","node_26","node_27","node_29","node_40","node_44"],"eclass":"2","cost":62.69884382532951},"node_37":{"op":"operation","children":["node_2","node_10","node_14","node_26","node_32","node_33","node_34","node_42","node_45","node_48","node_50"],"eclass":"1","cost":52.78769581807013},"node_38":{"op":"operation","children":["node_2","node_4","node_16","node_18","node_22","node_23","node_25","node_36","node_41"],"eclass":"0","cost":13.466824249836396},"node_39":{"op":"operation","children":["node_5","node_11","node_37","node_40","node_46"],"eclass":"0","cost":22.082789041391926},"node_40":{"op":"operation","children":["node_12","node_22","node_26","node_39","node_49","node_51"],"eclass":"2","cost":86.91019513705197},"node_41":{"op":"operation","children":["node_0","node_11","node_17","node_22","node_28","node_33","node_36","node_38","node_41","node_43"],"eclass":"1","cost":70.34430460999737},"node_42":{"op":"operation","children":["node_3","node_15","node_29","node_40","node_48","node_50","node_52"],"eclass":"2","cost":77.09214638923368},"node_43":{"op":"operation","children":["node_3","node_11","node_13","node_18","node_24","node_34","node_49"],"eclass":"0","cost":21.13880929929629},"node_44":{"op":"operation","children":["node_3","node_12","node_14","node_16","node_33","node_36","node_40","node_43","node_44","node_46"],"eclass":"0","cost":3.8115375951501718},"node_45":{"op":"operation","children":["node_0","node_8","node_14","node_27","node_29","node_34","node_42","node_44","node_47","node_49"],"eclass":"0","cost":84.49769894156397},"node_46":{"op":"operation","children":["node_1","node_5","node_10","node_11","node_13","node_14","node_18","node_19","node_23","node_33","node_34","node_35","node_36","node_40","node_49"],"eclass":"1","cost":83.32974122422202},"node_47":{"op":"operation","children":["node_3","node_11","node_14","node_25","node_30","node_35","node_40","node_41","node_45","node_50"],"eclass":"2","cost":5.383429262389328},"node_48":{"op":"operation","children":["node_4","node_5","node_9","node_14","node_26","node_28","node_30","node_33","node_36","node_49","node_50"],"eclass":"1","cost":80.26373308689739},"node_49":{"op":"operation","children":["node_17","node_18","node_23","node_28","node_31","node_33","node_34","node_35"],"eclass":"2","cost":46.77585828536171},"node_50":{"op":"operation","children":["node_6","node_13","node_22","node_45","node_48"],"eclass":"0","cost":29.363257646104568},"node_51":{"op":"operation","children":["node_0","node_15","node_23","node_27","node_31","node_44","node_52"],"eclass":"2","cost":97.63072904374222},"node_52":{"op":"operation","children":["node_2","node_3","node_4","node_8","node_10","node_11","node_14","node_19","node_20","node_21","node_27","node_28","node_38","node_44","node_45","node_46"],"eclass":"0","cost":24.87182253716974}},"root_eclasses":["1","0","0"]} \ No newline at end of file diff --git a/test_data/fuzz/27.json b/test_data/fuzz/27.json new file mode 100644 index 0000000..4448aae --- /dev/null +++ b/test_data/fuzz/27.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":74.38199136254883},"node_1":{"op":"operation","children":["node_0"],"eclass":"0","cost":0.8902953771771305},"node_2":{"op":"operation","children":["node_0"],"eclass":"0","cost":85.59650742142563},"node_3":{"op":"operation","children":["node_2"],"eclass":"0","cost":55.423462339546944},"node_4":{"op":"operation","children":["node_1"],"eclass":"0","cost":27.140543375554948},"node_5":{"op":"operation","children":["node_1"],"eclass":"0","cost":85.75466615273031},"node_6":{"op":"operation","children":[],"eclass":"1","cost":90.41151241676896},"node_7":{"op":"operation","children":["node_0","node_2","node_3"],"eclass":"1","cost":95.48088511042222},"node_8":{"op":"operation","children":[],"eclass":"1","cost":70.18432513049392},"node_9":{"op":"operation","children":[],"eclass":"1","cost":67.11257403875187},"node_10":{"op":"operation","children":["node_3"],"eclass":"1","cost":0.35813720788374637},"node_11":{"op":"operation","children":[],"eclass":"1","cost":62.86050415252525},"node_12":{"op":"operation","children":[],"eclass":"1","cost":2.028541567468156},"node_13":{"op":"operation","children":[],"eclass":"2","cost":9.495030322461439},"node_14":{"op":"operation","children":["node_1"],"eclass":"2","cost":20.8593779331836},"node_15":{"op":"operation","children":[],"eclass":"2","cost":41.340836967809125},"node_16":{"op":"operation","children":["node_5","node_11"],"eclass":"2","cost":8.27720570189866},"node_17":{"op":"operation","children":["node_11","node_12"],"eclass":"2","cost":68.67215688170548},"node_18":{"op":"operation","children":["node_0","node_12"],"eclass":"2","cost":69.2858653284966},"node_19":{"op":"operation","children":["node_5","node_15","node_16"],"eclass":"2","cost":80.8933360020329},"node_20":{"op":"operation","children":["node_4"],"eclass":"2","cost":50.168733727211},"node_21":{"op":"operation","children":["node_1","node_14"],"eclass":"2","cost":73.6011204424736},"node_22":{"op":"operation","children":["node_0","node_4","node_8","node_15","node_21"],"eclass":"3","cost":28.66972569787253},"node_23":{"op":"operation","children":["node_0","node_6","node_7","node_12","node_22"],"eclass":"3","cost":7.261125562889226},"node_24":{"op":"operation","children":["node_7","node_9","node_15","node_18"],"eclass":"4","cost":28.105221321778096},"node_25":{"op":"operation","children":["node_5","node_6","node_16","node_20"],"eclass":"4","cost":8.324858114379852},"node_26":{"op":"operation","children":["node_7","node_18"],"eclass":"5","cost":50.674663084242844},"node_27":{"op":"operation","children":["node_3","node_12","node_22"],"eclass":"5","cost":97.68483324019185},"node_28":{"op":"operation","children":["node_21","node_22"],"eclass":"5","cost":39.137890517615645},"node_29":{"op":"operation","children":["node_7"],"eclass":"6","cost":6.181231048745895},"node_30":{"op":"operation","children":["node_20"],"eclass":"6","cost":3.886306062407485},"node_31":{"op":"operation","children":["node_8","node_9","node_13","node_15","node_24","node_27","node_29"],"eclass":"6","cost":93.28702143271094},"node_32":{"op":"operation","children":["node_0","node_4","node_14","node_16"],"eclass":"6","cost":70.19786802913649},"node_33":{"op":"operation","children":["node_5","node_24"],"eclass":"6","cost":22.960209529280807},"node_34":{"op":"operation","children":["node_10","node_17","node_18","node_27","node_29"],"eclass":"6","cost":13.467275210268404},"node_35":{"op":"operation","children":["node_4","node_6","node_16","node_22","node_28"],"eclass":"6","cost":99.04654407939594},"node_36":{"op":"operation","children":["node_3","node_6"],"eclass":"6","cost":12.33827788034385},"node_37":{"op":"operation","children":["node_4","node_35"],"eclass":"6","cost":65.24905731170885},"node_38":{"op":"operation","children":["node_7"],"eclass":"6","cost":95.60984282470771},"node_39":{"op":"operation","children":["node_7","node_17","node_36"],"eclass":"6","cost":3.2061862570846533},"node_40":{"op":"operation","children":["node_0","node_6","node_11","node_19","node_21","node_23"],"eclass":"7","cost":19.821284528331105},"node_41":{"op":"operation","children":["node_3","node_13","node_22","node_25"],"eclass":"8","cost":65.14541301302968},"node_42":{"op":"operation","children":["node_2","node_28","node_35"],"eclass":"8","cost":61.26092009114906},"node_43":{"op":"operation","children":["node_5","node_6","node_11","node_19","node_24","node_27","node_40"],"eclass":"10","cost":5.201819699297195},"node_44":{"op":"operation","children":["node_2","node_17","node_20","node_21","node_26","node_29","node_37","node_41","node_43","node_44","node_45"],"eclass":"0","cost":3.5638729546769055},"node_45":{"op":"operation","children":["node_2","node_4","node_9","node_11","node_18","node_20","node_23","node_25","node_28","node_33","node_43","node_49","node_51"],"eclass":"5","cost":28.287757989730267},"node_46":{"op":"operation","children":["node_0","node_13","node_18","node_24","node_27","node_34","node_42","node_43","node_51"],"eclass":"7","cost":97.43010787657641},"node_47":{"op":"operation","children":["node_26","node_27","node_36","node_38","node_43","node_44","node_48","node_49","node_51"],"eclass":"13","cost":66.63347531796097},"node_48":{"op":"operation","children":["node_17","node_23","node_25","node_31","node_33","node_35","node_37"],"eclass":"0","cost":13.790174296859515},"node_49":{"op":"operation","children":["node_1","node_7","node_16","node_30","node_34","node_38"],"eclass":"6","cost":6.629192106668469},"node_50":{"op":"operation","children":["node_1","node_11","node_17","node_18","node_24","node_27","node_28","node_34","node_39","node_46","node_48"],"eclass":"5","cost":8.840568990733377},"node_51":{"op":"operation","children":["node_3","node_6","node_11","node_15","node_20","node_21","node_23","node_24","node_25","node_26","node_30","node_34","node_44"],"eclass":"8","cost":19.143351350748627}},"root_eclasses":["7"]} \ No newline at end of file diff --git a/test_data/fuzz/28.json b/test_data/fuzz/28.json new file mode 100644 index 0000000..dd1e928 --- /dev/null +++ b/test_data/fuzz/28.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":69.54537929213764},"node_1":{"op":"operation","children":["node_0"],"eclass":"1","cost":48.21445659550133},"node_2":{"op":"operation","children":[],"eclass":"1","cost":37.574507682942084},"node_3":{"op":"operation","children":[],"eclass":"2","cost":98.98119807473992},"node_4":{"op":"operation","children":["node_0"],"eclass":"2","cost":97.74619915179524},"node_5":{"op":"operation","children":["node_9","node_10","node_16","node_18","node_24","node_27","node_34","node_36"],"eclass":"2","cost":21.09840251193349},"node_6":{"op":"operation","children":["node_0","node_3","node_11","node_12","node_14","node_16","node_17","node_23","node_25","node_34","node_37"],"eclass":"3","cost":59.30957701279591},"node_7":{"op":"operation","children":["node_5","node_16","node_20","node_25","node_27","node_29","node_33","node_36","node_37"],"eclass":"0","cost":72.65535438185545},"node_8":{"op":"operation","children":["node_0","node_5","node_6","node_7","node_12","node_17","node_24","node_38"],"eclass":"2","cost":67.04728181939832},"node_9":{"op":"operation","children":["node_10","node_14","node_16","node_25","node_32"],"eclass":"3","cost":40.30962738397426},"node_10":{"op":"operation","children":["node_3","node_5","node_6","node_13","node_19","node_38","node_39"],"eclass":"1","cost":28.768687612876164},"node_11":{"op":"operation","children":["node_7","node_16","node_22","node_24","node_34","node_37"],"eclass":"0","cost":70.4330649579953},"node_12":{"op":"operation","children":["node_0","node_1","node_10","node_15","node_20","node_22","node_30","node_31","node_33","node_38"],"eclass":"4","cost":55.445345601310706},"node_13":{"op":"operation","children":["node_0","node_1","node_2","node_10","node_19","node_22","node_23","node_26","node_28","node_34"],"eclass":"3","cost":66.01738881342607},"node_14":{"op":"operation","children":["node_0","node_2","node_7","node_16","node_17","node_21","node_28","node_30"],"eclass":"4","cost":74.83987675321718},"node_15":{"op":"operation","children":["node_1","node_7","node_11","node_18","node_22","node_29","node_30","node_32","node_36","node_37","node_39"],"eclass":"3","cost":10.302981238920971},"node_16":{"op":"operation","children":["node_23","node_33"],"eclass":"4","cost":1.944326672168073},"node_17":{"op":"operation","children":["node_1","node_2","node_7","node_17","node_19","node_28","node_38"],"eclass":"1","cost":73.77909240842438},"node_18":{"op":"operation","children":["node_10","node_22","node_28","node_37","node_38"],"eclass":"3","cost":95.06363234617233},"node_19":{"op":"operation","children":["node_1","node_2","node_12","node_13","node_21","node_22","node_32","node_33","node_35","node_37"],"eclass":"3","cost":81.2108726416341},"node_20":{"op":"operation","children":["node_0","node_1","node_6","node_12","node_15","node_35","node_39"],"eclass":"0","cost":89.87602188740254},"node_21":{"op":"operation","children":["node_14","node_18","node_23","node_24","node_27","node_30","node_36"],"eclass":"2","cost":69.42449712510454},"node_22":{"op":"operation","children":["node_9","node_13","node_14","node_15","node_26","node_30","node_32","node_37"],"eclass":"3","cost":61.196709917767535},"node_23":{"op":"operation","children":["node_1","node_2","node_5","node_6","node_14","node_19","node_27","node_28","node_31","node_32","node_36","node_38"],"eclass":"1","cost":83.79569070323208},"node_24":{"op":"operation","children":["node_1","node_2","node_6","node_7","node_8","node_9","node_12","node_19","node_23","node_33","node_39"],"eclass":"2","cost":28.550695381208},"node_25":{"op":"operation","children":["node_6","node_9","node_14","node_22","node_24","node_25","node_26","node_34"],"eclass":"0","cost":31.481095086095124},"node_26":{"op":"operation","children":["node_18","node_19","node_21","node_25","node_26","node_27","node_39"],"eclass":"1","cost":4.44025829905611},"node_27":{"op":"operation","children":["node_1","node_14","node_16","node_25","node_26","node_31","node_33"],"eclass":"1","cost":39.19263490545622},"node_28":{"op":"operation","children":["node_5","node_6","node_11","node_14","node_26"],"eclass":"3","cost":93.64673660931543},"node_29":{"op":"operation","children":["node_1","node_7","node_9","node_19","node_22","node_24","node_25","node_26","node_27"],"eclass":"1","cost":99.56116011144967},"node_30":{"op":"operation","children":["node_2","node_9","node_10","node_33","node_39"],"eclass":"1","cost":15.982462021506228},"node_31":{"op":"operation","children":["node_1","node_5","node_6","node_12","node_13","node_14","node_16","node_30","node_35","node_37"],"eclass":"4","cost":78.28508865267267},"node_32":{"op":"operation","children":["node_6","node_11","node_12","node_26","node_27"],"eclass":"2","cost":38.27449683134966},"node_33":{"op":"operation","children":["node_11","node_20","node_31","node_33","node_39"],"eclass":"2","cost":87.84495722113844},"node_34":{"op":"operation","children":["node_0","node_26","node_28","node_29","node_30","node_33","node_36","node_38"],"eclass":"0","cost":7.685295211617316},"node_35":{"op":"operation","children":["node_2","node_7","node_10","node_12","node_13","node_14","node_34"],"eclass":"1","cost":72.45311209566133},"node_36":{"op":"operation","children":["node_12","node_15","node_22","node_26","node_27","node_29","node_31","node_33","node_34"],"eclass":"0","cost":86.25759110824885},"node_37":{"op":"operation","children":["node_2","node_4","node_6","node_11","node_17","node_19","node_21","node_31"],"eclass":"2","cost":23.198556037051844},"node_38":{"op":"operation","children":["node_3","node_9","node_12","node_20","node_24","node_26","node_32"],"eclass":"1","cost":74.41915256260066},"node_39":{"op":"operation","children":["node_4","node_5","node_12","node_15","node_28","node_39"],"eclass":"0","cost":28.711396629521424}},"root_eclasses":["1","1","1","2"]} \ No newline at end of file diff --git a/test_data/fuzz/29.json b/test_data/fuzz/29.json new file mode 100644 index 0000000..51ccb53 --- /dev/null +++ b/test_data/fuzz/29.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":61.77631212629251},"node_1":{"op":"operation","children":[],"eclass":"0","cost":52.45038976372395},"node_2":{"op":"operation","children":[],"eclass":"0","cost":71.96233773153692},"node_3":{"op":"operation","children":[],"eclass":"1","cost":48.48957199026926},"node_4":{"op":"operation","children":["node_0"],"eclass":"1","cost":34.36142979975803},"node_5":{"op":"operation","children":[],"eclass":"1","cost":50.82983065213992},"node_6":{"op":"operation","children":["node_3"],"eclass":"1","cost":6.057658007364375},"node_7":{"op":"operation","children":["node_0","node_2"],"eclass":"1","cost":74.92004697416255},"node_8":{"op":"operation","children":["node_6"],"eclass":"2","cost":71.68034686721076},"node_9":{"op":"operation","children":["node_8"],"eclass":"3","cost":98.28938313729644},"node_10":{"op":"operation","children":["node_2","node_4","node_7"],"eclass":"3","cost":45.92526574314334},"node_11":{"op":"operation","children":["node_5"],"eclass":"4","cost":42.82365487463377},"node_12":{"op":"operation","children":["node_2","node_6"],"eclass":"5","cost":12.916756044937616},"node_13":{"op":"operation","children":["node_4","node_11"],"eclass":"6","cost":98.08992184090921},"node_14":{"op":"operation","children":[],"eclass":"6","cost":36.55526415728286},"node_15":{"op":"operation","children":["node_3"],"eclass":"6","cost":1.3555265392465654},"node_16":{"op":"operation","children":["node_1","node_8","node_9"],"eclass":"6","cost":9.135660696619341},"node_17":{"op":"operation","children":["node_6","node_14"],"eclass":"6","cost":69.07860488704111},"node_18":{"op":"operation","children":["node_2","node_4","node_13"],"eclass":"6","cost":9.878168924851193},"node_19":{"op":"operation","children":["node_0","node_14","node_19","node_20","node_23","node_26","node_29","node_30"],"eclass":"9","cost":27.663074856796356},"node_20":{"op":"operation","children":["node_12","node_15","node_17","node_18"],"eclass":"7","cost":61.23823320440934},"node_21":{"op":"operation","children":["node_3","node_12","node_16","node_19","node_23","node_25"],"eclass":"3","cost":42.5164361724208},"node_22":{"op":"operation","children":["node_14","node_15","node_17","node_27"],"eclass":"0","cost":8.37621177162432},"node_23":{"op":"operation","children":["node_4","node_15","node_17","node_19","node_23","node_25","node_29"],"eclass":"4","cost":68.41794938505392},"node_24":{"op":"operation","children":["node_0","node_2","node_3","node_5","node_13","node_18","node_23","node_29"],"eclass":"0","cost":6.140611841795385},"node_25":{"op":"operation","children":["node_0","node_2","node_8","node_13","node_24"],"eclass":"9","cost":57.280438197882496},"node_26":{"op":"operation","children":["node_6","node_11","node_13","node_14","node_15","node_16","node_17","node_19","node_25","node_30"],"eclass":"8","cost":23.293838895130413},"node_27":{"op":"operation","children":["node_1","node_3","node_9"],"eclass":"5","cost":7.95088850228346},"node_28":{"op":"operation","children":["node_5","node_6","node_11","node_12","node_17","node_19","node_20","node_23","node_29"],"eclass":"9","cost":23.385474042432552},"node_29":{"op":"operation","children":["node_7","node_14","node_17","node_19","node_20"],"eclass":"5","cost":90.71727870481412},"node_30":{"op":"operation","children":["node_2","node_8","node_10","node_14","node_17","node_18","node_19","node_21","node_23","node_29"],"eclass":"11","cost":52.85242842305038}},"root_eclasses":["3","0","0","1"]} \ No newline at end of file diff --git a/data/fuzz/3.json b/test_data/fuzz/3.json similarity index 100% rename from data/fuzz/3.json rename to test_data/fuzz/3.json diff --git a/test_data/fuzz/30.json b/test_data/fuzz/30.json new file mode 100644 index 0000000..3182516 --- /dev/null +++ b/test_data/fuzz/30.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":79.9006499309639},"node_1":{"op":"operation","children":["node_0"],"eclass":"1","cost":81.58095009707083},"node_2":{"op":"operation","children":["node_0","node_1"],"eclass":"1","cost":72.03824609472846},"node_3":{"op":"operation","children":[],"eclass":"2","cost":19.013133880786793},"node_4":{"op":"operation","children":["node_2"],"eclass":"2","cost":91.95057417159632},"node_5":{"op":"operation","children":[],"eclass":"2","cost":37.917386418611486},"node_6":{"op":"operation","children":["node_0","node_5"],"eclass":"2","cost":85.66472397848284},"node_7":{"op":"operation","children":[],"eclass":"3","cost":90.77162607793949},"node_8":{"op":"operation","children":["node_2","node_6"],"eclass":"3","cost":23.286652732659096},"node_9":{"op":"operation","children":["node_0","node_5","node_7"],"eclass":"3","cost":72.35817928045363},"node_10":{"op":"operation","children":["node_5"],"eclass":"3","cost":90.42632008958492},"node_11":{"op":"operation","children":["node_2"],"eclass":"3","cost":60.27218694785989},"node_12":{"op":"operation","children":[],"eclass":"4","cost":84.19873982062957},"node_13":{"op":"operation","children":[],"eclass":"4","cost":50.75101852314051},"node_14":{"op":"operation","children":["node_12"],"eclass":"4","cost":41.01145698907561},"node_15":{"op":"operation","children":[],"eclass":"4","cost":60.11376859459008},"node_16":{"op":"operation","children":["node_9"],"eclass":"5","cost":84.51257255821169},"node_17":{"op":"operation","children":["node_0","node_7","node_9"],"eclass":"5","cost":65.34443960317071},"node_18":{"op":"operation","children":["node_0","node_6"],"eclass":"5","cost":29.91992056310594},"node_19":{"op":"operation","children":["node_1","node_7","node_16"],"eclass":"6","cost":54.912189531950894},"node_20":{"op":"operation","children":["node_1"],"eclass":"6","cost":63.66106974842618},"node_21":{"op":"operation","children":["node_18","node_20"],"eclass":"6","cost":77.58965861847413},"node_22":{"op":"operation","children":["node_5","node_6","node_11","node_24"],"eclass":"1","cost":54.921872124305004},"node_23":{"op":"operation","children":["node_2","node_5","node_19","node_21","node_22","node_23"],"eclass":"10","cost":69.136094670339},"node_24":{"op":"operation","children":["node_0","node_6","node_7","node_14","node_15","node_18","node_19"],"eclass":"4","cost":33.85352326605582}},"root_eclasses":["0","6","6"]} \ No newline at end of file diff --git a/test_data/fuzz/31.json b/test_data/fuzz/31.json new file mode 100644 index 0000000..c76fe5b --- /dev/null +++ b/test_data/fuzz/31.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":95.83034361437308},"node_1":{"op":"operation","children":[],"eclass":"1","cost":42.637972420039304},"node_2":{"op":"operation","children":["node_0"],"eclass":"1","cost":42.91470666568616},"node_3":{"op":"operation","children":[],"eclass":"1","cost":24.876169178340767},"node_4":{"op":"operation","children":["node_2"],"eclass":"1","cost":70.47106920068953},"node_5":{"op":"operation","children":["node_1"],"eclass":"1","cost":71.20477248981285},"node_6":{"op":"operation","children":["node_5"],"eclass":"2","cost":8.97489986582758},"node_7":{"op":"operation","children":[],"eclass":"3","cost":23.810585521764605},"node_8":{"op":"operation","children":[],"eclass":"3","cost":86.5133235513777},"node_9":{"op":"operation","children":[],"eclass":"3","cost":64.76501195557856},"node_10":{"op":"operation","children":["node_7"],"eclass":"4","cost":23.678053731445182},"node_11":{"op":"operation","children":["node_0","node_7"],"eclass":"5","cost":94.9264943623675},"node_12":{"op":"operation","children":["node_6"],"eclass":"6","cost":44.05649907383113},"node_13":{"op":"operation","children":[],"eclass":"7","cost":36.29785343575812},"node_14":{"op":"operation","children":["node_12"],"eclass":"7","cost":79.34281147151216},"node_15":{"op":"operation","children":[],"eclass":"7","cost":47.89822720834057},"node_16":{"op":"operation","children":["node_12"],"eclass":"7","cost":71.25192491020044},"node_17":{"op":"operation","children":["node_2"],"eclass":"7","cost":74.13566784148459},"node_18":{"op":"operation","children":[],"eclass":"7","cost":28.110534808458986},"node_19":{"op":"operation","children":["node_14","node_17"],"eclass":"8","cost":36.658653774667904},"node_20":{"op":"operation","children":["node_1","node_4","node_13","node_16"],"eclass":"8","cost":63.90397999922166},"node_21":{"op":"operation","children":["node_8","node_13"],"eclass":"8","cost":73.56296382803149},"node_22":{"op":"operation","children":[],"eclass":"8","cost":50.25995732929817},"node_23":{"op":"operation","children":["node_5"],"eclass":"8","cost":71.07525383419274},"node_24":{"op":"operation","children":["node_11"],"eclass":"8","cost":45.65298281735415},"node_25":{"op":"operation","children":["node_17","node_19"],"eclass":"8","cost":82.77878032604818},"node_26":{"op":"operation","children":["node_5","node_24"],"eclass":"8","cost":83.45243547935966},"node_27":{"op":"operation","children":["node_1","node_13"],"eclass":"8","cost":66.41678521426873},"node_28":{"op":"operation","children":["node_2","node_12","node_22","node_24"],"eclass":"8","cost":41.30809112834884},"node_29":{"op":"operation","children":["node_5","node_8","node_21"],"eclass":"8","cost":47.05927343485712},"node_30":{"op":"operation","children":["node_2","node_6","node_8","node_10","node_12","node_28","node_29","node_30","node_32","node_33","node_44","node_46"],"eclass":"13","cost":95.58525068306245},"node_31":{"op":"operation","children":["node_10","node_17","node_23","node_34","node_37"],"eclass":"0","cost":78.97353575264307},"node_32":{"op":"operation","children":["node_0","node_5","node_7","node_11","node_12","node_17","node_26","node_28","node_35","node_42"],"eclass":"10","cost":45.21929527679988},"node_33":{"op":"operation","children":["node_1","node_2","node_6","node_15","node_18","node_33","node_40"],"eclass":"4","cost":39.68212092243615},"node_34":{"op":"operation","children":["node_0","node_3","node_5","node_6","node_8","node_15","node_16","node_19","node_29","node_30","node_36","node_40"],"eclass":"1","cost":81.77032481242405},"node_35":{"op":"operation","children":["node_3","node_4","node_10","node_12","node_14","node_23","node_24","node_28","node_31","node_34"],"eclass":"10","cost":34.636031322948924},"node_36":{"op":"operation","children":["node_8","node_9","node_14","node_15","node_20","node_21","node_23","node_28","node_33","node_39","node_42","node_44"],"eclass":"3","cost":2.5706165329957287},"node_37":{"op":"operation","children":["node_0","node_9","node_15","node_20","node_22","node_25","node_26","node_41"],"eclass":"4","cost":10.923476901342244},"node_38":{"op":"operation","children":["node_1","node_8","node_12","node_13","node_15","node_17","node_24","node_29","node_32","node_35","node_36","node_38","node_45"],"eclass":"16","cost":17.91732342832396},"node_39":{"op":"operation","children":["node_1","node_5","node_6","node_11","node_13","node_21","node_23","node_25","node_31","node_33","node_43","node_45"],"eclass":"14","cost":68.52876407579312},"node_40":{"op":"operation","children":["node_2","node_10","node_24","node_26","node_28","node_29","node_31","node_36","node_38","node_40","node_44"],"eclass":"7","cost":19.5283350871859},"node_41":{"op":"operation","children":["node_0","node_1","node_17","node_19","node_29","node_30","node_31","node_37","node_45"],"eclass":"1","cost":2.959046634084417},"node_42":{"op":"operation","children":["node_5","node_11","node_13","node_15","node_31","node_37","node_40","node_41","node_42","node_46"],"eclass":"14","cost":34.4949052473544},"node_43":{"op":"operation","children":["node_0","node_4","node_6","node_9","node_10","node_13","node_22","node_33","node_36","node_37","node_40","node_41"],"eclass":"15","cost":22.952904772795733},"node_44":{"op":"operation","children":["node_3","node_6","node_7","node_13","node_28","node_38","node_44","node_45"],"eclass":"9","cost":42.63185836905258},"node_45":{"op":"operation","children":["node_5","node_17","node_19","node_21","node_22","node_29","node_34","node_35","node_45"],"eclass":"9","cost":56.925570840031725},"node_46":{"op":"operation","children":["node_6","node_7","node_10","node_16","node_23","node_24","node_37","node_40","node_43","node_46"],"eclass":"0","cost":62.45640020187422}},"root_eclasses":["8","8","4","3"]} \ No newline at end of file diff --git a/test_data/fuzz/32.json b/test_data/fuzz/32.json new file mode 100644 index 0000000..1237448 --- /dev/null +++ b/test_data/fuzz/32.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":58.28855411034761},"node_1":{"op":"operation","children":["node_0"],"eclass":"1","cost":74.51065563230634},"node_2":{"op":"operation","children":[],"eclass":"1","cost":44.875703488054484},"node_3":{"op":"operation","children":["node_0","node_16","node_19","node_23","node_25"],"eclass":"2","cost":80.32924955295913},"node_4":{"op":"operation","children":["node_6","node_8","node_9"],"eclass":"1","cost":56.384312642110736},"node_5":{"op":"operation","children":["node_3","node_12","node_16","node_21","node_23","node_24"],"eclass":"2","cost":72.06112899047021},"node_6":{"op":"operation","children":["node_5","node_6","node_9","node_21","node_22"],"eclass":"0","cost":3.803460962964056},"node_7":{"op":"operation","children":["node_0","node_5","node_7","node_15","node_16","node_25"],"eclass":"1","cost":14.343482581478073},"node_8":{"op":"operation","children":["node_0","node_6","node_9","node_20"],"eclass":"1","cost":14.158166433152564},"node_9":{"op":"operation","children":["node_1","node_10","node_15","node_19"],"eclass":"0","cost":62.86999255039907},"node_10":{"op":"operation","children":["node_5","node_7","node_8","node_14","node_17","node_23"],"eclass":"1","cost":83.9890944657429},"node_11":{"op":"operation","children":["node_1","node_9","node_15","node_19","node_20","node_22"],"eclass":"0","cost":12.9498916313037},"node_12":{"op":"operation","children":["node_9","node_10","node_13","node_16","node_18"],"eclass":"1","cost":14.864026557318578},"node_13":{"op":"operation","children":["node_1","node_8","node_15","node_19","node_25"],"eclass":"0","cost":13.93779902055855},"node_14":{"op":"operation","children":["node_4","node_5","node_7","node_11","node_12","node_22","node_25"],"eclass":"2","cost":1.5089538145591663},"node_15":{"op":"operation","children":["node_0","node_1","node_2","node_5","node_11","node_12","node_13","node_16"],"eclass":"2","cost":33.5949983209005},"node_16":{"op":"operation","children":["node_0","node_3","node_4","node_18","node_25"],"eclass":"1","cost":50.883954357785264},"node_17":{"op":"operation","children":["node_5","node_11","node_22","node_24"],"eclass":"0","cost":19.17399720288333},"node_18":{"op":"operation","children":["node_2","node_11","node_12","node_22"],"eclass":"1","cost":44.51284569349506},"node_19":{"op":"operation","children":[],"eclass":"2","cost":94.76171847585492},"node_20":{"op":"operation","children":["node_3","node_6","node_8","node_12","node_18","node_21","node_23"],"eclass":"2","cost":15.806737649260672},"node_21":{"op":"operation","children":["node_2","node_4","node_5","node_6","node_8","node_19","node_20"],"eclass":"2","cost":65.6676496086497},"node_22":{"op":"operation","children":["node_0","node_2","node_4","node_7","node_9","node_13","node_15","node_23"],"eclass":"2","cost":54.143414982190606},"node_23":{"op":"operation","children":["node_5","node_11","node_14"],"eclass":"2","cost":15.387757658342128},"node_24":{"op":"operation","children":["node_8","node_10","node_21","node_23"],"eclass":"0","cost":37.884514576854514},"node_25":{"op":"operation","children":["node_0","node_2","node_9","node_10","node_18","node_23"],"eclass":"2","cost":58.12235172444786}},"root_eclasses":["1","0","1"]} \ No newline at end of file diff --git a/test_data/fuzz/33.json b/test_data/fuzz/33.json new file mode 100644 index 0000000..be2c3d5 --- /dev/null +++ b/test_data/fuzz/33.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"1","cost":94.36984904532643},"node_1":{"op":"operation","children":[],"eclass":"1","cost":73.87170130217855},"node_2":{"op":"operation","children":[],"eclass":"1","cost":2.548254782310466},"node_3":{"op":"operation","children":[],"eclass":"1","cost":82.45296400537376},"node_4":{"op":"operation","children":[],"eclass":"1","cost":97.32079947457696},"node_5":{"op":"operation","children":[],"eclass":"2","cost":96.37806959083889},"node_6":{"op":"operation","children":["node_3"],"eclass":"2","cost":37.08347805406383},"node_7":{"op":"operation","children":[],"eclass":"2","cost":8.30033400906297},"node_8":{"op":"operation","children":[],"eclass":"2","cost":14.942198243975612},"node_9":{"op":"operation","children":[],"eclass":"3","cost":42.271778410396706},"node_10":{"op":"operation","children":["node_2","node_8"],"eclass":"3","cost":41.2521755151906},"node_11":{"op":"operation","children":["node_5"],"eclass":"3","cost":61.68927399570543},"node_12":{"op":"operation","children":[],"eclass":"3","cost":64.5050396636424},"node_13":{"op":"operation","children":[],"eclass":"3","cost":22.010190522223706},"node_14":{"op":"operation","children":["node_1","node_3"],"eclass":"4","cost":22.16611432283403},"node_15":{"op":"operation","children":["node_4","node_8","node_12"],"eclass":"4","cost":5.28400044816808},"node_16":{"op":"operation","children":["node_8","node_11"],"eclass":"4","cost":28.99581755591665},"node_17":{"op":"operation","children":["node_12"],"eclass":"4","cost":46.74199345325385},"node_18":{"op":"operation","children":["node_1","node_2","node_9"],"eclass":"4","cost":40.21696819856945},"node_19":{"op":"operation","children":["node_7","node_8","node_16"],"eclass":"4","cost":52.14473077085092},"node_20":{"op":"operation","children":["node_2","node_6","node_7","node_9","node_21","node_36","node_37"],"eclass":"0","cost":29.429215849594602},"node_21":{"op":"operation","children":["node_1","node_9","node_27","node_30","node_31","node_33","node_38"],"eclass":"6","cost":17.693707717335492},"node_22":{"op":"operation","children":["node_11","node_19","node_24","node_27","node_30","node_37"],"eclass":"3","cost":72.98142997364332},"node_23":{"op":"operation","children":["node_0","node_3","node_4","node_6","node_7","node_9","node_22","node_27","node_31","node_32","node_35"],"eclass":"8","cost":31.50752330292389},"node_24":{"op":"operation","children":["node_3","node_7","node_10","node_16","node_25","node_33"],"eclass":"2","cost":37.28894840031087},"node_25":{"op":"operation","children":["node_5","node_8","node_18"],"eclass":"3","cost":11.821432992756463},"node_26":{"op":"operation","children":["node_10","node_27","node_32","node_34","node_36"],"eclass":"5","cost":94.95332974506223},"node_27":{"op":"operation","children":["node_1","node_4","node_16","node_18","node_19","node_23","node_24","node_25","node_28","node_38"],"eclass":"2","cost":29.039702050828573},"node_28":{"op":"operation","children":["node_19","node_20","node_21","node_30","node_32"],"eclass":"1","cost":76.31189835356862},"node_29":{"op":"operation","children":["node_4","node_11","node_14","node_17","node_18","node_20","node_26"],"eclass":"8","cost":69.07134060672043},"node_30":{"op":"operation","children":["node_5","node_15","node_18","node_33","node_35"],"eclass":"7","cost":92.03214383276361},"node_31":{"op":"operation","children":["node_0","node_8","node_17"],"eclass":"6","cost":17.7860972836969},"node_32":{"op":"operation","children":["node_2","node_15","node_19","node_24","node_26","node_29"],"eclass":"6","cost":39.6123610501423},"node_33":{"op":"operation","children":["node_1","node_6","node_9","node_12","node_18","node_25","node_27","node_33","node_37"],"eclass":"3","cost":76.3434484631564},"node_34":{"op":"operation","children":["node_4","node_7","node_9","node_11","node_12","node_14","node_17","node_18","node_19","node_24","node_32"],"eclass":"7","cost":77.47088817555239},"node_35":{"op":"operation","children":["node_5","node_7","node_10","node_17","node_19","node_20"],"eclass":"2","cost":59.140069561247024},"node_36":{"op":"operation","children":["node_0","node_2","node_5","node_6","node_7","node_12","node_34","node_37"],"eclass":"2","cost":78.02396490691268},"node_37":{"op":"operation","children":["node_1","node_2","node_5","node_9","node_10","node_14","node_26","node_28","node_29","node_33","node_37"],"eclass":"5","cost":31.745179567060188},"node_38":{"op":"operation","children":["node_2","node_10","node_16","node_17","node_22","node_23","node_25","node_27","node_29","node_32","node_36","node_37"],"eclass":"2","cost":87.99212095995043}},"root_eclasses":["4"]} \ No newline at end of file diff --git a/test_data/fuzz/34.json b/test_data/fuzz/34.json new file mode 100644 index 0000000..d1d57b3 --- /dev/null +++ b/test_data/fuzz/34.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":24.69565947692276},"node_1":{"op":"operation","children":[],"eclass":"0","cost":7.532124702229758},"node_2":{"op":"operation","children":[],"eclass":"0","cost":14.451924691372353},"node_3":{"op":"operation","children":["node_2"],"eclass":"0","cost":72.83750088769571},"node_4":{"op":"operation","children":[],"eclass":"0","cost":64.12407541561497},"node_5":{"op":"operation","children":["node_1"],"eclass":"0","cost":43.7753743137389},"node_6":{"op":"operation","children":["node_3","node_5"],"eclass":"0","cost":86.69448759202594},"node_7":{"op":"operation","children":["node_2"],"eclass":"1","cost":48.551466917441545},"node_8":{"op":"operation","children":["node_1","node_2"],"eclass":"2","cost":98.73701923212434},"node_9":{"op":"operation","children":["node_7"],"eclass":"2","cost":16.609429148721834},"node_10":{"op":"operation","children":["node_2","node_6","node_7"],"eclass":"2","cost":10.836781630854887},"node_11":{"op":"operation","children":["node_1"],"eclass":"2","cost":55.535123495372574},"node_12":{"op":"operation","children":[],"eclass":"2","cost":93.52774534820385},"node_13":{"op":"operation","children":["node_6","node_7","node_8"],"eclass":"3","cost":71.42615554234672},"node_14":{"op":"operation","children":["node_10","node_12"],"eclass":"3","cost":24.393653659145286},"node_15":{"op":"operation","children":["node_4","node_5","node_7","node_8"],"eclass":"3","cost":17.311826830755283},"node_16":{"op":"operation","children":["node_6","node_10","node_12"],"eclass":"4","cost":86.16210235843928},"node_17":{"op":"operation","children":[],"eclass":"4","cost":70.65586845756413},"node_18":{"op":"operation","children":[],"eclass":"4","cost":92.9202697954252},"node_19":{"op":"operation","children":["node_2"],"eclass":"4","cost":69.8175076889339},"node_20":{"op":"operation","children":["node_3","node_4"],"eclass":"4","cost":97.396717916874},"node_21":{"op":"operation","children":["node_1","node_12","node_13","node_16","node_18"],"eclass":"5","cost":81.18399688590198},"node_22":{"op":"operation","children":["node_12"],"eclass":"5","cost":21.8702823817863},"node_23":{"op":"operation","children":["node_14"],"eclass":"5","cost":83.24489635667223},"node_24":{"op":"operation","children":["node_6","node_13","node_17"],"eclass":"5","cost":76.62104212549978},"node_25":{"op":"operation","children":["node_1","node_7","node_12","node_18","node_24"],"eclass":"5","cost":38.72806156429029},"node_26":{"op":"operation","children":["node_1"],"eclass":"5","cost":18.31257526857367},"node_27":{"op":"operation","children":["node_0","node_7","node_10"],"eclass":"6","cost":62.6364159460778},"node_28":{"op":"operation","children":["node_4","node_12"],"eclass":"6","cost":99.87271925828163},"node_29":{"op":"operation","children":["node_0","node_9","node_12"],"eclass":"6","cost":52.444418374743165},"node_30":{"op":"operation","children":["node_7","node_9","node_19"],"eclass":"6","cost":28.090645664437762},"node_31":{"op":"operation","children":["node_0","node_1","node_25"],"eclass":"6","cost":52.92307372688689},"node_32":{"op":"operation","children":["node_2","node_8","node_30","node_31"],"eclass":"7","cost":0.4069572957153045},"node_33":{"op":"operation","children":["node_17","node_19"],"eclass":"8","cost":45.86386399039159},"node_34":{"op":"operation","children":["node_12","node_22","node_30"],"eclass":"8","cost":31.431458549623294},"node_35":{"op":"operation","children":["node_15","node_21","node_25"],"eclass":"8","cost":86.67704577923901},"node_36":{"op":"operation","children":["node_12","node_15","node_16"],"eclass":"8","cost":80.75625231757135},"node_37":{"op":"operation","children":["node_0","node_32","node_34"],"eclass":"8","cost":32.59291927869082},"node_38":{"op":"operation","children":["node_25","node_33"],"eclass":"8","cost":38.18013170064041},"node_39":{"op":"operation","children":["node_33","node_34","node_36","node_38"],"eclass":"8","cost":95.79745346723753},"node_40":{"op":"operation","children":["node_9","node_18","node_19","node_28","node_30"],"eclass":"8","cost":52.87817660039439},"node_41":{"op":"operation","children":["node_10","node_34","node_39"],"eclass":"8","cost":29.82456336363992},"node_42":{"op":"operation","children":["node_13","node_14","node_21","node_25","node_31"],"eclass":"8","cost":80.43866046255532},"node_43":{"op":"operation","children":["node_16","node_24","node_30","node_38"],"eclass":"8","cost":79.64588674041207},"node_44":{"op":"operation","children":["node_10","node_13","node_24","node_43"],"eclass":"8","cost":23.218597451021417},"node_45":{"op":"operation","children":["node_6","node_16","node_27","node_33","node_36"],"eclass":"8","cost":85.19886381751579},"node_46":{"op":"operation","children":["node_7","node_19","node_24"],"eclass":"8","cost":47.99179672152151},"node_47":{"op":"operation","children":["node_1","node_27","node_28"],"eclass":"8","cost":22.608744355846532},"node_48":{"op":"operation","children":["node_14","node_21","node_28","node_42"],"eclass":"8","cost":36.883122052513095},"node_49":{"op":"operation","children":["node_7","node_29","node_46"],"eclass":"8","cost":20.866443363248678},"node_50":{"op":"operation","children":["node_2","node_7","node_9","node_10","node_14","node_20","node_25","node_26","node_34","node_46","node_48"],"eclass":"8","cost":83.47699094129626},"node_51":{"op":"operation","children":["node_26","node_28","node_32","node_36","node_46","node_49"],"eclass":"8","cost":42.430979921237544},"node_52":{"op":"operation","children":["node_10","node_12","node_35","node_39","node_50"],"eclass":"9","cost":61.59086386717709},"node_53":{"op":"operation","children":["node_4","node_7","node_26","node_35","node_40"],"eclass":"9","cost":18.04861819629451},"node_54":{"op":"operation","children":["node_15","node_23","node_27","node_29","node_30","node_31"],"eclass":"9","cost":95.83085770721934},"node_55":{"op":"operation","children":["node_0","node_6","node_8","node_13","node_15","node_17","node_18","node_26","node_31","node_41","node_48"],"eclass":"9","cost":76.64592214652899},"node_56":{"op":"operation","children":["node_18","node_19","node_20","node_21","node_36","node_53"],"eclass":"9","cost":0.26741617399635986},"node_57":{"op":"operation","children":["node_1","node_3","node_27","node_51"],"eclass":"9","cost":33.41412329373329},"node_58":{"op":"operation","children":["node_4","node_8","node_16","node_22","node_34","node_47","node_48","node_57"],"eclass":"9","cost":65.8421658649858},"node_59":{"op":"operation","children":["node_3","node_5","node_23","node_29","node_43","node_54"],"eclass":"10","cost":81.49214006893709},"node_60":{"op":"operation","children":["node_25","node_34","node_52"],"eclass":"10","cost":64.84545721770102},"node_61":{"op":"operation","children":["node_13","node_15","node_17","node_25","node_43","node_45","node_55","node_59"],"eclass":"11","cost":4.775037238452362},"node_62":{"op":"operation","children":["node_34","node_41"],"eclass":"11","cost":8.827342144187945},"node_63":{"op":"operation","children":["node_15","node_25","node_45","node_46","node_50","node_59"],"eclass":"11","cost":98.77322651364395},"node_64":{"op":"operation","children":["node_10","node_11","node_16","node_22","node_28"],"eclass":"11","cost":80.23816576913757},"node_65":{"op":"operation","children":["node_23","node_27","node_37","node_45","node_57"],"eclass":"11","cost":66.74256056774564},"node_66":{"op":"operation","children":["node_6","node_7","node_18","node_33","node_37","node_41","node_56","node_61","node_65"],"eclass":"11","cost":20.17785120153216},"node_67":{"op":"operation","children":["node_3","node_17","node_19","node_21","node_39","node_43","node_46","node_49","node_50","node_54","node_55","node_57"],"eclass":"11","cost":20.167125335345148},"node_68":{"op":"operation","children":["node_30","node_36","node_37","node_42","node_43","node_47","node_56"],"eclass":"11","cost":71.55090479293933},"node_69":{"op":"operation","children":["node_3","node_37","node_44","node_50","node_52","node_54","node_65","node_68"],"eclass":"11","cost":97.47607781868139},"node_70":{"op":"operation","children":["node_2","node_16","node_52"],"eclass":"11","cost":36.66062976877178},"node_71":{"op":"operation","children":["node_6","node_10","node_17","node_22","node_37","node_49","node_55"],"eclass":"11","cost":71.07299673501166},"node_72":{"op":"operation","children":["node_1","node_14","node_37","node_38","node_39","node_41","node_61","node_63"],"eclass":"11","cost":46.80593573949543},"node_73":{"op":"operation","children":["node_1","node_11","node_26","node_55","node_65"],"eclass":"12","cost":10.623516251307208},"node_74":{"op":"operation","children":["node_12","node_19","node_63"],"eclass":"12","cost":68.34688702223986},"node_75":{"op":"operation","children":["node_10","node_16","node_17","node_19","node_26","node_55","node_61"],"eclass":"12","cost":93.52034806317737},"node_76":{"op":"operation","children":["node_6","node_7","node_23","node_37","node_53","node_63","node_73"],"eclass":"12","cost":5.258561310128062},"node_77":{"op":"operation","children":["node_1","node_2","node_3","node_5","node_14","node_15","node_19","node_29","node_65"],"eclass":"13","cost":26.76872028069606},"node_78":{"op":"operation","children":["node_9","node_44","node_134","node_145","node_159","node_164"],"eclass":"4","cost":33.02902144841276},"node_79":{"op":"operation","children":["node_75","node_83","node_117","node_123","node_128","node_135","node_136","node_150","node_155","node_156","node_164","node_167"],"eclass":"6","cost":91.87694084510561},"node_80":{"op":"operation","children":["node_42","node_72","node_76","node_79","node_90","node_104","node_113","node_130"],"eclass":"7","cost":44.55151688220875},"node_81":{"op":"operation","children":["node_23","node_105","node_119","node_128","node_157"],"eclass":"9","cost":79.93630759700913},"node_82":{"op":"operation","children":["node_8","node_59","node_65","node_69","node_79","node_82","node_130","node_160","node_167"],"eclass":"23","cost":87.38696012627267},"node_83":{"op":"operation","children":["node_4","node_74","node_100","node_109","node_111","node_126","node_146"],"eclass":"12","cost":21.175363718520924},"node_84":{"op":"operation","children":["node_2","node_13","node_22","node_30","node_40","node_51","node_55","node_63","node_110","node_124","node_155"],"eclass":"19","cost":52.20842985135015},"node_85":{"op":"operation","children":["node_6","node_27","node_46","node_89","node_106","node_109","node_131","node_133","node_139"],"eclass":"25","cost":91.84907111714274},"node_86":{"op":"operation","children":["node_10","node_29","node_76","node_94","node_132","node_134"],"eclass":"12","cost":69.36196969566207},"node_87":{"op":"operation","children":["node_6","node_21","node_32","node_34","node_48","node_69","node_85","node_91","node_104","node_106","node_113"],"eclass":"9","cost":42.67236925480918},"node_88":{"op":"operation","children":["node_18","node_65","node_96","node_103","node_104","node_122","node_130","node_131","node_141","node_148"],"eclass":"21","cost":77.30352056487574},"node_89":{"op":"operation","children":["node_23","node_40","node_44","node_69","node_72","node_93","node_109","node_169"],"eclass":"2","cost":90.48874329870053},"node_90":{"op":"operation","children":["node_20","node_30","node_51","node_58","node_75","node_91","node_96","node_100","node_123","node_133","node_143","node_168"],"eclass":"13","cost":21.00958375031301},"node_91":{"op":"operation","children":["node_25","node_31","node_47","node_57","node_64","node_83","node_138","node_155"],"eclass":"9","cost":49.66209111310621},"node_92":{"op":"operation","children":["node_27","node_109","node_150","node_151"],"eclass":"18","cost":93.31263080559374},"node_93":{"op":"operation","children":["node_2","node_4","node_15","node_21","node_53","node_60","node_65","node_81","node_103","node_109","node_118","node_141","node_152","node_164","node_165"],"eclass":"18","cost":33.19162168454394},"node_94":{"op":"operation","children":["node_18","node_51","node_78","node_94","node_118","node_131"],"eclass":"18","cost":17.60112161333347},"node_95":{"op":"operation","children":["node_13","node_17","node_21","node_43","node_44","node_61","node_71","node_82","node_90","node_109","node_115","node_127"],"eclass":"13","cost":26.010621581429525},"node_96":{"op":"operation","children":["node_32","node_78","node_85","node_95","node_102","node_115","node_120"],"eclass":"5","cost":32.41649410993853},"node_97":{"op":"operation","children":["node_3","node_27","node_43","node_105","node_114","node_162","node_165"],"eclass":"15","cost":22.10603141322539},"node_98":{"op":"operation","children":["node_4","node_10","node_13","node_40","node_43","node_100","node_142"],"eclass":"12","cost":43.698987572990646},"node_99":{"op":"operation","children":["node_11","node_31","node_66","node_122","node_159","node_173"],"eclass":"13","cost":18.972715232378967},"node_100":{"op":"operation","children":["node_8","node_11","node_37","node_59","node_61","node_62","node_86","node_115","node_128","node_131","node_143","node_149","node_159","node_171"],"eclass":"11","cost":24.558891394364913},"node_101":{"op":"operation","children":["node_29","node_80","node_89","node_102","node_103","node_113","node_123"],"eclass":"14","cost":68.10680566815195},"node_102":{"op":"operation","children":["node_17","node_33","node_66","node_67","node_80","node_96","node_128","node_129","node_139","node_171"],"eclass":"12","cost":54.02893696456273},"node_103":{"op":"operation","children":["node_13","node_15","node_29","node_54","node_62","node_77","node_106","node_119","node_147"],"eclass":"19","cost":2.1553582161636053},"node_104":{"op":"operation","children":["node_0","node_19","node_23","node_30","node_75","node_86","node_96","node_124","node_149","node_151"],"eclass":"12","cost":30.056666689671918},"node_105":{"op":"operation","children":["node_5","node_7","node_25","node_79","node_80","node_88"],"eclass":"19","cost":87.50555337154915},"node_106":{"op":"operation","children":["node_7","node_12","node_26","node_53","node_101","node_148","node_167"],"eclass":"6","cost":25.17315744947146},"node_107":{"op":"operation","children":["node_51","node_74","node_91","node_120","node_129","node_141","node_151","node_160"],"eclass":"4","cost":17.12259561593743},"node_108":{"op":"operation","children":["node_10","node_61","node_63","node_106","node_131","node_140"],"eclass":"19","cost":74.47649752962178},"node_109":{"op":"operation","children":["node_0","node_25","node_47","node_49","node_64","node_81","node_84","node_110","node_113","node_130","node_167"],"eclass":"6","cost":25.0113242595418},"node_110":{"op":"operation","children":["node_24","node_55","node_75","node_97","node_100","node_106","node_166"],"eclass":"3","cost":33.53461398869486},"node_111":{"op":"operation","children":["node_26","node_67","node_87","node_103","node_104","node_108","node_134","node_138"],"eclass":"8","cost":97.66125078223605},"node_112":{"op":"operation","children":["node_26","node_33","node_38","node_64","node_114","node_129"],"eclass":"15","cost":99.49947757262392},"node_113":{"op":"operation","children":["node_12","node_18","node_67","node_103","node_112","node_163","node_167"],"eclass":"4","cost":14.512166327760145},"node_114":{"op":"operation","children":["node_43","node_46","node_48","node_55","node_68","node_130","node_132","node_150","node_155","node_166"],"eclass":"17","cost":24.885531345723464},"node_115":{"op":"operation","children":["node_18","node_60","node_61","node_63","node_73","node_81","node_88","node_98","node_103","node_128"],"eclass":"11","cost":49.80248109498868},"node_116":{"op":"operation","children":["node_22","node_34","node_54","node_123","node_126","node_134","node_162"],"eclass":"13","cost":53.11334573145457},"node_117":{"op":"operation","children":["node_29","node_43","node_57","node_61","node_97","node_103","node_110","node_115"],"eclass":"6","cost":46.32651642000004},"node_118":{"op":"operation","children":["node_25","node_38","node_40","node_53","node_81","node_121","node_144","node_158"],"eclass":"16","cost":50.51059827291648},"node_119":{"op":"operation","children":["node_37","node_67","node_72","node_73","node_83","node_129","node_133","node_141","node_143","node_152"],"eclass":"6","cost":0.36302708263878936},"node_120":{"op":"operation","children":["node_32","node_41","node_68","node_75","node_78","node_98","node_101","node_147"],"eclass":"2","cost":0.987398579573262},"node_121":{"op":"operation","children":["node_1","node_53","node_64","node_68","node_141","node_146"],"eclass":"21","cost":43.58675101137278},"node_122":{"op":"operation","children":["node_4","node_23","node_24","node_67","node_93","node_114","node_129","node_162"],"eclass":"9","cost":36.85095787314795},"node_123":{"op":"operation","children":["node_9","node_12","node_52","node_58","node_60","node_62","node_70","node_74","node_96","node_104","node_121","node_132","node_163","node_166","node_168","node_170"],"eclass":"4","cost":83.35823764835354},"node_124":{"op":"operation","children":["node_1","node_4","node_6","node_16","node_34","node_50","node_87","node_127"],"eclass":"5","cost":42.03036803855251},"node_125":{"op":"operation","children":["node_15","node_67","node_83","node_101","node_132","node_142","node_147","node_163","node_170"],"eclass":"15","cost":75.36517000156769},"node_126":{"op":"operation","children":["node_33","node_130"],"eclass":"13","cost":18.68994368973197},"node_127":{"op":"operation","children":["node_9","node_18","node_52","node_62","node_90","node_129","node_132","node_135","node_148","node_173"],"eclass":"1","cost":35.36577792605811},"node_128":{"op":"operation","children":["node_3","node_14","node_24","node_29","node_42","node_50","node_54","node_72","node_82","node_116","node_124","node_128","node_145","node_155","node_161","node_163"],"eclass":"23","cost":5.557166436447913},"node_129":{"op":"operation","children":["node_18","node_69","node_96","node_104","node_126","node_130","node_170"],"eclass":"13","cost":37.95206783098391},"node_130":{"op":"operation","children":["node_2","node_11","node_43","node_68","node_81","node_87","node_105","node_138","node_168"],"eclass":"20","cost":6.465753296572673},"node_131":{"op":"operation","children":["node_3","node_7","node_15","node_16","node_22","node_44","node_56","node_97","node_122","node_145","node_154","node_157","node_162"],"eclass":"17","cost":73.46125303826734},"node_132":{"op":"operation","children":["node_57","node_59","node_80","node_83","node_103","node_108","node_122"],"eclass":"24","cost":68.93515444868233},"node_133":{"op":"operation","children":["node_17","node_43","node_54","node_76","node_96","node_138","node_159","node_162"],"eclass":"24","cost":77.25955881250974},"node_134":{"op":"operation","children":["node_5","node_44","node_46","node_105","node_135"],"eclass":"2","cost":19.968489604610895},"node_135":{"op":"operation","children":["node_3","node_15","node_17","node_43","node_47","node_58","node_97","node_100","node_144","node_146","node_160","node_166","node_168"],"eclass":"11","cost":12.359431255058395},"node_136":{"op":"operation","children":["node_0","node_3","node_7","node_15","node_28","node_40","node_50","node_80","node_92","node_94","node_103","node_107","node_110","node_143","node_170"],"eclass":"10","cost":79.10199903332371},"node_137":{"op":"operation","children":["node_23","node_120","node_169"],"eclass":"11","cost":45.44897637620529},"node_138":{"op":"operation","children":["node_145"],"eclass":"14","cost":19.028192445295144},"node_139":{"op":"operation","children":["node_0","node_21","node_44","node_71","node_121","node_147","node_150","node_165","node_171"],"eclass":"19","cost":77.08839953331247},"node_140":{"op":"operation","children":["node_11","node_39","node_40","node_49","node_60","node_92","node_104","node_151","node_152"],"eclass":"17","cost":2.678145199530657},"node_141":{"op":"operation","children":["node_0","node_8","node_12","node_37","node_106","node_131"],"eclass":"26","cost":47.23241744677951},"node_142":{"op":"operation","children":["node_5","node_26","node_49","node_67","node_78","node_80","node_84","node_87","node_122","node_131","node_158","node_161","node_163","node_166","node_171"],"eclass":"2","cost":29.14292503294138},"node_143":{"op":"operation","children":["node_6","node_12","node_17","node_27","node_67","node_70","node_72","node_84","node_93","node_101","node_138","node_166"],"eclass":"11","cost":82.67968578031655},"node_144":{"op":"operation","children":["node_11","node_31","node_41","node_71","node_72","node_75","node_96","node_98","node_106","node_125","node_133","node_136","node_161","node_171"],"eclass":"4","cost":4.820131616088852},"node_145":{"op":"operation","children":["node_20","node_59","node_71","node_159","node_166","node_172"],"eclass":"18","cost":97.77900183606066},"node_146":{"op":"operation","children":["node_2","node_3","node_29","node_39","node_68","node_87","node_95","node_112","node_115","node_142","node_147"],"eclass":"25","cost":29.114574870684507},"node_147":{"op":"operation","children":["node_3","node_24","node_38","node_71","node_104","node_114","node_122","node_142","node_147"],"eclass":"1","cost":96.95121636516168},"node_148":{"op":"operation","children":["node_32","node_42","node_58","node_81","node_84","node_112","node_116","node_166"],"eclass":"15","cost":71.6057458794276},"node_149":{"op":"operation","children":["node_1","node_3","node_4","node_78","node_94","node_166"],"eclass":"15","cost":84.59229528501258},"node_150":{"op":"operation","children":["node_8","node_25","node_35","node_54","node_56","node_96","node_105","node_107","node_149","node_162","node_165"],"eclass":"26","cost":95.1376746454573},"node_151":{"op":"operation","children":["node_22","node_24","node_73","node_81","node_132","node_137","node_159"],"eclass":"1","cost":8.710833050137111},"node_152":{"op":"operation","children":["node_7","node_10","node_15","node_18","node_25","node_39","node_57","node_64","node_103","node_129","node_131","node_157","node_173"],"eclass":"16","cost":36.6696405564166},"node_153":{"op":"operation","children":["node_11","node_17","node_41","node_64","node_83","node_106","node_116","node_153","node_154","node_155","node_161","node_163"],"eclass":"5","cost":96.16740357424854},"node_154":{"op":"operation","children":["node_8","node_31","node_34","node_39","node_44","node_87","node_100","node_112","node_121","node_136","node_154","node_155","node_156"],"eclass":"7","cost":99.92165627283985},"node_155":{"op":"operation","children":["node_40","node_53","node_58","node_61","node_70","node_86","node_121","node_127","node_155","node_165"],"eclass":"19","cost":51.830742578572064},"node_156":{"op":"operation","children":["node_14","node_17","node_51","node_61","node_81","node_152","node_161"],"eclass":"20","cost":62.525037513554416},"node_157":{"op":"operation","children":["node_35","node_41","node_52","node_56","node_60","node_62","node_74","node_89"],"eclass":"13","cost":94.91936413824196},"node_158":{"op":"operation","children":["node_6","node_19","node_45","node_51","node_52","node_66","node_127","node_137","node_138","node_139"],"eclass":"26","cost":19.63003577662057},"node_159":{"op":"operation","children":["node_1","node_9","node_17","node_18","node_21","node_52","node_60","node_91"],"eclass":"24","cost":36.06290982228091},"node_160":{"op":"operation","children":["node_57","node_61","node_82","node_91","node_111","node_134","node_155","node_158"],"eclass":"17","cost":13.059611444927056},"node_161":{"op":"operation","children":["node_36","node_52","node_61","node_67","node_74","node_93","node_96","node_137","node_138","node_158","node_167","node_170"],"eclass":"22","cost":92.77934468287933},"node_162":{"op":"operation","children":["node_6","node_20","node_29","node_52","node_55","node_85","node_115","node_152"],"eclass":"21","cost":76.2345751366507},"node_163":{"op":"operation","children":["node_1","node_6","node_14","node_17","node_60","node_65","node_73","node_92","node_147","node_149","node_155"],"eclass":"22","cost":71.252677175641},"node_164":{"op":"operation","children":["node_1","node_32","node_78","node_117","node_120"],"eclass":"20","cost":37.66984729063214},"node_165":{"op":"operation","children":["node_0","node_22","node_65","node_66","node_104","node_119","node_155"],"eclass":"25","cost":66.39748242867448},"node_166":{"op":"operation","children":["node_20","node_21","node_47","node_59","node_91","node_112","node_116","node_123","node_145","node_150"],"eclass":"24","cost":71.4834566108326},"node_167":{"op":"operation","children":["node_17","node_39","node_64","node_107","node_116","node_123","node_152","node_162"],"eclass":"20","cost":95.0794282128834},"node_168":{"op":"operation","children":["node_0","node_4","node_28","node_53","node_55","node_61","node_92","node_130"],"eclass":"5","cost":99.51157334431664},"node_169":{"op":"operation","children":["node_97","node_118","node_168"],"eclass":"21","cost":86.05114892269341},"node_170":{"op":"operation","children":["node_21","node_56","node_140","node_158","node_166","node_173"],"eclass":"6","cost":71.806935493653},"node_171":{"op":"operation","children":["node_6","node_23","node_35","node_67","node_74","node_84","node_100","node_108","node_164"],"eclass":"14","cost":30.268970509514894},"node_172":{"op":"operation","children":["node_14","node_18","node_40","node_68","node_88","node_93","node_97","node_106","node_108","node_117","node_125","node_172"],"eclass":"7","cost":99.97092601945194},"node_173":{"op":"operation","children":["node_7","node_43","node_63","node_65","node_70","node_77","node_80","node_82","node_134","node_154"],"eclass":"4","cost":90.36559600547739}},"root_eclasses":["5","1"]} \ No newline at end of file diff --git a/test_data/fuzz/35.json b/test_data/fuzz/35.json new file mode 100644 index 0000000..bf4868c --- /dev/null +++ b/test_data/fuzz/35.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":64.40686699529259},"node_1":{"op":"operation","children":[],"eclass":"0","cost":99.25593363774942},"node_2":{"op":"operation","children":[],"eclass":"1","cost":59.71069207051231},"node_3":{"op":"operation","children":[],"eclass":"1","cost":82.66190361311101},"node_4":{"op":"operation","children":[],"eclass":"2","cost":74.47619118174048},"node_5":{"op":"operation","children":[],"eclass":"2","cost":99.56267908475107},"node_6":{"op":"operation","children":[],"eclass":"3","cost":25.715389741565232},"node_7":{"op":"operation","children":["node_2"],"eclass":"3","cost":96.65721645573335},"node_8":{"op":"operation","children":[],"eclass":"4","cost":70.77656380622876},"node_9":{"op":"operation","children":["node_3"],"eclass":"4","cost":56.29403915105695},"node_10":{"op":"operation","children":["node_8"],"eclass":"4","cost":78.36490687680877},"node_11":{"op":"operation","children":[],"eclass":"4","cost":85.7889943235149},"node_12":{"op":"operation","children":["node_6","node_9","node_10"],"eclass":"4","cost":77.08522556136546},"node_13":{"op":"operation","children":["node_1","node_2","node_5","node_12"],"eclass":"4","cost":17.849940102025673},"node_14":{"op":"operation","children":["node_7"],"eclass":"4","cost":9.263448321950662},"node_15":{"op":"operation","children":["node_1"],"eclass":"4","cost":42.51676184036085},"node_16":{"op":"operation","children":[],"eclass":"4","cost":67.43861238983399},"node_17":{"op":"operation","children":["node_1","node_7"],"eclass":"4","cost":37.38425769312054},"node_18":{"op":"operation","children":["node_10","node_12"],"eclass":"5","cost":20.48610373083649},"node_19":{"op":"operation","children":["node_8","node_16","node_17"],"eclass":"5","cost":65.61019296208754},"node_20":{"op":"operation","children":["node_1","node_8"],"eclass":"5","cost":79.40676504966041},"node_21":{"op":"operation","children":["node_3"],"eclass":"5","cost":60.996528434923505},"node_22":{"op":"operation","children":["node_8","node_10","node_21"],"eclass":"5","cost":75.30383983968336},"node_23":{"op":"operation","children":["node_4","node_12"],"eclass":"5","cost":82.83382356795136},"node_24":{"op":"operation","children":["node_7","node_12","node_21"],"eclass":"5","cost":31.799648262152736},"node_25":{"op":"operation","children":["node_5","node_12","node_18"],"eclass":"5","cost":44.32447697930687},"node_26":{"op":"operation","children":["node_9","node_18","node_20","node_23"],"eclass":"5","cost":83.22113054492249},"node_27":{"op":"operation","children":["node_9","node_11","node_14","node_16"],"eclass":"5","cost":17.064994788499853},"node_28":{"op":"operation","children":["node_4","node_14","node_21"],"eclass":"5","cost":82.51514577506798},"node_29":{"op":"operation","children":["node_1","node_8"],"eclass":"5","cost":25.9593283028553},"node_30":{"op":"operation","children":["node_1","node_3","node_4","node_17","node_21","node_24","node_27"],"eclass":"5","cost":10.354324490333688},"node_31":{"op":"operation","children":["node_1","node_6","node_17","node_20","node_30"],"eclass":"5","cost":13.34617299666686},"node_32":{"op":"operation","children":["node_1","node_14","node_17","node_23"],"eclass":"5","cost":62.177603229595356},"node_33":{"op":"operation","children":["node_1","node_3","node_4","node_17"],"eclass":"6","cost":5.762319115137549},"node_34":{"op":"operation","children":["node_3","node_14","node_26","node_31"],"eclass":"6","cost":96.61156437375105},"node_35":{"op":"operation","children":["node_1","node_3","node_5","node_11","node_22"],"eclass":"6","cost":29.16404936777549},"node_36":{"op":"operation","children":["node_5"],"eclass":"6","cost":50.90865312349327},"node_37":{"op":"operation","children":["node_14","node_24","node_32"],"eclass":"7","cost":44.25651365068828},"node_38":{"op":"operation","children":["node_5","node_7","node_9","node_16","node_25"],"eclass":"7","cost":56.32447276819921},"node_39":{"op":"operation","children":["node_22"],"eclass":"7","cost":30.974172571889667},"node_40":{"op":"operation","children":["node_1","node_10","node_22","node_37"],"eclass":"7","cost":8.758159992361724},"node_41":{"op":"operation","children":["node_24","node_28","node_32","node_34"],"eclass":"7","cost":34.95905841346697},"node_42":{"op":"operation","children":["node_16","node_17","node_20","node_26"],"eclass":"7","cost":79.16689412698989},"node_43":{"op":"operation","children":["node_2","node_3","node_22","node_24","node_30"],"eclass":"7","cost":78.40586595315376},"node_44":{"op":"operation","children":["node_26","node_41"],"eclass":"8","cost":60.1169631437686},"node_45":{"op":"operation","children":["node_1","node_10","node_22","node_25"],"eclass":"8","cost":4.738971688766669},"node_46":{"op":"operation","children":["node_9","node_12","node_19","node_24","node_30"],"eclass":"8","cost":32.15443856132375},"node_47":{"op":"operation","children":["node_1","node_9","node_14","node_16","node_29","node_38"],"eclass":"8","cost":66.69644007186916},"node_48":{"op":"operation","children":["node_10","node_26","node_31","node_34","node_35"],"eclass":"8","cost":88.35513996462807},"node_49":{"op":"operation","children":["node_0","node_5","node_14","node_28","node_36","node_46"],"eclass":"8","cost":31.706210695233715},"node_50":{"op":"operation","children":["node_11","node_22","node_23"],"eclass":"8","cost":64.48040858239254},"node_51":{"op":"operation","children":["node_3","node_9","node_30","node_32","node_40","node_45"],"eclass":"8","cost":31.48739311754293},"node_52":{"op":"operation","children":["node_3","node_22","node_25","node_26"],"eclass":"8","cost":63.519751137305036},"node_53":{"op":"operation","children":["node_52"],"eclass":"9","cost":18.33723169028162},"node_54":{"op":"operation","children":["node_0","node_8","node_48"],"eclass":"9","cost":19.230533764613135},"node_55":{"op":"operation","children":["node_13","node_19","node_23","node_29","node_35","node_39","node_40"],"eclass":"10","cost":72.74562830366142},"node_56":{"op":"operation","children":["node_2","node_28","node_32","node_34","node_49"],"eclass":"11","cost":41.193643377793585},"node_57":{"op":"operation","children":["node_12","node_16","node_22","node_39","node_47","node_55"],"eclass":"11","cost":43.109376711574086},"node_58":{"op":"operation","children":["node_2","node_6","node_20","node_38","node_40","node_42","node_44","node_55"],"eclass":"12","cost":42.19087429286278},"node_59":{"op":"operation","children":["node_1","node_7","node_9","node_26","node_34","node_38","node_45","node_50","node_52"],"eclass":"12","cost":14.977983554563579},"node_60":{"op":"operation","children":["node_1","node_2","node_25","node_27","node_41","node_47","node_53"],"eclass":"12","cost":23.987422001958926},"node_61":{"op":"operation","children":["node_11","node_33","node_35","node_38","node_45"],"eclass":"12","cost":97.17416566711934},"node_62":{"op":"operation","children":["node_26","node_51"],"eclass":"12","cost":61.331529429209894},"node_63":{"op":"operation","children":["node_15","node_20","node_26","node_34","node_40"],"eclass":"12","cost":10.124813178415138},"node_64":{"op":"operation","children":["node_2","node_12","node_14"],"eclass":"12","cost":41.88023925091038},"node_65":{"op":"operation","children":["node_9","node_26","node_30","node_34"],"eclass":"12","cost":19.031774020878366},"node_66":{"op":"operation","children":["node_12"],"eclass":"12","cost":74.4883429527201},"node_67":{"op":"operation","children":["node_30","node_50"],"eclass":"12","cost":4.579567851146582},"node_68":{"op":"operation","children":["node_0","node_5","node_11","node_12","node_19","node_25","node_26","node_33","node_40","node_44","node_59","node_61","node_65"],"eclass":"13","cost":40.55764560372478},"node_69":{"op":"operation","children":["node_0","node_3","node_4","node_13","node_26","node_27","node_36","node_51"],"eclass":"13","cost":64.56504503510399},"node_70":{"op":"operation","children":["node_17","node_42","node_51","node_57"],"eclass":"13","cost":32.2240719285265},"node_71":{"op":"operation","children":["node_8","node_9","node_17","node_23","node_29","node_41","node_52","node_56"],"eclass":"13","cost":64.05919259592733},"node_72":{"op":"operation","children":["node_0","node_20","node_21","node_31","node_32","node_34","node_41","node_46","node_48","node_49","node_50","node_62"],"eclass":"13","cost":77.08549814790246},"node_73":{"op":"operation","children":["node_9","node_11","node_13","node_14","node_45"],"eclass":"13","cost":61.04956638563799},"node_74":{"op":"operation","children":["node_1","node_6","node_25","node_30","node_37","node_44","node_45","node_60"],"eclass":"13","cost":61.24851762991469},"node_75":{"op":"operation","children":["node_0","node_19","node_35","node_45","node_60"],"eclass":"14","cost":40.37034854223336},"node_76":{"op":"operation","children":["node_10","node_14","node_37","node_38","node_47"],"eclass":"14","cost":16.368049693289844},"node_77":{"op":"operation","children":["node_12","node_16","node_22","node_31","node_40","node_54","node_69","node_74"],"eclass":"14","cost":92.84124083241576},"node_78":{"op":"operation","children":["node_27","node_34","node_40","node_44","node_50","node_51","node_74","node_77"],"eclass":"14","cost":94.99298484048364},"node_79":{"op":"operation","children":["node_20","node_26","node_38","node_50","node_61","node_68","node_71","node_78"],"eclass":"15","cost":85.74769242507053},"node_80":{"op":"operation","children":["node_1","node_5","node_24","node_30","node_57","node_61","node_63","node_73"],"eclass":"15","cost":76.69811500223663},"node_81":{"op":"operation","children":["node_12","node_15","node_16","node_17","node_39","node_44","node_59","node_77","node_78"],"eclass":"16","cost":45.84674716000823},"node_82":{"op":"operation","children":["node_0","node_6","node_31","node_69","node_72","node_73"],"eclass":"16","cost":53.779260709015674},"node_83":{"op":"operation","children":["node_14","node_28","node_37","node_40","node_45","node_52","node_57","node_80"],"eclass":"17","cost":75.37407783939321},"node_84":{"op":"operation","children":["node_5","node_12","node_32","node_44","node_54","node_61","node_72","node_76","node_78","node_83"],"eclass":"17","cost":87.65020237218427},"node_85":{"op":"operation","children":["node_3","node_23","node_66"],"eclass":"17","cost":62.83352420356795},"node_86":{"op":"operation","children":["node_3","node_7","node_15","node_18","node_24","node_36","node_37","node_40","node_64","node_76","node_85"],"eclass":"17","cost":67.90578423949107},"node_87":{"op":"operation","children":["node_11","node_19","node_20","node_32","node_56","node_61","node_80"],"eclass":"17","cost":88.86015155296272},"node_88":{"op":"operation","children":["node_4","node_6","node_17","node_21","node_53","node_55","node_56","node_76","node_84"],"eclass":"17","cost":20.762842647688483},"node_89":{"op":"operation","children":["node_6","node_36","node_38","node_51","node_58","node_71","node_77"],"eclass":"18","cost":89.70386699034036},"node_90":{"op":"operation","children":["node_2","node_69"],"eclass":"18","cost":91.37991958858979},"node_91":{"op":"operation","children":["node_14","node_15","node_17","node_31","node_77","node_81","node_83","node_86","node_90"],"eclass":"18","cost":60.57474631769249},"node_92":{"op":"operation","children":["node_0","node_1","node_16","node_17","node_43","node_44","node_52","node_67","node_68","node_81","node_88"],"eclass":"18","cost":5.236681960518396},"node_93":{"op":"operation","children":["node_9","node_14","node_21","node_24","node_49","node_55","node_65","node_74","node_75","node_82","node_88"],"eclass":"18","cost":40.30131403246804},"node_94":{"op":"operation","children":["node_14","node_15","node_35","node_51","node_56","node_64","node_75","node_90"],"eclass":"18","cost":78.40304437826569},"node_95":{"op":"operation","children":["node_8","node_20","node_34","node_39","node_44","node_62","node_77"],"eclass":"18","cost":44.74074786132064},"node_96":{"op":"operation","children":["node_11","node_23","node_31","node_45","node_60","node_64","node_72","node_78","node_83"],"eclass":"18","cost":87.87540102073791},"node_97":{"op":"operation","children":["node_3","node_39","node_48","node_51","node_60","node_94"],"eclass":"18","cost":75.74515379012871},"node_98":{"op":"operation","children":["node_13","node_16","node_28","node_87","node_89","node_115","node_123"],"eclass":"31","cost":28.022722594097583},"node_99":{"op":"operation","children":["node_2","node_21","node_36","node_38","node_49","node_50","node_56","node_58","node_93","node_101","node_116","node_118","node_128","node_160"],"eclass":"7","cost":67.02729544813162},"node_100":{"op":"operation","children":["node_3","node_42","node_53","node_81","node_85","node_123","node_133","node_153"],"eclass":"30","cost":75.35034632355675},"node_101":{"op":"operation","children":["node_18","node_22","node_45","node_58"],"eclass":"6","cost":26.385484374113577},"node_102":{"op":"operation","children":["node_61","node_69","node_71","node_88","node_98","node_142","node_148"],"eclass":"25","cost":95.05906787401932},"node_103":{"op":"operation","children":["node_12","node_16","node_25","node_26","node_40","node_49","node_73","node_102","node_107","node_129","node_131","node_161"],"eclass":"35","cost":47.930701449937374},"node_104":{"op":"operation","children":["node_13","node_102","node_106","node_118","node_120","node_122"],"eclass":"1","cost":59.514427925612836},"node_105":{"op":"operation","children":["node_22","node_75","node_82","node_95","node_105","node_129","node_134","node_142"],"eclass":"8","cost":6.246906696310528},"node_106":{"op":"operation","children":["node_6","node_13","node_32","node_70","node_76","node_80","node_89","node_104","node_105","node_114","node_157"],"eclass":"14","cost":68.9652172921201},"node_107":{"op":"operation","children":["node_20","node_45","node_49","node_60","node_76","node_78","node_85","node_118","node_126","node_147","node_155"],"eclass":"8","cost":43.193937241449966},"node_108":{"op":"operation","children":["node_31","node_44","node_93","node_110","node_112","node_128","node_144"],"eclass":"4","cost":59.765131968789966},"node_109":{"op":"operation","children":["node_33","node_37","node_76","node_115","node_153"],"eclass":"12","cost":96.57210560087981},"node_110":{"op":"operation","children":["node_33","node_35","node_55","node_60","node_92","node_97","node_100","node_104","node_126","node_150","node_154","node_157"],"eclass":"13","cost":49.889739699479804},"node_111":{"op":"operation","children":["node_4","node_11","node_16","node_96","node_124","node_144","node_146","node_152"],"eclass":"30","cost":10.416343577729437},"node_112":{"op":"operation","children":["node_6","node_15","node_42","node_68","node_70","node_106","node_121","node_129","node_143"],"eclass":"24","cost":98.49385381219818},"node_113":{"op":"operation","children":["node_11","node_39","node_46","node_103","node_107","node_121","node_124","node_159"],"eclass":"20","cost":52.234097326369735},"node_114":{"op":"operation","children":["node_19","node_21","node_22","node_30","node_50","node_86","node_93","node_110"],"eclass":"11","cost":47.966201844096645},"node_115":{"op":"operation","children":["node_30","node_42","node_67","node_87","node_92","node_106","node_112","node_134"],"eclass":"31","cost":23.69473090276937},"node_116":{"op":"operation","children":["node_11","node_16","node_34","node_55","node_72","node_92","node_96","node_114","node_119","node_138","node_161"],"eclass":"2","cost":80.45008286277529},"node_117":{"op":"operation","children":["node_1","node_25","node_41","node_52","node_53","node_89","node_107","node_150"],"eclass":"34","cost":7.314333075900848},"node_118":{"op":"operation","children":["node_12","node_16","node_31","node_49","node_76","node_90","node_118","node_125","node_156","node_159"],"eclass":"2","cost":11.4575383251995},"node_119":{"op":"operation","children":["node_9","node_14","node_60","node_98","node_148"],"eclass":"0","cost":54.850680609501836},"node_120":{"op":"operation","children":["node_2","node_3","node_9","node_42","node_68","node_111","node_127","node_134","node_138","node_158","node_159"],"eclass":"35","cost":18.417323887807193},"node_121":{"op":"operation","children":["node_20","node_85","node_102","node_118","node_121","node_156"],"eclass":"5","cost":14.106753596516185},"node_122":{"op":"operation","children":["node_33","node_39","node_57","node_68","node_89","node_100","node_112","node_136","node_146"],"eclass":"27","cost":58.2881965981053},"node_123":{"op":"operation","children":["node_18","node_72","node_93","node_109","node_129","node_152","node_154"],"eclass":"12","cost":36.69662967291985},"node_124":{"op":"operation","children":["node_46","node_104","node_110"],"eclass":"10","cost":48.093925142165496},"node_125":{"op":"operation","children":["node_3","node_16","node_19","node_30","node_69","node_79","node_82","node_94","node_132","node_158"],"eclass":"10","cost":44.05426912280919},"node_126":{"op":"operation","children":["node_0","node_5","node_12","node_26","node_66","node_69","node_85","node_127","node_138","node_154"],"eclass":"19","cost":79.33535487340949},"node_127":{"op":"operation","children":["node_10","node_41","node_63","node_70","node_114","node_147","node_149"],"eclass":"32","cost":35.43160412218774},"node_128":{"op":"operation","children":["node_116","node_151"],"eclass":"33","cost":1.1156969511205594},"node_129":{"op":"operation","children":["node_0","node_23","node_24","node_26","node_68","node_85","node_107","node_118","node_132","node_137","node_158"],"eclass":"22","cost":53.97132898512693},"node_130":{"op":"operation","children":["node_3","node_14","node_28","node_45","node_73","node_81","node_95","node_142","node_144","node_145"],"eclass":"34","cost":15.573879141480251},"node_131":{"op":"operation","children":["node_58","node_84","node_93","node_107","node_111","node_119","node_124","node_147"],"eclass":"26","cost":13.827657933036729},"node_132":{"op":"operation","children":["node_5","node_30","node_90","node_109","node_114","node_154","node_161"],"eclass":"1","cost":51.941991381252436},"node_133":{"op":"operation","children":["node_13","node_17","node_22","node_66","node_68","node_82","node_126","node_153","node_157"],"eclass":"31","cost":44.20792238955416},"node_134":{"op":"operation","children":["node_7","node_41","node_51","node_72","node_74","node_104","node_121","node_130","node_139","node_143","node_153"],"eclass":"12","cost":50.188688579688026},"node_135":{"op":"operation","children":["node_24","node_41","node_49","node_59","node_105","node_122","node_125","node_128","node_143","node_154"],"eclass":"34","cost":11.773485954641538},"node_136":{"op":"operation","children":["node_43","node_46","node_50","node_51","node_82","node_90","node_91","node_98","node_109","node_154"],"eclass":"21","cost":94.67929438386246},"node_137":{"op":"operation","children":["node_14","node_43","node_48","node_73","node_111","node_118","node_122"],"eclass":"20","cost":91.8236941126512},"node_138":{"op":"operation","children":["node_13","node_20","node_34","node_41","node_49","node_51","node_57","node_76","node_80","node_88","node_109","node_118","node_120","node_142"],"eclass":"12","cost":60.13804052509257},"node_139":{"op":"operation","children":["node_100","node_116","node_121","node_133"],"eclass":"6","cost":71.12224638193265},"node_140":{"op":"operation","children":["node_22","node_54","node_71","node_87","node_114","node_115","node_127","node_158","node_159"],"eclass":"36","cost":14.30909178815607},"node_141":{"op":"operation","children":["node_32","node_41","node_53","node_60","node_62","node_69","node_71","node_77","node_98","node_144","node_146"],"eclass":"16","cost":51.52279284940057},"node_142":{"op":"operation","children":["node_4","node_41","node_42","node_81","node_137","node_159"],"eclass":"17","cost":37.223942507939555},"node_143":{"op":"operation","children":["node_51","node_58","node_77","node_87","node_89","node_120"],"eclass":"20","cost":88.68722817228351},"node_144":{"op":"operation","children":["node_17","node_30","node_55","node_57","node_62","node_109"],"eclass":"3","cost":48.3225653594648},"node_145":{"op":"operation","children":["node_3","node_13","node_14","node_48","node_55","node_58","node_59","node_69","node_85","node_122","node_134","node_141"],"eclass":"15","cost":89.27512114844198},"node_146":{"op":"operation","children":["node_20","node_49","node_50","node_52","node_59","node_62","node_77","node_112","node_148","node_155"],"eclass":"32","cost":89.48007755835629},"node_147":{"op":"operation","children":["node_4","node_17","node_75","node_82","node_94","node_116","node_117","node_126","node_129","node_140"],"eclass":"24","cost":48.39698509647534},"node_148":{"op":"operation","children":["node_10","node_20","node_36","node_66","node_116","node_158"],"eclass":"3","cost":23.018687018394434},"node_149":{"op":"operation","children":["node_15","node_16","node_19","node_20","node_38","node_70","node_86","node_103","node_122","node_150"],"eclass":"14","cost":75.64571988567441},"node_150":{"op":"operation","children":["node_4","node_44","node_58","node_128"],"eclass":"29","cost":0.009038845696440756},"node_151":{"op":"operation","children":["node_55","node_71","node_114","node_120","node_150"],"eclass":"21","cost":28.854155563816708},"node_152":{"op":"operation","children":["node_46","node_49","node_50","node_87","node_126","node_150","node_156","node_158"],"eclass":"13","cost":41.11604290513249},"node_153":{"op":"operation","children":["node_14","node_37","node_38","node_53","node_56","node_142"],"eclass":"14","cost":32.710859354453525},"node_154":{"op":"operation","children":["node_27","node_34","node_42","node_58","node_68","node_80","node_82","node_93","node_113","node_127"],"eclass":"16","cost":68.88393163162328},"node_155":{"op":"operation","children":["node_4","node_13","node_59","node_94","node_96","node_117","node_131","node_149"],"eclass":"31","cost":16.625102327735377},"node_156":{"op":"operation","children":["node_17","node_19","node_28","node_32","node_36","node_53","node_65","node_82","node_84","node_96","node_138"],"eclass":"27","cost":28.711936330809774},"node_157":{"op":"operation","children":["node_5","node_20","node_41","node_47","node_52","node_80","node_126","node_144"],"eclass":"12","cost":21.80282347917082},"node_158":{"op":"operation","children":["node_42","node_68","node_84","node_93","node_102","node_103","node_114","node_126","node_134"],"eclass":"17","cost":30.66351016752622},"node_159":{"op":"operation","children":["node_25","node_31","node_42","node_72","node_79","node_100","node_129","node_142","node_158"],"eclass":"19","cost":91.87337237190422},"node_160":{"op":"operation","children":["node_27","node_31","node_33","node_56","node_68","node_75","node_95","node_109","node_131","node_150"],"eclass":"33","cost":91.67485230005968},"node_161":{"op":"operation","children":["node_55","node_92","node_114","node_148","node_158"],"eclass":"29","cost":57.46594155059043}},"root_eclasses":["4","5"]} \ No newline at end of file diff --git a/test_data/fuzz/36.json b/test_data/fuzz/36.json new file mode 100644 index 0000000..afab71b --- /dev/null +++ b/test_data/fuzz/36.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"0","cost":28.038811250383766},"node_1":{"op":"operation","children":[],"eclass":"0","cost":28.139633952011888},"node_2":{"op":"operation","children":[],"eclass":"0","cost":67.69415500891398},"node_3":{"op":"operation","children":[],"eclass":"0","cost":15.264052953358643},"node_4":{"op":"operation","children":[],"eclass":"0","cost":21.539630195485103},"node_5":{"op":"operation","children":[],"eclass":"0","cost":22.44355155913259},"node_6":{"op":"operation","children":[],"eclass":"0","cost":96.3078792439108},"node_7":{"op":"operation","children":[],"eclass":"1","cost":34.46662114646707},"node_8":{"op":"operation","children":[],"eclass":"2","cost":23.139146904690634},"node_9":{"op":"operation","children":[],"eclass":"2","cost":44.72367076315626},"node_10":{"op":"operation","children":[],"eclass":"2","cost":46.12634481544027},"node_11":{"op":"operation","children":["node_3","node_6","node_9"],"eclass":"3","cost":82.46394668790899},"node_12":{"op":"operation","children":["node_0"],"eclass":"3","cost":93.88733484011695},"node_13":{"op":"operation","children":["node_5","node_8"],"eclass":"3","cost":20.066972963862252},"node_14":{"op":"operation","children":["node_10"],"eclass":"3","cost":1.3216553979943146},"node_15":{"op":"operation","children":["node_10"],"eclass":"3","cost":51.275436924450155},"node_16":{"op":"operation","children":["node_2","node_9","node_15"],"eclass":"3","cost":49.619799339021185},"node_17":{"op":"operation","children":["node_3","node_6"],"eclass":"3","cost":69.42468641044198},"node_18":{"op":"operation","children":["node_0","node_2","node_17"],"eclass":"3","cost":72.7394795454543},"node_19":{"op":"operation","children":["node_1","node_10","node_17"],"eclass":"3","cost":33.83693185997762},"node_20":{"op":"operation","children":["node_5"],"eclass":"3","cost":5.923303627452981},"node_21":{"op":"operation","children":["node_20"],"eclass":"4","cost":17.442834329904557},"node_22":{"op":"operation","children":["node_3","node_8","node_12","node_18"],"eclass":"4","cost":81.97295050323291},"node_23":{"op":"operation","children":["node_4","node_7","node_11","node_13"],"eclass":"4","cost":98.73298797533707},"node_24":{"op":"operation","children":["node_3","node_4","node_6","node_14","node_17","node_23"],"eclass":"4","cost":86.1920082176372},"node_25":{"op":"operation","children":["node_5","node_14","node_17"],"eclass":"5","cost":11.125414902495024},"node_26":{"op":"operation","children":["node_9","node_20"],"eclass":"5","cost":38.389926192765735},"node_27":{"op":"operation","children":["node_6","node_13","node_18","node_20"],"eclass":"5","cost":22.345466788023327},"node_28":{"op":"operation","children":["node_5","node_6","node_16","node_25"],"eclass":"6","cost":82.13122423430386},"node_29":{"op":"operation","children":["node_0","node_16"],"eclass":"6","cost":97.04561842864727},"node_30":{"op":"operation","children":["node_13","node_18","node_25","node_28"],"eclass":"6","cost":41.54064717744802},"node_31":{"op":"operation","children":["node_9","node_24","node_26"],"eclass":"6","cost":95.90851000983042},"node_32":{"op":"operation","children":["node_13","node_25"],"eclass":"7","cost":99.28949688913524},"node_33":{"op":"operation","children":["node_1","node_3","node_28","node_31"],"eclass":"7","cost":53.975510588386754},"node_34":{"op":"operation","children":["node_8","node_17","node_29","node_32"],"eclass":"8","cost":82.60651429871608},"node_35":{"op":"operation","children":["node_2","node_6","node_8","node_31"],"eclass":"9","cost":9.687246703615626},"node_36":{"op":"operation","children":["node_15","node_19","node_29"],"eclass":"10","cost":53.909857933967885},"node_37":{"op":"operation","children":["node_5"],"eclass":"11","cost":92.04327367579927},"node_38":{"op":"operation","children":["node_1","node_28","node_34","node_37"],"eclass":"11","cost":82.5304764588922},"node_39":{"op":"operation","children":["node_2","node_4","node_9","node_10","node_18","node_20","node_27"],"eclass":"11","cost":51.23889170656065},"node_40":{"op":"operation","children":["node_15","node_17","node_29","node_30","node_37"],"eclass":"11","cost":31.04905639454013},"node_41":{"op":"operation","children":["node_0","node_5","node_9","node_14","node_16","node_20","node_21","node_33"],"eclass":"12","cost":25.002236467533102},"node_42":{"op":"operation","children":["node_13","node_32"],"eclass":"13","cost":2.8662017689892294},"node_43":{"op":"operation","children":["node_6","node_13","node_21","node_25","node_36","node_37"],"eclass":"13","cost":0.7073290117436737},"node_44":{"op":"operation","children":["node_9","node_12","node_15","node_31"],"eclass":"13","cost":98.32508306158138},"node_45":{"op":"operation","children":["node_6","node_14"],"eclass":"13","cost":85.7136468898038},"node_46":{"op":"operation","children":["node_1","node_17","node_28","node_45"],"eclass":"13","cost":50.623461359491},"node_47":{"op":"operation","children":["node_9","node_24","node_26","node_41"],"eclass":"14","cost":58.55753447626297},"node_48":{"op":"operation","children":["node_7","node_25","node_37"],"eclass":"15","cost":33.44842689053726},"node_49":{"op":"operation","children":["node_2","node_13","node_44","node_47"],"eclass":"15","cost":4.321665851737},"node_50":{"op":"operation","children":["node_0","node_2","node_34","node_43"],"eclass":"15","cost":76.51577367090167},"node_51":{"op":"operation","children":["node_0","node_2","node_9","node_28","node_35","node_36","node_43","node_44","node_47"],"eclass":"15","cost":22.86698354043738},"node_52":{"op":"operation","children":["node_31","node_34","node_45"],"eclass":"15","cost":34.8966534294984},"node_53":{"op":"operation","children":["node_4","node_10","node_16","node_21","node_28","node_31","node_42","node_49","node_52"],"eclass":"15","cost":73.18884962509658},"node_54":{"op":"operation","children":["node_2","node_3","node_8","node_37","node_48"],"eclass":"15","cost":74.42314010043474},"node_55":{"op":"operation","children":["node_8","node_12","node_14","node_23","node_27","node_30","node_31","node_32","node_42","node_48","node_52"],"eclass":"15","cost":29.627865234163576},"node_56":{"op":"operation","children":["node_6","node_32","node_35"],"eclass":"15","cost":0.2166270390916214},"node_57":{"op":"operation","children":["node_2","node_23","node_29","node_40"],"eclass":"16","cost":37.386631579018314},"node_58":{"op":"operation","children":["node_2","node_3","node_8","node_10","node_12","node_14","node_22","node_24","node_39","node_53"],"eclass":"17","cost":61.702967792045385},"node_59":{"op":"operation","children":["node_6","node_18","node_24","node_35","node_39","node_42"],"eclass":"17","cost":59.150244559400875},"node_60":{"op":"operation","children":["node_13","node_24","node_36"],"eclass":"17","cost":21.189749798644453},"node_61":{"op":"operation","children":["node_66","node_67","node_70","node_72","node_84","node_120"],"eclass":"23","cost":77.3651023689097},"node_62":{"op":"operation","children":["node_2","node_30","node_77","node_81","node_96","node_128"],"eclass":"24","cost":26.309350180932313},"node_63":{"op":"operation","children":["node_30","node_42","node_49","node_69","node_112"],"eclass":"34","cost":35.69289302153463},"node_64":{"op":"operation","children":["node_12","node_28","node_52","node_76","node_77","node_106","node_107","node_124"],"eclass":"4","cost":56.04697285447111},"node_65":{"op":"operation","children":["node_9","node_24","node_37","node_93","node_106","node_123"],"eclass":"29","cost":66.79157835171516},"node_66":{"op":"operation","children":["node_3","node_21","node_39","node_46","node_76","node_83","node_90","node_128"],"eclass":"9","cost":92.27735644210954},"node_67":{"op":"operation","children":["node_37","node_45","node_56","node_67","node_75","node_77","node_85","node_97"],"eclass":"34","cost":99.04688541392743},"node_68":{"op":"operation","children":["node_11","node_35","node_51","node_58","node_61","node_74","node_76","node_77","node_107","node_119"],"eclass":"31","cost":49.85907139268508},"node_69":{"op":"operation","children":["node_16","node_41","node_86","node_90","node_117"],"eclass":"26","cost":84.9874108489658},"node_70":{"op":"operation","children":["node_4","node_18","node_20","node_30","node_35","node_82","node_95","node_109"],"eclass":"14","cost":36.74095678696321},"node_71":{"op":"operation","children":["node_20","node_35","node_69","node_74","node_75","node_87"],"eclass":"18","cost":17.013434865198583},"node_72":{"op":"operation","children":["node_31","node_38","node_57","node_60","node_91","node_104","node_116","node_124"],"eclass":"0","cost":82.1427722444838},"node_73":{"op":"operation","children":["node_8","node_13","node_49","node_67","node_92","node_100","node_103","node_123"],"eclass":"5","cost":55.73733608711081},"node_74":{"op":"operation","children":["node_18","node_48","node_63","node_87","node_91","node_106"],"eclass":"33","cost":1.7563252669257179},"node_75":{"op":"operation","children":["node_33","node_34","node_85","node_93","node_128"],"eclass":"29","cost":78.36342698691246},"node_76":{"op":"operation","children":["node_6","node_15","node_20","node_26","node_44","node_64","node_66","node_97","node_111"],"eclass":"26","cost":48.7356736689732},"node_77":{"op":"operation","children":["node_5","node_36","node_61","node_71","node_97","node_107","node_113"],"eclass":"5","cost":60.34659910272857},"node_78":{"op":"operation","children":["node_42","node_79","node_97","node_100","node_118"],"eclass":"8","cost":43.257640542210765},"node_79":{"op":"operation","children":["node_6","node_17","node_19","node_54","node_56","node_80","node_99","node_102"],"eclass":"13","cost":96.67761732776667},"node_80":{"op":"operation","children":["node_44","node_69","node_124"],"eclass":"22","cost":93.84745712246988},"node_81":{"op":"operation","children":["node_14","node_31","node_44","node_78","node_103","node_105","node_113"],"eclass":"0","cost":4.943672596229776},"node_82":{"op":"operation","children":["node_47"],"eclass":"25","cost":75.85834145304756},"node_83":{"op":"operation","children":["node_4","node_5","node_24","node_28","node_62","node_74","node_96","node_109","node_111","node_114","node_118"],"eclass":"10","cost":25.871418047244333},"node_84":{"op":"operation","children":["node_12","node_16","node_57","node_69","node_100","node_115","node_126"],"eclass":"16","cost":18.310858956594846},"node_85":{"op":"operation","children":["node_9","node_25","node_43","node_56","node_61","node_102","node_120"],"eclass":"14","cost":13.53263001748093},"node_86":{"op":"operation","children":["node_46","node_68","node_71","node_86","node_88"],"eclass":"14","cost":47.06238340648321},"node_87":{"op":"operation","children":["node_15","node_64","node_73","node_91"],"eclass":"1","cost":4.504041965046723},"node_88":{"op":"operation","children":["node_4","node_7","node_9","node_43","node_47","node_68","node_101","node_122"],"eclass":"16","cost":45.72610772279142},"node_89":{"op":"operation","children":["node_2","node_35","node_88","node_126"],"eclass":"7","cost":19.4493763072641},"node_90":{"op":"operation","children":["node_31","node_59","node_62","node_79","node_85","node_87"],"eclass":"23","cost":89.65073561848418},"node_91":{"op":"operation","children":["node_17","node_32","node_48","node_49","node_61","node_77","node_83","node_89","node_102","node_109"],"eclass":"19","cost":24.566962360796296},"node_92":{"op":"operation","children":["node_6","node_18","node_22","node_40","node_41","node_45","node_46","node_48","node_66","node_71","node_72","node_121","node_126"],"eclass":"28","cost":87.80266616352311},"node_93":{"op":"operation","children":["node_24","node_28","node_81","node_94","node_104","node_115"],"eclass":"8","cost":16.67183353318483},"node_94":{"op":"operation","children":["node_41","node_72","node_99","node_105"],"eclass":"16","cost":67.43644569239014},"node_95":{"op":"operation","children":["node_4","node_10","node_28","node_47","node_61","node_75","node_87","node_89","node_90","node_116","node_120"],"eclass":"4","cost":70.53451965693773},"node_96":{"op":"operation","children":["node_12","node_63","node_70","node_85","node_104"],"eclass":"18","cost":46.85790233188564},"node_97":{"op":"operation","children":["node_52","node_64","node_72","node_87","node_109","node_126"],"eclass":"0","cost":78.7954549303834},"node_98":{"op":"operation","children":["node_85","node_87","node_89","node_99"],"eclass":"9","cost":87.8630805643407},"node_99":{"op":"operation","children":["node_46","node_48","node_53","node_56","node_60","node_112","node_119","node_120"],"eclass":"20","cost":97.29917930833174},"node_100":{"op":"operation","children":["node_16","node_21","node_22","node_38","node_53","node_119"],"eclass":"2","cost":61.63867567244845},"node_101":{"op":"operation","children":["node_19","node_21","node_35","node_71","node_75","node_113","node_116","node_118"],"eclass":"33","cost":56.05945855685033},"node_102":{"op":"operation","children":["node_18","node_23","node_59","node_65","node_75","node_80","node_89","node_99"],"eclass":"23","cost":53.70750853335156},"node_103":{"op":"operation","children":["node_2","node_24","node_44","node_49","node_55","node_58","node_64","node_73","node_83"],"eclass":"8","cost":92.03042944066559},"node_104":{"op":"operation","children":["node_4","node_26","node_31","node_64","node_65","node_91","node_123","node_124"],"eclass":"27","cost":62.92714023636522},"node_105":{"op":"operation","children":["node_24","node_30","node_67","node_116"],"eclass":"26","cost":9.893576376098457},"node_106":{"op":"operation","children":["node_43","node_59","node_64","node_73","node_91","node_92","node_93","node_104","node_112","node_117"],"eclass":"29","cost":8.779434595555212},"node_107":{"op":"operation","children":["node_24","node_27","node_47","node_55","node_113"],"eclass":"17","cost":12.290754970437733},"node_108":{"op":"operation","children":["node_47","node_66","node_122"],"eclass":"5","cost":83.08456273828986},"node_109":{"op":"operation","children":["node_14","node_16","node_29","node_34","node_40","node_41","node_63","node_74","node_125"],"eclass":"22","cost":65.259566859562},"node_110":{"op":"operation","children":["node_0","node_45","node_77","node_104","node_127"],"eclass":"1","cost":8.195502747668604},"node_111":{"op":"operation","children":["node_20","node_48","node_62","node_94","node_113"],"eclass":"16","cost":96.62684159513543},"node_112":{"op":"operation","children":["node_11","node_23","node_25","node_42","node_56","node_90","node_98","node_122"],"eclass":"33","cost":84.70693814044978},"node_113":{"op":"operation","children":["node_0","node_16","node_46","node_53","node_102"],"eclass":"28","cost":49.43838368862106},"node_114":{"op":"operation","children":["node_103","node_121"],"eclass":"3","cost":61.20904604216123},"node_115":{"op":"operation","children":["node_22","node_30","node_44","node_52","node_86","node_92"],"eclass":"8","cost":94.41631497932704},"node_116":{"op":"operation","children":["node_15","node_74","node_113","node_123","node_126"],"eclass":"31","cost":64.27406941138366},"node_117":{"op":"operation","children":["node_29","node_33","node_70","node_76","node_113"],"eclass":"29","cost":85.71839377635739},"node_118":{"op":"operation","children":["node_31","node_81","node_102","node_104","node_114"],"eclass":"5","cost":39.18172383666037},"node_119":{"op":"operation","children":["node_17","node_24","node_28","node_34","node_57","node_85","node_93","node_101","node_109","node_111"],"eclass":"25","cost":33.47612107969103},"node_120":{"op":"operation","children":["node_11","node_12","node_24","node_25","node_34","node_47","node_86","node_105","node_114"],"eclass":"1","cost":40.49119549960585},"node_121":{"op":"operation","children":["node_2","node_23","node_37","node_65","node_67","node_89","node_96","node_102"],"eclass":"2","cost":20.51697845992555},"node_122":{"op":"operation","children":["node_1","node_4","node_16","node_36","node_41","node_50","node_51","node_68"],"eclass":"10","cost":42.807441254341626},"node_123":{"op":"operation","children":["node_6","node_8","node_16","node_71","node_77","node_121","node_123"],"eclass":"7","cost":84.00907714487558},"node_124":{"op":"operation","children":["node_1","node_5","node_25","node_41","node_50","node_62","node_81"],"eclass":"18","cost":61.70824561095593},"node_125":{"op":"operation","children":["node_11","node_15","node_20","node_21","node_29","node_35","node_96","node_116"],"eclass":"23","cost":14.66506921078976},"node_126":{"op":"operation","children":["node_5","node_24","node_36","node_73","node_79","node_86","node_93","node_101","node_109"],"eclass":"8","cost":38.16350310311739},"node_127":{"op":"operation","children":["node_51","node_56","node_102","node_103"],"eclass":"20","cost":59.6482676465655},"node_128":{"op":"operation","children":["node_24","node_26","node_62"],"eclass":"15","cost":99.40578424747329},"node_129":{"op":"operation","children":["node_5","node_12","node_14","node_93","node_115","node_129"],"eclass":"24","cost":17.341515921764696}},"root_eclasses":["0","17","0","9"]} \ No newline at end of file diff --git a/test_data/fuzz/37.json b/test_data/fuzz/37.json new file mode 100644 index 0000000..1c9e370 --- /dev/null +++ b/test_data/fuzz/37.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"1","cost":99.79210989402958},"node_1":{"op":"operation","children":[],"eclass":"1","cost":0.7085996703700359},"node_2":{"op":"operation","children":[],"eclass":"1","cost":36.29081890512803},"node_3":{"op":"operation","children":[],"eclass":"2","cost":38.18411457414231},"node_4":{"op":"operation","children":["node_1"],"eclass":"2","cost":93.87694525498279},"node_5":{"op":"operation","children":[],"eclass":"3","cost":32.05337644873164},"node_6":{"op":"operation","children":[],"eclass":"4","cost":44.737692221722135},"node_7":{"op":"operation","children":[],"eclass":"4","cost":51.80459830917465},"node_8":{"op":"operation","children":["node_0","node_2","node_4"],"eclass":"4","cost":60.989733020700776},"node_9":{"op":"operation","children":[],"eclass":"4","cost":30.081758335925546},"node_10":{"op":"operation","children":["node_1","node_7"],"eclass":"4","cost":95.25789769784302},"node_11":{"op":"operation","children":[],"eclass":"4","cost":73.54936715884834},"node_12":{"op":"operation","children":[],"eclass":"4","cost":3.061453254691493},"node_13":{"op":"operation","children":["node_3"],"eclass":"4","cost":68.29689888253556},"node_14":{"op":"operation","children":["node_7","node_13"],"eclass":"4","cost":12.730420067418502},"node_15":{"op":"operation","children":["node_1","node_3","node_7"],"eclass":"4","cost":18.79738150700461},"node_16":{"op":"operation","children":["node_3","node_15"],"eclass":"5","cost":21.26553907301567},"node_17":{"op":"operation","children":["node_5"],"eclass":"6","cost":60.284783859392554},"node_18":{"op":"operation","children":["node_1","node_3"],"eclass":"7","cost":41.312973590257165},"node_19":{"op":"operation","children":["node_6","node_13","node_14","node_18"],"eclass":"7","cost":40.49811131067786},"node_20":{"op":"operation","children":["node_7","node_10"],"eclass":"7","cost":18.84029701944869},"node_21":{"op":"operation","children":["node_11"],"eclass":"7","cost":46.71666994937013},"node_22":{"op":"operation","children":["node_2","node_7","node_19","node_21"],"eclass":"7","cost":9.931238142367093},"node_23":{"op":"operation","children":["node_3","node_13","node_17","node_20"],"eclass":"7","cost":37.15231873452809},"node_24":{"op":"operation","children":["node_21"],"eclass":"7","cost":35.603562225126296},"node_25":{"op":"operation","children":[],"eclass":"7","cost":51.41350847379908},"node_26":{"op":"operation","children":["node_3","node_25"],"eclass":"7","cost":79.98010604144025},"node_27":{"op":"operation","children":["node_7","node_18","node_20"],"eclass":"7","cost":29.28225223442764},"node_28":{"op":"operation","children":["node_4","node_8","node_13","node_23"],"eclass":"7","cost":2.1775381301826324},"node_29":{"op":"operation","children":["node_1","node_11"],"eclass":"7","cost":11.977402717099316},"node_30":{"op":"operation","children":["node_4","node_5","node_8","node_10","node_18","node_26"],"eclass":"7","cost":18.240888057077353},"node_31":{"op":"operation","children":["node_5","node_28"],"eclass":"7","cost":20.704276458909643},"node_32":{"op":"operation","children":["node_13","node_14","node_27","node_31"],"eclass":"7","cost":3.047451951714364},"node_33":{"op":"operation","children":["node_8","node_17","node_19","node_23"],"eclass":"7","cost":82.41253010298122},"node_34":{"op":"operation","children":["node_3","node_15","node_27"],"eclass":"8","cost":9.702391132737286},"node_35":{"op":"operation","children":["node_5","node_16","node_22","node_24","node_26","node_34"],"eclass":"8","cost":81.80142537345698},"node_36":{"op":"operation","children":["node_2"],"eclass":"9","cost":55.28953415269348},"node_37":{"op":"operation","children":["node_4","node_6","node_9","node_19","node_35"],"eclass":"9","cost":51.40307583846601},"node_38":{"op":"operation","children":["node_26","node_31"],"eclass":"9","cost":77.33208084585225},"node_39":{"op":"operation","children":["node_10","node_11","node_14","node_17"],"eclass":"9","cost":52.52776023757153},"node_40":{"op":"operation","children":["node_8","node_15","node_16","node_18","node_23","node_24","node_25","node_38"],"eclass":"9","cost":54.25392601435395},"node_41":{"op":"operation","children":["node_8"],"eclass":"10","cost":91.26610470435772},"node_42":{"op":"operation","children":["node_2","node_3","node_31","node_39"],"eclass":"11","cost":94.60505472225314},"node_43":{"op":"operation","children":["node_17","node_25","node_27","node_29","node_35","node_36","node_37"],"eclass":"11","cost":72.56087827347307},"node_44":{"op":"operation","children":["node_2","node_4","node_6","node_9","node_25","node_28","node_30"],"eclass":"12","cost":40.45875330812072},"node_45":{"op":"operation","children":["node_1","node_11","node_12","node_18","node_23","node_27","node_44"],"eclass":"13","cost":45.39051484464682},"node_46":{"op":"operation","children":["node_5","node_22","node_28","node_34","node_40"],"eclass":"13","cost":9.341415814156562},"node_47":{"op":"operation","children":["node_21","node_22","node_23","node_24","node_41"],"eclass":"13","cost":71.91395361548612},"node_48":{"op":"operation","children":["node_2","node_8","node_24","node_25","node_33","node_46"],"eclass":"13","cost":23.678477206087067},"node_49":{"op":"operation","children":["node_3","node_12","node_28","node_45"],"eclass":"14","cost":54.60128346996576},"node_50":{"op":"operation","children":["node_13","node_29","node_31","node_32","node_39","node_40"],"eclass":"14","cost":52.162878898670265},"node_51":{"op":"operation","children":["node_10","node_13","node_17","node_25","node_27","node_42","node_46","node_50"],"eclass":"15","cost":49.43919481240573},"node_52":{"op":"operation","children":["node_8","node_9","node_11","node_17","node_32","node_34"],"eclass":"15","cost":14.09097800852457},"node_53":{"op":"operation","children":["node_3","node_20","node_27"],"eclass":"15","cost":79.41145783196053},"node_54":{"op":"operation","children":["node_12","node_20","node_45"],"eclass":"15","cost":90.40388252392908},"node_55":{"op":"operation","children":["node_20","node_24","node_52"],"eclass":"15","cost":88.5676238431734},"node_56":{"op":"operation","children":["node_0","node_5","node_20","node_42","node_46"],"eclass":"15","cost":28.42414117023434},"node_57":{"op":"operation","children":["node_14","node_18","node_26","node_31","node_42"],"eclass":"15","cost":0.49234143718898116},"node_58":{"op":"operation","children":["node_30","node_33","node_34","node_37","node_38","node_43","node_51","node_53"],"eclass":"15","cost":12.853925885969463},"node_59":{"op":"operation","children":["node_11","node_18","node_42","node_44","node_50","node_51","node_53"],"eclass":"15","cost":72.23761877636892},"node_60":{"op":"operation","children":["node_1","node_12","node_21","node_23","node_24","node_38"],"eclass":"16","cost":26.912216400329548},"node_61":{"op":"operation","children":["node_8","node_21","node_23","node_48","node_51","node_57"],"eclass":"17","cost":8.508612203552012},"node_62":{"op":"operation","children":["node_1","node_8","node_16","node_18","node_30","node_31","node_48"],"eclass":"17","cost":29.69880168188743},"node_63":{"op":"operation","children":["node_8","node_28","node_45","node_55"],"eclass":"17","cost":65.19807776885675},"node_64":{"op":"operation","children":["node_41","node_53","node_55","node_56","node_59","node_60"],"eclass":"17","cost":25.586641048225424},"node_65":{"op":"operation","children":["node_21","node_22","node_31","node_32","node_47","node_56","node_62"],"eclass":"17","cost":33.67936573922464},"node_66":{"op":"operation","children":["node_2","node_22","node_24","node_25","node_26","node_33","node_43","node_56","node_65"],"eclass":"18","cost":20.322421695662886},"node_67":{"op":"operation","children":["node_7","node_17","node_33","node_34","node_64"],"eclass":"19","cost":5.183701266704244},"node_68":{"op":"operation","children":["node_3","node_20","node_41","node_49","node_54","node_58","node_61"],"eclass":"19","cost":13.657912769769087},"node_69":{"op":"operation","children":["node_16","node_29","node_41","node_54"],"eclass":"19","cost":13.798147014321415},"node_70":{"op":"operation","children":["node_0","node_8","node_15","node_33","node_35","node_69"],"eclass":"19","cost":9.30571973421409},"node_71":{"op":"operation","children":["node_12","node_28","node_46","node_58","node_59","node_67"],"eclass":"19","cost":90.80252024630646},"node_72":{"op":"operation","children":["node_30","node_37","node_51","node_69"],"eclass":"19","cost":48.918100825562746},"node_73":{"op":"operation","children":["node_10","node_12","node_14","node_31","node_39","node_40","node_57","node_60","node_62"],"eclass":"19","cost":38.821229596458096},"node_74":{"op":"operation","children":["node_21","node_29","node_48","node_58","node_67","node_70"],"eclass":"19","cost":12.911230165558363},"node_75":{"op":"operation","children":["node_34","node_40","node_43","node_44","node_51","node_57","node_60","node_61","node_62"],"eclass":"20","cost":10.280221385114475},"node_76":{"op":"operation","children":["node_12","node_14","node_18","node_20","node_31","node_47","node_50"],"eclass":"20","cost":89.81438772041577},"node_77":{"op":"operation","children":["node_9","node_22","node_28","node_42","node_51","node_60","node_74","node_76"],"eclass":"20","cost":48.76682455201718},"node_78":{"op":"operation","children":["node_2","node_42","node_61"],"eclass":"20","cost":76.91225526682433},"node_79":{"op":"operation","children":["node_3","node_7","node_10","node_15","node_24","node_27","node_34","node_44","node_50","node_52"],"eclass":"20","cost":39.08871802515532},"node_80":{"op":"operation","children":["node_7","node_27","node_40","node_59","node_76"],"eclass":"20","cost":83.14525729455173},"node_81":{"op":"operation","children":["node_11","node_13","node_29","node_56","node_76","node_89","node_137","node_148","node_161"],"eclass":"39","cost":40.91493134529331},"node_82":{"op":"operation","children":["node_17","node_27","node_60","node_92","node_112","node_127","node_135","node_146","node_149"],"eclass":"5","cost":64.95618519172581},"node_83":{"op":"operation","children":["node_6","node_42","node_64","node_79","node_91","node_108","node_111","node_132","node_140"],"eclass":"15","cost":5.572256499770056},"node_84":{"op":"operation","children":["node_4","node_8","node_34","node_77","node_83","node_92","node_93","node_95","node_123","node_125","node_140"],"eclass":"16","cost":69.44512663251915},"node_85":{"op":"operation","children":["node_1","node_6","node_43","node_51","node_56","node_62","node_111","node_120","node_135","node_159"],"eclass":"31","cost":99.97639294358514},"node_86":{"op":"operation","children":["node_8","node_70","node_82","node_87","node_128","node_134","node_136"],"eclass":"17","cost":90.27066180666505},"node_87":{"op":"operation","children":["node_9","node_19","node_96","node_113","node_145"],"eclass":"15","cost":61.96171510202828},"node_88":{"op":"operation","children":["node_0","node_18","node_22","node_80","node_88","node_103","node_137","node_148"],"eclass":"29","cost":41.066522145355236},"node_89":{"op":"operation","children":["node_6","node_8","node_9","node_18","node_54","node_55","node_63","node_155","node_158"],"eclass":"17","cost":80.458157368695},"node_90":{"op":"operation","children":["node_6","node_12","node_25","node_59","node_63","node_65","node_66","node_95","node_97","node_149","node_157"],"eclass":"22","cost":25.20797628055722},"node_91":{"op":"operation","children":["node_16","node_26","node_30","node_36","node_65","node_82","node_84","node_90","node_105","node_117","node_119","node_120","node_133","node_144","node_162"],"eclass":"37","cost":13.475888528699754},"node_92":{"op":"operation","children":["node_59","node_71","node_83"],"eclass":"1","cost":67.31503594904217},"node_93":{"op":"operation","children":["node_6","node_14","node_53","node_104","node_111","node_125","node_145","node_152","node_163"],"eclass":"15","cost":20.905250677986555},"node_94":{"op":"operation","children":["node_20","node_25","node_34","node_52","node_78","node_79","node_80","node_84","node_95","node_139"],"eclass":"9","cost":27.86740630912795},"node_95":{"op":"operation","children":["node_15","node_19","node_67","node_68","node_135","node_158","node_160"],"eclass":"27","cost":16.571248181638477},"node_96":{"op":"operation","children":["node_35","node_75","node_76","node_84","node_108","node_115","node_143"],"eclass":"40","cost":91.98597792202325},"node_97":{"op":"operation","children":["node_36","node_158","node_161"],"eclass":"10","cost":32.490494793892246},"node_98":{"op":"operation","children":["node_14","node_37","node_46","node_72","node_97","node_124","node_149","node_159"],"eclass":"32","cost":8.580081097600933},"node_99":{"op":"operation","children":["node_8","node_15","node_25","node_33","node_54","node_98","node_137","node_157"],"eclass":"3","cost":65.81398791308398},"node_100":{"op":"operation","children":["node_15","node_26","node_54","node_66","node_93","node_135","node_136"],"eclass":"33","cost":0.19195437038865837},"node_101":{"op":"operation","children":["node_79","node_81","node_91","node_97","node_111"],"eclass":"14","cost":68.66142198738802},"node_102":{"op":"operation","children":["node_52","node_67","node_78","node_96","node_100","node_147"],"eclass":"22","cost":89.52407007193534},"node_103":{"op":"operation","children":["node_12","node_33","node_43","node_52","node_53","node_71","node_87","node_94","node_98","node_107","node_116","node_117","node_133","node_161"],"eclass":"10","cost":36.54820705611444},"node_104":{"op":"operation","children":["node_7","node_17","node_25","node_33","node_45","node_60","node_66","node_123"],"eclass":"20","cost":27.29754388704929},"node_105":{"op":"operation","children":["node_7","node_22","node_27","node_58","node_92","node_113","node_161"],"eclass":"2","cost":33.60558877473794},"node_106":{"op":"operation","children":["node_46","node_53","node_65","node_80","node_107","node_112","node_116","node_129","node_135","node_147","node_158","node_160"],"eclass":"29","cost":56.15453368360536},"node_107":{"op":"operation","children":["node_0","node_4","node_34","node_37","node_40","node_159"],"eclass":"32","cost":0.44254480354041226},"node_108":{"op":"operation","children":["node_16","node_80","node_87","node_90","node_100","node_110","node_129","node_142","node_155"],"eclass":"37","cost":12.372930566145591},"node_109":{"op":"operation","children":["node_1","node_6","node_13","node_17","node_27","node_105","node_127","node_160"],"eclass":"36","cost":63.18798064936267},"node_110":{"op":"operation","children":["node_49","node_56","node_77","node_86","node_90","node_96","node_153"],"eclass":"20","cost":34.56514042771464},"node_111":{"op":"operation","children":["node_46","node_65","node_67","node_71","node_81","node_108","node_110","node_131","node_140","node_144","node_149"],"eclass":"33","cost":36.41058029922778},"node_112":{"op":"operation","children":["node_4","node_18","node_22","node_26","node_32","node_97","node_133","node_159"],"eclass":"24","cost":15.52708942264307},"node_113":{"op":"operation","children":["node_9","node_29","node_54","node_85","node_86","node_126"],"eclass":"8","cost":45.51077910015414},"node_114":{"op":"operation","children":["node_21","node_25","node_28","node_36","node_42","node_50","node_60","node_69","node_112","node_119","node_137"],"eclass":"14","cost":91.8566400672322},"node_115":{"op":"operation","children":["node_15","node_34","node_43","node_54","node_80","node_135","node_144"],"eclass":"39","cost":20.671551242805506},"node_116":{"op":"operation","children":["node_12","node_52","node_63","node_70","node_74","node_80","node_81","node_92","node_115","node_126","node_130","node_151"],"eclass":"31","cost":42.75900415416466},"node_117":{"op":"operation","children":["node_35","node_44","node_75","node_78","node_79","node_90","node_100","node_106","node_107","node_111","node_123","node_134","node_162"],"eclass":"11","cost":51.054574546494955},"node_118":{"op":"operation","children":["node_55","node_59","node_87","node_128","node_143","node_150"],"eclass":"27","cost":20.613120418354256},"node_119":{"op":"operation","children":["node_20","node_37","node_64","node_124","node_134","node_136","node_137","node_161"],"eclass":"12","cost":84.67336031183544},"node_120":{"op":"operation","children":["node_5","node_39","node_44","node_55","node_69","node_71","node_108","node_116","node_130"],"eclass":"35","cost":5.729941997110622},"node_121":{"op":"operation","children":["node_21","node_41","node_53","node_67","node_75","node_112","node_115","node_148"],"eclass":"32","cost":74.22927216188846},"node_122":{"op":"operation","children":["node_14","node_15","node_63","node_69","node_78","node_97","node_137","node_159","node_160"],"eclass":"8","cost":97.10231055001586},"node_123":{"op":"operation","children":["node_13","node_69","node_96","node_117","node_129","node_152","node_154"],"eclass":"32","cost":80.28722111428083},"node_124":{"op":"operation","children":["node_6","node_10","node_12","node_27","node_37","node_40","node_41","node_56","node_135","node_153","node_159"],"eclass":"15","cost":41.84522153356384},"node_125":{"op":"operation","children":["node_11","node_29","node_51","node_67","node_89","node_91","node_104","node_153"],"eclass":"30","cost":17.415439801851605},"node_126":{"op":"operation","children":["node_7","node_35","node_50","node_56","node_71","node_80","node_81","node_82","node_95","node_109","node_118","node_137","node_142"],"eclass":"34","cost":19.308947946816502},"node_127":{"op":"operation","children":["node_26","node_47","node_51","node_56","node_76","node_96","node_100","node_105","node_111","node_123","node_128","node_138","node_149","node_156"],"eclass":"4","cost":74.01004675555528},"node_128":{"op":"operation","children":["node_1","node_37","node_75","node_90","node_91","node_110"],"eclass":"6","cost":89.08876623661887},"node_129":{"op":"operation","children":["node_18","node_31","node_37","node_39","node_44","node_45","node_51","node_53","node_86","node_97","node_98","node_113","node_163"],"eclass":"9","cost":16.662643425521285},"node_130":{"op":"operation","children":["node_4","node_27","node_43","node_46","node_55"],"eclass":"16","cost":85.46404675816665},"node_131":{"op":"operation","children":["node_9","node_23","node_35","node_44","node_71","node_88","node_139","node_144","node_148"],"eclass":"18","cost":78.82955653145342},"node_132":{"op":"operation","children":["node_117","node_120","node_121","node_129","node_131","node_152","node_154","node_157"],"eclass":"15","cost":20.08966906998402},"node_133":{"op":"operation","children":["node_8","node_48","node_62","node_73","node_89","node_124","node_129","node_139","node_163"],"eclass":"38","cost":66.87514554671183},"node_134":{"op":"operation","children":["node_20","node_45","node_49","node_68","node_143"],"eclass":"25","cost":47.63557184039544},"node_135":{"op":"operation","children":["node_0","node_2","node_11","node_34","node_59","node_71","node_94","node_113","node_115","node_134","node_161"],"eclass":"18","cost":0.439606130161474},"node_136":{"op":"operation","children":["node_33","node_90","node_102","node_151"],"eclass":"37","cost":89.82014009238652},"node_137":{"op":"operation","children":["node_5","node_58","node_86","node_91","node_117","node_133","node_153"],"eclass":"5","cost":80.39126858797297},"node_138":{"op":"operation","children":["node_36","node_41","node_112","node_114"],"eclass":"29","cost":54.533732094086304},"node_139":{"op":"operation","children":["node_0","node_10","node_12","node_30","node_102","node_109","node_140","node_152","node_159","node_162"],"eclass":"12","cost":91.31796558815076},"node_140":{"op":"operation","children":["node_11","node_23","node_67","node_86","node_87","node_133","node_141","node_163"],"eclass":"6","cost":29.075527417336545},"node_141":{"op":"operation","children":["node_26","node_109","node_115","node_123","node_129","node_148","node_162"],"eclass":"5","cost":67.44584596127429},"node_142":{"op":"operation","children":["node_15","node_47","node_50","node_121","node_129","node_135","node_139","node_158"],"eclass":"19","cost":97.31291864846273},"node_143":{"op":"operation","children":["node_8","node_12","node_32","node_51","node_52","node_54","node_70","node_108","node_110","node_140","node_152"],"eclass":"9","cost":18.45370849935969},"node_144":{"op":"operation","children":["node_11","node_24","node_79","node_81","node_87","node_125","node_144","node_158","node_162"],"eclass":"5","cost":22.20830174219991},"node_145":{"op":"operation","children":["node_32","node_34","node_46","node_51","node_55","node_73","node_131","node_161"],"eclass":"6","cost":47.48405510557661},"node_146":{"op":"operation","children":["node_15","node_33","node_61","node_114","node_119","node_139","node_151","node_155"],"eclass":"20","cost":88.47186606104013},"node_147":{"op":"operation","children":["node_6","node_7","node_10","node_45","node_58","node_84","node_135","node_156"],"eclass":"11","cost":74.6351410756197},"node_148":{"op":"operation","children":["node_0","node_16","node_36","node_37","node_54","node_60","node_100","node_115","node_128","node_135","node_139","node_148"],"eclass":"0","cost":63.26493178141379},"node_149":{"op":"operation","children":["node_0","node_6","node_11","node_27","node_58","node_114","node_133"],"eclass":"5","cost":58.913039296587755},"node_150":{"op":"operation","children":["node_18","node_40","node_50","node_84","node_93","node_109","node_118","node_140","node_163"],"eclass":"38","cost":91.30654032309907},"node_151":{"op":"operation","children":["node_13","node_60","node_74","node_79","node_85","node_93","node_116","node_125","node_142","node_144","node_157"],"eclass":"28","cost":24.57299699062797},"node_152":{"op":"operation","children":["node_9","node_23","node_30","node_51","node_68","node_79","node_108","node_117","node_122","node_125","node_141","node_152"],"eclass":"7","cost":47.83846767807274},"node_153":{"op":"operation","children":["node_13","node_60","node_62","node_66","node_90","node_145"],"eclass":"35","cost":15.426572821055828},"node_154":{"op":"operation","children":["node_1","node_32","node_55","node_86","node_91","node_101","node_111","node_120","node_127","node_131","node_162"],"eclass":"23","cost":96.80822959321053},"node_155":{"op":"operation","children":["node_47","node_49","node_65","node_77","node_117","node_125","node_130","node_133","node_150","node_163"],"eclass":"31","cost":25.018329926962036},"node_156":{"op":"operation","children":["node_75","node_98","node_135"],"eclass":"21","cost":37.41639741729051},"node_157":{"op":"operation","children":["node_17","node_90","node_122","node_157"],"eclass":"40","cost":36.19982684965704},"node_158":{"op":"operation","children":["node_20","node_23","node_70","node_95","node_124"],"eclass":"20","cost":91.3577796421481},"node_159":{"op":"operation","children":["node_16","node_36","node_54","node_59","node_64","node_75","node_80","node_87","node_138","node_148","node_157"],"eclass":"23","cost":58.27783613997839},"node_160":{"op":"operation","children":["node_8","node_12","node_20","node_38","node_41","node_60","node_106","node_126","node_146","node_152","node_154"],"eclass":"21","cost":12.772926134437046},"node_161":{"op":"operation","children":["node_90","node_103","node_129"],"eclass":"10","cost":26.6025389532895},"node_162":{"op":"operation","children":["node_13","node_30","node_52","node_58","node_87","node_94","node_103","node_106","node_152","node_159"],"eclass":"9","cost":73.86330083841682},"node_163":{"op":"operation","children":["node_48","node_60","node_62","node_67","node_85","node_123","node_125","node_131","node_146","node_148"],"eclass":"40","cost":24.222557807635248}},"root_eclasses":["5","20","9"]} \ No newline at end of file diff --git a/test_data/fuzz/38.json b/test_data/fuzz/38.json new file mode 100644 index 0000000..9647687 --- /dev/null +++ b/test_data/fuzz/38.json @@ -0,0 +1 @@ +{"nodes":{"node_0":{"op":"operation","children":[],"eclass":"1","cost":90.95477414644006},"node_1":{"op":"operation","children":[],"eclass":"1","cost":74.69219123885303},"node_2":{"op":"operation","children":[],"eclass":"1","cost":95.95108361459612},"node_3":{"op":"operation","children":[],"eclass":"1","cost":95.95108361459612},"node_4":{"op":"operation","children":["node_3"],"eclass":"2","cost":2.581368468719869},"node_5":{"op":"operation","children":[],"eclass":"2","cost":73.28818411896368},"node_6":{"op":"operation","children":[],"eclass":"2","cost":74.69219123885303},"node_7":{"op":"operation","children":[],"eclass":"2","cost":80.17818715676856},"node_8":{"op":"operation","children":["node_1"],"eclass":"2","cost":83.02961616559202},"node_9":{"op":"operation","children":[],"eclass":"2","cost":15.078684455557234},"node_10":{"op":"operation","children":["node_6"],"eclass":"2","cost":74.69219123885303},"node_11":{"op":"operation","children":["node_8"],"eclass":"3","cost":70.22112749583019},"node_12":{"op":"operation","children":["node_3"],"eclass":"4","cost":0.0},"node_13":{"op":"operation","children":["node_9"],"eclass":"4","cost":64.71390059715226},"node_14":{"op":"operation","children":[],"eclass":"5","cost":70.67321447125748},"node_15":{"op":"operation","children":["node_3","node_9","node_10"],"eclass":"6","cost":54.48981626602997},"node_16":{"op":"operation","children":["node_0","node_2","node_8"],"eclass":"6","cost":86.05927925272906},"node_17":{"op":"operation","children":["node_5","node_6"],"eclass":"6","cost":22.323770372032715},"node_18":{"op":"operation","children":[],"eclass":"6","cost":11.539753892822835},"node_19":{"op":"operation","children":["node_13"],"eclass":"6","cost":0.0},"node_20":{"op":"operation","children":["node_6"],"eclass":"6","cost":78.19798676027776},"node_21":{"op":"operation","children":["node_6","node_19"],"eclass":"6","cost":33.981653557751045},"node_22":{"op":"operation","children":[],"eclass":"6","cost":94.16457408746635},"node_23":{"op":"operation","children":["node_8","node_15","node_16","node_20","node_21","node_22"],"eclass":"6","cost":20.53581089132419},"node_24":{"op":"operation","children":["node_12","node_22"],"eclass":"7","cost":78.3111695664788},"node_25":{"op":"operation","children":["node_22"],"eclass":"7","cost":65.48079022171646},"node_26":{"op":"operation","children":["node_16","node_17","node_24"],"eclass":"7","cost":96.06109315536627},"node_27":{"op":"operation","children":["node_3","node_7","node_21","node_24"],"eclass":"7","cost":95.21559266231925},"node_28":{"op":"operation","children":["node_0","node_14","node_19"],"eclass":"7","cost":35.83528118051918},"node_29":{"op":"operation","children":["node_4","node_10","node_12"],"eclass":"7","cost":91.3878872559015},"node_30":{"op":"operation","children":["node_0"],"eclass":"7","cost":89.34964352818734},"node_31":{"op":"operation","children":["node_9","node_23","node_27"],"eclass":"7","cost":66.21727430313993},"node_32":{"op":"operation","children":["node_5","node_24","node_29"],"eclass":"7","cost":87.25393969044191},"node_33":{"op":"operation","children":["node_3","node_17","node_18"],"eclass":"7","cost":87.24174839456705},"node_34":{"op":"operation","children":["node_11","node_25","node_32"],"eclass":"7","cost":61.26601797897552},"node_35":{"op":"operation","children":["node_1","node_16","node_26","node_29"],"eclass":"8","cost":16.882834935909752},"node_36":{"op":"operation","children":["node_3","node_9","node_24"],"eclass":"8","cost":62.17991436893572},"node_37":{"op":"operation","children":["node_1","node_6","node_9"],"eclass":"8","cost":66.86848249973872},"node_38":{"op":"operation","children":["node_16","node_27"],"eclass":"8","cost":5.6560496486310345},"node_39":{"op":"operation","children":["node_23","node_26","node_35"],"eclass":"8","cost":3.3399084537898083},"node_40":{"op":"operation","children":["node_13","node_21","node_23","node_24","node_29","node_35"],"eclass":"8","cost":81.26784219941747},"node_41":{"op":"operation","children":["node_9","node_39"],"eclass":"8","cost":29.340220929681273},"node_42":{"op":"operation","children":["node_2","node_5","node_16","node_27"],"eclass":"8","cost":55.276703852266394},"node_43":{"op":"operation","children":["node_4","node_12","node_22"],"eclass":"8","cost":8.010175949594856},"node_44":{"op":"operation","children":["node_6","node_8","node_16","node_22","node_27","node_34","node_43"],"eclass":"9","cost":32.81982839114346},"node_45":{"op":"operation","children":["node_31"],"eclass":"9","cost":42.77332148313923},"node_46":{"op":"operation","children":["node_8","node_16","node_17","node_21","node_33"],"eclass":"9","cost":53.137761946101456},"node_47":{"op":"operation","children":["node_13","node_15","node_31","node_36"],"eclass":"10","cost":56.0652599893225},"node_48":{"op":"operation","children":["node_5","node_15","node_17","node_29","node_39","node_43"],"eclass":"10","cost":5.6560496486310345},"node_49":{"op":"operation","children":["node_5","node_42","node_43","node_48"],"eclass":"10","cost":52.22356360478136},"node_50":{"op":"operation","children":["node_8","node_13","node_17","node_31","node_38","node_39"],"eclass":"10","cost":22.056170245458496},"node_51":{"op":"operation","children":["node_0","node_2","node_8","node_16","node_20","node_23","node_30","node_32","node_38","node_43","node_44"],"eclass":"10","cost":39.04413824415538},"node_52":{"op":"operation","children":["node_2","node_3","node_6","node_8","node_10","node_16","node_31"],"eclass":"10","cost":12.528866427188268},"node_53":{"op":"operation","children":["node_24","node_38"],"eclass":"10","cost":84.94785251411732},"node_54":{"op":"operation","children":["node_12","node_33","node_46","node_86","node_91","node_104","node_122"],"eclass":"15","cost":31.825848415200685},"node_55":{"op":"operation","children":["node_9","node_12","node_13","node_41","node_63","node_68","node_84","node_92","node_108"],"eclass":"16","cost":43.84590128102578},"node_56":{"op":"operation","children":["node_47","node_49","node_53","node_70","node_115","node_123","node_129"],"eclass":"20","cost":53.80971373290142},"node_57":{"op":"operation","children":["node_83","node_95","node_100","node_103","node_113","node_116"],"eclass":"20","cost":0.0},"node_58":{"op":"operation","children":["node_1","node_10","node_21","node_30","node_44","node_72","node_78","node_98","node_118","node_119","node_120","node_125","node_128"],"eclass":"1","cost":69.44389717842532},"node_59":{"op":"operation","children":["node_2","node_11","node_66","node_67","node_77","node_80","node_129","node_133"],"eclass":"5","cost":99.18725301661806},"node_60":{"op":"operation","children":["node_59","node_65","node_97","node_108","node_111","node_114","node_117","node_134"],"eclass":"5","cost":34.329907634726645},"node_61":{"op":"operation","children":["node_3","node_30","node_36","node_37","node_45","node_115","node_134"],"eclass":"11","cost":35.60327306844254},"node_62":{"op":"operation","children":["node_12","node_79"],"eclass":"4","cost":79.03698685920062},"node_63":{"op":"operation","children":["node_27","node_31","node_35","node_36","node_83","node_89","node_99"],"eclass":"5","cost":2.6847307972051926},"node_64":{"op":"operation","children":["node_27","node_30","node_35","node_76","node_82","node_101","node_125"],"eclass":"11","cost":0.0},"node_65":{"op":"operation","children":["node_12","node_33","node_41","node_92","node_100"],"eclass":"7","cost":98.402979945208},"node_66":{"op":"operation","children":["node_24","node_34","node_41","node_49","node_62","node_71","node_75","node_92","node_97","node_100","node_110","node_132"],"eclass":"15","cost":12.845678022299689},"node_67":{"op":"operation","children":["node_27","node_33","node_35","node_54","node_92","node_111","node_115","node_118"],"eclass":"0","cost":2.581368468719869},"node_68":{"op":"operation","children":["node_3","node_8","node_11","node_16","node_20","node_45","node_113"],"eclass":"12","cost":61.46719233845388},"node_69":{"op":"operation","children":["node_0","node_24","node_48","node_64","node_66","node_97","node_107","node_118"],"eclass":"2","cost":60.18074344781306},"node_70":{"op":"operation","children":["node_0","node_13","node_53","node_57","node_85","node_92","node_108"],"eclass":"11","cost":15.772224838212978},"node_71":{"op":"operation","children":["node_6","node_11","node_13","node_17","node_20","node_70","node_119"],"eclass":"2","cost":14.220935832634874},"node_72":{"op":"operation","children":["node_2","node_43","node_58","node_72"],"eclass":"16","cost":21.564547221541474},"node_73":{"op":"operation","children":["node_53","node_57","node_58","node_103","node_116"],"eclass":"10","cost":11.654160438066906},"node_74":{"op":"operation","children":["node_0","node_4","node_6","node_24","node_29","node_33","node_40","node_66","node_85","node_97","node_118"],"eclass":"14","cost":12.215901185345057},"node_75":{"op":"operation","children":["node_26","node_30","node_46"],"eclass":"18","cost":8.729613688125248},"node_76":{"op":"operation","children":["node_5","node_6","node_11","node_24","node_96","node_101","node_119","node_132"],"eclass":"15","cost":11.412104455837468},"node_77":{"op":"operation","children":["node_1","node_5","node_31","node_33","node_57","node_85","node_97","node_110"],"eclass":"19","cost":2.740761681314874},"node_78":{"op":"operation","children":["node_14","node_18","node_23","node_32","node_48","node_57","node_81","node_107","node_113","node_115"],"eclass":"11","cost":87.22782484764862},"node_79":{"op":"operation","children":["node_41","node_83","node_109","node_122"],"eclass":"18","cost":29.42827283616761},"node_80":{"op":"operation","children":["node_13","node_18","node_21","node_43","node_44","node_127"],"eclass":"11","cost":25.233049129220397},"node_81":{"op":"operation","children":["node_2","node_57","node_109","node_130"],"eclass":"11","cost":64.7386926585086},"node_82":{"op":"operation","children":["node_75","node_82","node_99","node_109","node_120","node_122"],"eclass":"3","cost":16.613631583433207},"node_83":{"op":"operation","children":["node_21","node_50","node_60","node_82","node_106"],"eclass":"18","cost":99.4335278119806},"node_84":{"op":"operation","children":["node_20","node_28","node_47","node_74","node_79","node_84","node_89","node_93","node_94","node_103","node_124"],"eclass":"15","cost":15.09196929146891},"node_85":{"op":"operation","children":["node_0","node_1","node_22","node_36","node_53","node_104"],"eclass":"9","cost":12.215901185345057},"node_86":{"op":"operation","children":["node_17","node_67"],"eclass":"13","cost":21.053386039983867},"node_87":{"op":"operation","children":["node_21","node_22","node_26","node_32","node_51","node_73","node_74","node_77","node_81","node_119","node_132"],"eclass":"10","cost":97.88103449614343},"node_88":{"op":"operation","children":["node_29","node_31","node_33","node_62","node_106","node_119"],"eclass":"2","cost":89.86782328339983},"node_89":{"op":"operation","children":["node_13","node_27","node_29","node_46","node_123"],"eclass":"8","cost":0.0},"node_90":{"op":"operation","children":["node_35","node_42","node_52","node_68","node_113"],"eclass":"7","cost":18.578543462542065},"node_91":{"op":"operation","children":["node_21","node_51","node_80","node_102","node_123","node_132"],"eclass":"1","cost":25.0251439875695},"node_92":{"op":"operation","children":["node_5","node_116","node_129"],"eclass":"17","cost":90.07343765912375},"node_93":{"op":"operation","children":["node_35","node_38","node_106","node_117","node_125"],"eclass":"3","cost":74.69219123885303},"node_94":{"op":"operation","children":["node_18","node_55","node_57","node_76","node_77","node_102"],"eclass":"13","cost":63.57425572672264},"node_95":{"op":"operation","children":["node_10","node_12","node_26","node_43","node_111"],"eclass":"3","cost":52.22356360478136},"node_96":{"op":"operation","children":["node_15","node_34","node_44","node_71","node_86","node_92","node_117"],"eclass":"20","cost":11.097328118215465},"node_97":{"op":"operation","children":["node_21","node_61","node_76","node_84","node_92","node_95","node_102","node_116","node_134"],"eclass":"3","cost":15.34085725644787},"node_98":{"op":"operation","children":["node_8","node_30","node_41","node_54","node_76","node_93","node_111","node_124"],"eclass":"15","cost":68.18563928733884},"node_99":{"op":"operation","children":["node_16","node_58","node_101","node_116","node_131"],"eclass":"20","cost":25.156496747395895},"node_100":{"op":"operation","children":["node_79","node_86","node_89","node_107","node_118"],"eclass":"2","cost":41.189349142269634},"node_101":{"op":"operation","children":["node_1","node_9","node_23","node_28","node_80","node_88","node_104","node_115","node_121"],"eclass":"6","cost":1.7121768711198193},"node_102":{"op":"operation","children":["node_22","node_29","node_44","node_58","node_74","node_90","node_91","node_117"],"eclass":"1","cost":95.95108361459612},"node_103":{"op":"operation","children":["node_22","node_87","node_90","node_91","node_93"],"eclass":"8","cost":56.0652599893225},"node_104":{"op":"operation","children":["node_25","node_35","node_47","node_53","node_75","node_99","node_123"],"eclass":"17","cost":0.0},"node_105":{"op":"operation","children":["node_3","node_18","node_29","node_35","node_104"],"eclass":"12","cost":59.75729459217693},"node_106":{"op":"operation","children":["node_10","node_24","node_48","node_81","node_99","node_100","node_102","node_106"],"eclass":"18","cost":28.87483823549949},"node_107":{"op":"operation","children":["node_16","node_38","node_44","node_92","node_97","node_105","node_112","node_127"],"eclass":"9","cost":6.86645830921655},"node_108":{"op":"operation","children":["node_9","node_33","node_40","node_58","node_129"],"eclass":"6","cost":0.0},"node_109":{"op":"operation","children":["node_2","node_20","node_30","node_58","node_68","node_82","node_91","node_92","node_98","node_130"],"eclass":"2","cost":61.596746125641744},"node_110":{"op":"operation","children":["node_33","node_119","node_120"],"eclass":"12","cost":35.29854680154052},"node_111":{"op":"operation","children":["node_2","node_4","node_14","node_32","node_63","node_87","node_104","node_117","node_118","node_127"],"eclass":"19","cost":28.15846128810677},"node_112":{"op":"operation","children":["node_39","node_44","node_45","node_58","node_95","node_109","node_115"],"eclass":"10","cost":28.360314500610716},"node_113":{"op":"operation","children":["node_21","node_25","node_27","node_48","node_82","node_94"],"eclass":"1","cost":23.324817828262923},"node_114":{"op":"operation","children":["node_5","node_32","node_54","node_62","node_70","node_123","node_127"],"eclass":"18","cost":36.48763175459522},"node_115":{"op":"operation","children":["node_13","node_73","node_74","node_83","node_132"],"eclass":"2","cost":25.77915395746617},"node_116":{"op":"operation","children":["node_9","node_44","node_54","node_65","node_67","node_73","node_93","node_107","node_115","node_120"],"eclass":"5","cost":7.052387151820028},"node_117":{"op":"operation","children":["node_4","node_33","node_35","node_43","node_48","node_49","node_53","node_71","node_112"],"eclass":"16","cost":40.29343909201351},"node_118":{"op":"operation","children":["node_39","node_58","node_66","node_68","node_107"],"eclass":"0","cost":55.16885160396706},"node_119":{"op":"operation","children":["node_5","node_23","node_27","node_48","node_49","node_74","node_113"],"eclass":"19","cost":47.34057587156133},"node_120":{"op":"operation","children":["node_81","node_104"],"eclass":"0","cost":83.42768494714117},"node_121":{"op":"operation","children":["node_8","node_32","node_59","node_67","node_74","node_78","node_93","node_103","node_104","node_116"],"eclass":"18","cost":99.88616807693069},"node_122":{"op":"operation","children":["node_3","node_11","node_52","node_69","node_96"],"eclass":"20","cost":96.53574475197115},"node_123":{"op":"operation","children":["node_32","node_76","node_79","node_99","node_102","node_107","node_124"],"eclass":"8","cost":69.26341485564113},"node_124":{"op":"operation","children":["node_8","node_97","node_98","node_100","node_107","node_119"],"eclass":"1","cost":25.0251439875695},"node_125":{"op":"operation","children":["node_13","node_20","node_33","node_44","node_123"],"eclass":"16","cost":53.35800347460224},"node_126":{"op":"operation","children":["node_0","node_9","node_33","node_121","node_126"],"eclass":"7","cost":33.40486345832201},"node_127":{"op":"operation","children":["node_14","node_39","node_43","node_44","node_65","node_75","node_76","node_92","node_120","node_129"],"eclass":"17","cost":8.729613688125248},"node_128":{"op":"operation","children":["node_16","node_23","node_43","node_46","node_87","node_92"],"eclass":"2","cost":39.89828402545403},"node_129":{"op":"operation","children":["node_24","node_39","node_53","node_61","node_65","node_66","node_99","node_123","node_131"],"eclass":"20","cost":94.4327865356831},"node_130":{"op":"operation","children":["node_29","node_35","node_49","node_100","node_110","node_114"],"eclass":"0","cost":12.862567195997576},"node_131":{"op":"operation","children":["node_30","node_49","node_122"],"eclass":"6","cost":31.348169964296734},"node_132":{"op":"operation","children":["node_15","node_32","node_74","node_82","node_90","node_116","node_132"],"eclass":"5","cost":56.02543225190918},"node_133":{"op":"operation","children":["node_76"],"eclass":"15","cost":77.33406884036724},"node_134":{"op":"operation","children":["node_39","node_57","node_74","node_97","node_119"],"eclass":"3","cost":29.45652703299443}},"root_eclasses":["9","6"]} \ No newline at end of file diff --git a/data/fuzz/4.json b/test_data/fuzz/4.json similarity index 100% rename from data/fuzz/4.json rename to test_data/fuzz/4.json diff --git a/data/fuzz/5.json b/test_data/fuzz/5.json similarity index 100% rename from data/fuzz/5.json rename to test_data/fuzz/5.json diff --git a/data/fuzz/6.json b/test_data/fuzz/6.json similarity index 100% rename from data/fuzz/6.json rename to test_data/fuzz/6.json diff --git a/data/fuzz/7.json b/test_data/fuzz/7.json similarity index 100% rename from data/fuzz/7.json rename to test_data/fuzz/7.json diff --git a/data/fuzz/8.json b/test_data/fuzz/8.json similarity index 100% rename from data/fuzz/8.json rename to test_data/fuzz/8.json diff --git a/data/fuzz/9.json b/test_data/fuzz/9.json similarity index 100% rename from data/fuzz/9.json rename to test_data/fuzz/9.json diff --git a/data/fuzz/readme.md b/test_data/fuzz/readme.md similarity index 100% rename from data/fuzz/readme.md rename to test_data/fuzz/readme.md