mod fst; mod roaring; mod trie; #[test] fn compare_all_implementations() { let xid_start_fst = fst::xid_start_fst(); let xid_continue_fst = fst::xid_continue_fst(); let xid_start_roaring = roaring::xid_start_bitmap(); let xid_continue_roaring = roaring::xid_continue_bitmap(); for ch in '\0'..=char::MAX { let thought_to_be_start = unicode_ident::is_xid_start(ch); let thought_to_be_continue = unicode_ident::is_xid_continue(ch); // unicode-xid // FIXME: unicode-xid does not support Unicode 15.1.0 yet. /* assert_eq!( thought_to_be_start, unicode_xid::UnicodeXID::is_xid_start(ch), "{ch:?}", ); assert_eq!( thought_to_be_continue, unicode_xid::UnicodeXID::is_xid_continue(ch), "{ch:?}", ); */ // ucd-trie assert_eq!( thought_to_be_start, trie::XID_START.contains_char(ch), "{ch:?}", ); assert_eq!( thought_to_be_continue, trie::XID_CONTINUE.contains_char(ch), "{ch:?}", ); // fst assert_eq!( thought_to_be_start, xid_start_fst.contains((ch as u32).to_be_bytes()), "{ch:?}", ); assert_eq!( thought_to_be_continue, xid_continue_fst.contains((ch as u32).to_be_bytes()), "{ch:?}", ); // roaring assert_eq!( thought_to_be_start, xid_start_roaring.contains(ch as u32), "{ch:?}", ); assert_eq!( thought_to_be_continue, xid_continue_roaring.contains(ch as u32), "{ch:?}", ); } }