16e652d70Sopenharmony_cimod fst; 26e652d70Sopenharmony_cimod roaring; 36e652d70Sopenharmony_cimod trie; 46e652d70Sopenharmony_ci 56e652d70Sopenharmony_ci#[test] 66e652d70Sopenharmony_cifn compare_all_implementations() { 76e652d70Sopenharmony_ci let xid_start_fst = fst::xid_start_fst(); 86e652d70Sopenharmony_ci let xid_continue_fst = fst::xid_continue_fst(); 96e652d70Sopenharmony_ci let xid_start_roaring = roaring::xid_start_bitmap(); 106e652d70Sopenharmony_ci let xid_continue_roaring = roaring::xid_continue_bitmap(); 116e652d70Sopenharmony_ci 126e652d70Sopenharmony_ci for ch in '\0'..=char::MAX { 136e652d70Sopenharmony_ci let thought_to_be_start = unicode_ident::is_xid_start(ch); 146e652d70Sopenharmony_ci let thought_to_be_continue = unicode_ident::is_xid_continue(ch); 156e652d70Sopenharmony_ci 166e652d70Sopenharmony_ci // unicode-xid 176e652d70Sopenharmony_ci assert_eq!( 186e652d70Sopenharmony_ci thought_to_be_start, 196e652d70Sopenharmony_ci unicode_xid::UnicodeXID::is_xid_start(ch), 206e652d70Sopenharmony_ci "{ch:?}", 216e652d70Sopenharmony_ci ); 226e652d70Sopenharmony_ci assert_eq!( 236e652d70Sopenharmony_ci thought_to_be_continue, 246e652d70Sopenharmony_ci unicode_xid::UnicodeXID::is_xid_continue(ch), 256e652d70Sopenharmony_ci "{ch:?}", 266e652d70Sopenharmony_ci ); 276e652d70Sopenharmony_ci 286e652d70Sopenharmony_ci // ucd-trie 296e652d70Sopenharmony_ci assert_eq!( 306e652d70Sopenharmony_ci thought_to_be_start, 316e652d70Sopenharmony_ci trie::XID_START.contains_char(ch), 326e652d70Sopenharmony_ci "{ch:?}", 336e652d70Sopenharmony_ci ); 346e652d70Sopenharmony_ci assert_eq!( 356e652d70Sopenharmony_ci thought_to_be_continue, 366e652d70Sopenharmony_ci trie::XID_CONTINUE.contains_char(ch), 376e652d70Sopenharmony_ci "{ch:?}", 386e652d70Sopenharmony_ci ); 396e652d70Sopenharmony_ci 406e652d70Sopenharmony_ci // fst 416e652d70Sopenharmony_ci assert_eq!( 426e652d70Sopenharmony_ci thought_to_be_start, 436e652d70Sopenharmony_ci xid_start_fst.contains((ch as u32).to_be_bytes()), 446e652d70Sopenharmony_ci "{ch:?}", 456e652d70Sopenharmony_ci ); 466e652d70Sopenharmony_ci assert_eq!( 476e652d70Sopenharmony_ci thought_to_be_continue, 486e652d70Sopenharmony_ci xid_continue_fst.contains((ch as u32).to_be_bytes()), 496e652d70Sopenharmony_ci "{ch:?}", 506e652d70Sopenharmony_ci ); 516e652d70Sopenharmony_ci 526e652d70Sopenharmony_ci // roaring 536e652d70Sopenharmony_ci assert_eq!( 546e652d70Sopenharmony_ci thought_to_be_start, 556e652d70Sopenharmony_ci xid_start_roaring.contains(ch as u32), 566e652d70Sopenharmony_ci "{ch:?}", 576e652d70Sopenharmony_ci ); 586e652d70Sopenharmony_ci assert_eq!( 596e652d70Sopenharmony_ci thought_to_be_continue, 606e652d70Sopenharmony_ci xid_continue_roaring.contains(ch as u32), 616e652d70Sopenharmony_ci "{ch:?}", 626e652d70Sopenharmony_ci ); 636e652d70Sopenharmony_ci } 646e652d70Sopenharmony_ci} 65