Files
tlsn-utils/rangeset/fuzz/fuzz_targets/set_union_range.rs
th4s 6c9c40e68a chore: clippy, fmt, warnings (#64)
* clippy fixes

* fmt fixes

* mirgrate to 2024 and fix workspace warning

* fix profile

* rustfmt

---------

Co-authored-by: sinu <65924192+sinui0@users.noreply.github.com>
2025-05-01 10:09:50 -07:00

34 lines
691 B
Rust

#![no_main]
use std::ops::Range;
use libfuzzer_sys::fuzz_target;
use rangeset_fuzz::{SmallSet, assert_invariants};
use rangeset::*;
fn expected_union(a: RangeSet<u8>, b: Range<u8>) -> Vec<u8> {
let mut expected_values = a.iter().chain(b).collect::<Vec<_>>();
expected_values.sort();
expected_values.dedup();
expected_values
}
fuzz_target!(|r: (Range<u8>, SmallSet)| {
let r1 = r.0;
let r2: RangeSet<u8> = r.1.into();
let expected_values = expected_union(r2.clone(), r1.clone());
let union = r2.union(&r1);
let actual_values = union.iter().collect::<Vec<_>>();
assert_eq!(expected_values, actual_values);
assert_invariants(union);
});