use super::*;
panic_test!(
zero_procs_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(0, 1, 1, &[], &[], &[], &[], &[])
);
panic_test!(
zero_blocks_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 0, 1, &[], &[], &[], &[], &[])
);
panic_test!(
zero_facts_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 1, 0, &[], &[], &[], &[], &[])
);
panic_test!(
intra_edge_proc_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[(1, 0, 1)], &[], &[], &[], &[])
);
panic_test!(
intra_edge_src_block_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[(0, 2, 1)], &[], &[], &[], &[])
);
panic_test!(
intra_edge_dst_block_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[(0, 0, 2)], &[], &[], &[], &[])
);
panic_test!(
inter_edge_src_proc_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[(1, 0, 0, 1)], &[], &[], &[])
);
panic_test!(
inter_edge_dst_proc_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[(0, 0, 1, 1)], &[], &[], &[])
);
panic_test!(
inter_edge_src_block_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[(0, 2, 0, 1)], &[], &[], &[])
);
panic_test!(
inter_edge_dst_block_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[(0, 0, 0, 2)], &[], &[], &[])
);
panic_test!(
gen_proc_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[], &[(1, 0, 0)], &[], &[])
);
panic_test!(
gen_block_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[], &[(0, 2, 0)], &[], &[])
);
panic_test!(
gen_fact_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[], &[(0, 0, 1)], &[], &[])
);
panic_test!(
kill_proc_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[], &[], &[(1, 0, 0)], &[])
);
panic_test!(
kill_block_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[], &[], &[(0, 2, 0)], &[])
);
panic_test!(
kill_fact_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[], &[], &[(0, 0, 1)], &[])
);
panic_test!(
seed_proc_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[], &[], &[], &[(1, 0, 0)])
);
panic_test!(
seed_block_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[], &[], &[], &[(0, 2, 0)])
);
panic_test!(
seed_fact_out_of_domain_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(1, 2, 1, &[], &[], &[], &[], &[(0, 0, 1)])
);
panic_test!(
shape_overflow_procs_panics,
"dimensions exceed 32-bit exploded-node encoding",
solve_cpu(4097, 1, 1, &[], &[], &[], &[], &[])
);
panic_test!(
shape_overflow_blocks_panics,
"dimensions exceed 32-bit exploded-node encoding",
solve_cpu(1, 1025, 1, &[], &[], &[], &[], &[])
);
panic_test!(
shape_overflow_facts_panics,
"dimensions exceed 32-bit exploded-node encoding",
solve_cpu(1, 1, 1025, &[], &[], &[], &[], &[])
);
panic_test!(
adversarial_zero_dimensions_panics,
"IFDS CPU oracle received malformed problem",
{
let p = IfdsProblemBuilder::adversarial_zero_dimensions();
solve_cpu(
p.num_procs,
p.blocks_per_proc,
p.facts_per_proc,
&p.intra_edges,
&p.inter_edges,
&p.flow_gen,
&p.flow_kill,
&p.seed_facts,
)
}
);
panic_test!(
adversarial_overflow_shape_panics,
"dimensions exceed 32-bit exploded-node encoding",
{
let p = IfdsProblemBuilder::adversarial_overflow_shape();
solve_cpu(
p.num_procs,
p.blocks_per_proc,
p.facts_per_proc,
&p.intra_edges,
&p.inter_edges,
&p.flow_gen,
&p.flow_kill,
&p.seed_facts,
)
}
);
panic_test!(
empty_dimensions_with_intra_rules_panics,
"IFDS CPU oracle received malformed problem",
solve_cpu(0, 1, 1, &[(0, 0, 1)], &[], &[], &[], &[])
);
panic_test!(
u32_max_procs_rejected_panics,
"dimensions exceed 32-bit exploded-node encoding",
solve_cpu(u32::MAX, 1, 1, &[], &[], &[], &[], &[])
);
panic_test!(
u32_max_blocks_rejected_panics,
"dimensions exceed 32-bit exploded-node encoding",
solve_cpu(1, u32::MAX, 1, &[], &[], &[], &[], &[])
);
panic_test!(
u32_max_facts_rejected_panics,
"dimensions exceed 32-bit exploded-node encoding",
solve_cpu(1, 1, u32::MAX, &[], &[], &[], &[], &[])
);