@@ -472,6 +472,94 @@ fn test_train_from_buffer_legacy_try_merge_2() {
472472 } ) ;
473473}
474474
475+ #[ test]
476+ #[ cfg( not( target_family = "wasm" ) ) ]
477+ #[ cfg_attr( miri, ignore = "slow" ) ]
478+ fn test_train_from_buffer_legacy_try_merge_3 ( ) {
479+ let _ = assert_eq_rs_c ! ( {
480+ let mut sample_data: Vec <u8 > = vec![
481+ 31 , 31 , 19 , 255 , 255 , 19 , 41 , 43 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 19 , 255 , 255 , 46 ,
482+ 255 , 255 , 255 , 255 , 31 , 255 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 127 , 19 , 255 , 19 , 255 ,
483+ 255 , 31 , 255 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 247 , 19 , 255 , 19 , 255 , 19 , 19 , 255 , 19 ,
484+ 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 239 , 19 , 255 , 19 ,
485+ 255 , 19 , 255 , 31 , 31 , 19 , 255 , 255 , 19 , 41 , 43 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 19 ,
486+ 255 , 255 , 46 , 255 , 255 , 255 , 255 , 31 , 255 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 127 , 19 ,
487+ 255 , 19 , 255 , 255 , 31 , 255 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 247 , 19 , 255 , 19 , 255 , 19 ,
488+ 19 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 239 ,
489+ 19 , 255 , 19 , 255 , 19 , 255 , 31 , 31 , 19 , 255 , 255 , 19 , 41 , 43 , 255 , 255 , 255 , 255 , 255 ,
490+ 255 , 255 , 19 , 255 , 255 , 46 , 255 , 255 , 255 , 255 , 31 , 255 , 255 , 19 , 255 , 19 , 255 , 19 ,
491+ 255 , 127 , 19 , 255 , 19 , 255 , 255 , 31 , 255 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 247 , 19 , 255 ,
492+ 19 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 , 19 , 255 , 19 , 255 , 19 ,
493+ 255 , 19 , 239 , 19 , 255 , 19 , 255 , 19 , 255 , 31 , 19 , 255 , 255 , 19 , 41 , 43 , 255 , 255 , 255 ,
494+ 255 , 255 , 255 , 255 , 19 , 255 , 255 , 46 , 255 , 255 , 255 , 255 , 31 , 255 , 255 , 19 , 255 , 19 ,
495+ 255 , 19 , 255 , 127 , 19 , 255 , 19 , 255 , 255 , 31 , 255 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 247 ,
496+ 19 , 255 , 19 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 , 19 , 255 , 19 ,
497+ 255 , 19 , 255 , 19 , 239 , 19 , 255 , 19 , 255 , 19 , 255 , 31 , 31 , 19 , 255 , 255 , 19 , 41 , 43 ,
498+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 19 , 255 , 255 , 46 , 255 , 255 , 255 , 255 , 31 , 255 , 255 ,
499+ 19 , 255 , 19 , 255 , 19 , 255 , 127 , 19 , 255 , 19 , 255 , 255 , 31 , 255 , 255 , 19 , 19 , 255 , 19 ,
500+ 255 , 19 , 247 , 19 , 255 , 19 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 ,
501+ 19 , 255 , 19 , 255 , 19 , 255 , 19 , 239 , 19 , 255 , 19 , 255 , 19 , 255 , 31 , 19 , 255 , 255 , 19 ,
502+ 41 , 43 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 19 , 255 , 255 , 46 , 255 , 255 , 255 , 255 , 31 ,
503+ 255 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 127 , 19 , 255 , 19 , 255 , 255 , 31 , 255 , 255 , 19 , 19 ,
504+ 255 , 19 , 255 , 19 , 247 , 19 , 255 , 19 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 14 ,
505+ 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 239 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 19 , 255 ,
506+ 19 , 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 239 , 19 , 255 ,
507+ 19 , 255 , 19 , 255 , 31 , 31 , 19 , 255 , 255 , 19 , 41 , 43 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
508+ 19 , 255 , 255 , 46 , 255 , 255 , 255 , 255 , 31 , 255 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 127 , 19 ,
509+ 255 , 19 , 255 , 255 , 31 , 255 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 247 , 19 , 255 , 19 , 255 , 19 ,
510+ 19 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 239 ,
511+ 19 , 255 , 19 , 255 , 19 , 255 , 31 , 31 , 19 , 255 , 255 , 19 , 41 , 43 , 255 , 255 , 255 , 255 , 255 ,
512+ 255 , 255 , 19 , 255 , 255 , 46 , 255 , 255 , 255 , 255 , 31 , 255 , 255 , 19 , 255 , 19 , 255 , 19 ,
513+ 255 , 127 , 19 , 255 , 19 , 255 , 255 , 31 , 255 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 247 , 19 , 255 ,
514+ 19 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 , 19 , 255 , 19 , 255 , 19 ,
515+ 255 , 19 , 239 , 19 , 255 , 19 , 255 , 19 , 255 , 31 , 31 , 19 , 255 , 255 , 19 , 41 , 43 , 255 , 255 ,
516+ 255 , 255 , 255 , 255 , 255 , 19 , 255 , 255 , 46 , 255 , 255 , 255 , 255 , 31 , 255 , 255 , 19 , 255 ,
517+ 19 , 255 , 19 , 255 , 127 , 19 , 255 , 19 , 255 , 255 , 31 , 255 , 255 , 19 , 19 , 255 , 19 , 255 , 19 ,
518+ 247 , 19 , 255 , 19 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 , 19 , 255 ,
519+ 19 , 255 , 19 , 255 , 19 , 239 , 19 , 255 , 19 , 255 , 19 , 255 , 31 , 31 , 19 , 255 , 255 , 19 , 41 , 43 ,
520+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 19 , 255 , 255 , 46 , 255 , 255 , 255 , 255 , 31 , 255 , 255 ,
521+ 19 , 255 , 19 , 255 , 19 , 255 , 127 , 19 , 255 , 19 , 255 , 255 , 31 , 255 , 255 , 19 , 19 , 255 , 19 ,
522+ 255 , 19 , 247 , 19 , 255 , 19 , 255 , 19 , 19 , 255 , 19 , 255 , 19 , 255 , 19 , 255 , 14 , 255 , 19 ,
523+ 19 , 255 , 19 , 255 , 19 , 255 , 19 , 239 , 19 , 255 , 19 , 255 , 19 , 255 ,
524+ ] ;
525+
526+ let sample_sizes = vec![ 78 , 78 , 78 , 77 , 78 , 77 , 26 , 78 , 78 , 78 , 78 ] ;
527+
528+ sample_data. resize( sample_sizes. iter( ) . sum:: <usize >( ) , 0u8 ) ;
529+
530+ let params = ZDICT_legacy_params_t {
531+ zParams: ZDICT_params_t {
532+ compressionLevel: 0 ,
533+ notificationLevel: 0 ,
534+ dictID: 0 ,
535+ } ,
536+ selectivityLevel: 0 ,
537+ } ;
538+
539+ let dict_capacity = 1024 ;
540+ let mut dict_buffer = vec![ 0u8 ; dict_capacity] ;
541+
542+ let dict_size = ZDICT_trainFromBuffer_legacy (
543+ dict_buffer. as_mut_ptr( ) as * mut c_void,
544+ dict_buffer. len( ) ,
545+ sample_data. as_ptr( ) as * const c_void,
546+ sample_sizes. as_ptr( ) ,
547+ sample_sizes. len( ) as u32 ,
548+ params,
549+ ) ;
550+
551+ if ZDICT_isError ( dict_size) != 0 {
552+ Err ( CStr :: from_ptr( ZDICT_getErrorName ( dict_size) ) . to_str( ) )
553+ } else {
554+ dict_buffer. truncate( dict_size) ;
555+
556+ println!( "Dictionary size: {}" , dict_size) ;
557+
558+ Ok ( dict_buffer)
559+ }
560+ } ) ;
561+ }
562+
475563#[ test]
476564#[ cfg( not( target_family = "wasm" ) ) ]
477565fn test_optimize_train_from_buffer_cover_single_threaded ( ) {
0 commit comments