@@ -553,6 +553,20 @@ fn generate_properties(w: &mut SynthWriter) {
553553 . write ( w, "prop_i32_np" ) ;
554554 p0 ( ) . add_prop ( e_int, P :: opt_i32 ( "val" , vec ! [ Some ( 42 ) ] ) )
555555 . write ( w, "prop_i32" ) ;
556+ // Single-value variants for every encoding: numValues==1 takes the CONST/SEQUENCE path,
557+ // which the multi-feature props_* tests (FLAT path) never exercise.
558+ p0 ( ) . add_prop ( E :: delta_varint ( ) , P :: i32 ( "val" , vec ! [ 42 ] ) )
559+ . write ( w, "prop_i32_delta_np" ) ;
560+ p0 ( ) . add_prop ( E :: delta_varint ( ) , P :: opt_i32 ( "val" , vec ! [ Some ( 42 ) ] ) )
561+ . write ( w, "prop_i32_delta" ) ;
562+ p0 ( ) . add_prop ( E :: rle_varint ( ) , P :: i32 ( "val" , vec ! [ 42 ] ) )
563+ . write ( w, "prop_i32_rle_np" ) ;
564+ p0 ( ) . add_prop ( E :: rle_varint ( ) , P :: opt_i32 ( "val" , vec ! [ Some ( 42 ) ] ) )
565+ . write ( w, "prop_i32_rle-rust" ) ;
566+ p0 ( ) . add_prop ( E :: delta_rle_varint ( ) , P :: i32 ( "val" , vec ! [ 42 ] ) )
567+ . write ( w, "prop_i32_delta_rle_np" ) ;
568+ p0 ( ) . add_prop ( E :: delta_rle_varint ( ) , P :: opt_i32 ( "val" , vec ! [ Some ( 42 ) ] ) )
569+ . write ( w, "prop_i32_delta_rle-rust" ) ;
556570 p0 ( ) . add_prop ( e_int, P :: i32 ( "val" , vec ! [ -42 ] ) )
557571 . write ( w, "prop_i32_neg_np" ) ;
558572 p0 ( ) . add_prop ( e_int, P :: opt_i32 ( "val" , vec ! [ Some ( -42 ) ] ) )
@@ -579,6 +593,18 @@ fn generate_properties(w: &mut SynthWriter) {
579593 . write ( w, "prop_u32_np" ) ;
580594 p0 ( ) . add_prop ( e_int, P :: opt_u32 ( "val" , vec ! [ Some ( 42 ) ] ) )
581595 . write ( w, "prop_u32" ) ;
596+ p0 ( ) . add_prop ( E :: delta_varint ( ) , P :: u32 ( "val" , vec ! [ 42 ] ) )
597+ . write ( w, "prop_u32_delta_np" ) ;
598+ p0 ( ) . add_prop ( E :: delta_varint ( ) , P :: opt_u32 ( "val" , vec ! [ Some ( 42 ) ] ) )
599+ . write ( w, "prop_u32_delta" ) ;
600+ p0 ( ) . add_prop ( E :: rle_varint ( ) , P :: u32 ( "val" , vec ! [ 42 ] ) )
601+ . write ( w, "prop_u32_rle_np" ) ;
602+ p0 ( ) . add_prop ( E :: rle_varint ( ) , P :: opt_u32 ( "val" , vec ! [ Some ( 42 ) ] ) )
603+ . write ( w, "prop_u32_rle-rust" ) ;
604+ p0 ( ) . add_prop ( E :: delta_rle_varint ( ) , P :: u32 ( "val" , vec ! [ 42 ] ) )
605+ . write ( w, "prop_u32_delta_rle_np" ) ;
606+ p0 ( ) . add_prop ( E :: delta_rle_varint ( ) , P :: opt_u32 ( "val" , vec ! [ Some ( 42 ) ] ) )
607+ . write ( w, "prop_u32_delta_rle-rust" ) ;
582608 p0 ( ) . add_prop ( e_int, P :: u32 ( "val" , vec ! [ 0 ] ) )
583609 . write ( w, "prop_u32_min_np" ) ;
584610 p0 ( ) . add_prop ( e_int, P :: opt_u32 ( "val" , vec ! [ Some ( 0 ) ] ) )
@@ -601,6 +627,27 @@ fn generate_properties(w: &mut SynthWriter) {
601627 . write ( w, "prop_i64_np" ) ;
602628 p0 ( ) . add_prop ( e_int, P :: opt_i64 ( "val" , vec ! [ Some ( 9_876_543_210 ) ] ) )
603629 . write ( w, "prop_i64" ) ;
630+ p0 ( ) . add_prop ( E :: delta_varint ( ) , P :: i64 ( "val" , vec ! [ 9_876_543_210 ] ) )
631+ . write ( w, "prop_i64_delta_np" ) ;
632+ p0 ( ) . add_prop (
633+ E :: delta_varint ( ) ,
634+ P :: opt_i64 ( "val" , vec ! [ Some ( 9_876_543_210 ) ] ) ,
635+ )
636+ . write ( w, "prop_i64_delta" ) ;
637+ p0 ( ) . add_prop ( E :: rle_varint ( ) , P :: i64 ( "val" , vec ! [ 9_876_543_210 ] ) )
638+ . write ( w, "prop_i64_rle_np" ) ;
639+ p0 ( ) . add_prop (
640+ E :: rle_varint ( ) ,
641+ P :: opt_i64 ( "val" , vec ! [ Some ( 9_876_543_210 ) ] ) ,
642+ )
643+ . write ( w, "prop_i64_rle-rust" ) ;
644+ p0 ( ) . add_prop ( E :: delta_rle_varint ( ) , P :: i64 ( "val" , vec ! [ 9_876_543_210 ] ) )
645+ . write ( w, "prop_i64_delta_rle_np" ) ;
646+ p0 ( ) . add_prop (
647+ E :: delta_rle_varint ( ) ,
648+ P :: opt_i64 ( "val" , vec ! [ Some ( 9_876_543_210 ) ] ) ,
649+ )
650+ . write ( w, "prop_i64_delta_rle-rust" ) ;
604651 p0 ( ) . add_prop ( e_int, P :: i64 ( "val" , vec ! [ -9_876_543_210 ] ) )
605652 . write ( w, "prop_i64_neg_np" ) ;
606653 p0 ( ) . add_prop ( e_int, P :: opt_i64 ( "val" , vec ! [ Some ( -9_876_543_210 ) ] ) )
@@ -638,6 +685,38 @@ fn generate_properties(w: &mut SynthWriter) {
638685 . write ( w, "prop_u64_max_np" ) ;
639686 p0 ( ) . add_prop ( e_int, P :: opt_u64 ( "bignum" , vec ! [ Some ( u64 :: MAX ) ] ) )
640687 . write ( w, "prop_u64_max" ) ;
688+ // u64 single-value DELTA: the CONST+ZigZag shape that hid a TS decoder bug
689+ // (decodeUnsignedConstInt64Stream skipped the un-ZigZag, returning 2x). From real ev.mlt.
690+ p0 ( ) . add_prop (
691+ E :: delta_varint ( ) ,
692+ P :: u64 ( "bignum" , vec ! [ 1_234_567_890_123_456_789 ] ) ,
693+ )
694+ . write ( w, "prop_u64_delta_np" ) ;
695+ p0 ( ) . add_prop (
696+ E :: delta_varint ( ) ,
697+ P :: opt_u64 ( "bignum" , vec ! [ Some ( 1_234_567_890_123_456_789 ) ] ) ,
698+ )
699+ . write ( w, "prop_u64_delta" ) ;
700+ p0 ( ) . add_prop (
701+ E :: rle_varint ( ) ,
702+ P :: u64 ( "bignum" , vec ! [ 1_234_567_890_123_456_789 ] ) ,
703+ )
704+ . write ( w, "prop_u64_rle_np" ) ;
705+ p0 ( ) . add_prop (
706+ E :: rle_varint ( ) ,
707+ P :: opt_u64 ( "bignum" , vec ! [ Some ( 1_234_567_890_123_456_789 ) ] ) ,
708+ )
709+ . write ( w, "prop_u64_rle-rust" ) ;
710+ p0 ( ) . add_prop (
711+ E :: delta_rle_varint ( ) ,
712+ P :: u64 ( "bignum" , vec ! [ 1_234_567_890_123_456_789 ] ) ,
713+ )
714+ . write ( w, "prop_u64_delta_rle_np" ) ;
715+ p0 ( ) . add_prop (
716+ E :: delta_rle_varint ( ) ,
717+ P :: opt_u64 ( "bignum" , vec ! [ Some ( 1_234_567_890_123_456_789 ) ] ) ,
718+ )
719+ . write ( w, "prop_u64_delta_rle-rust" ) ;
641720 // Two-feature optional u64 variants (key is "val" to match Java)
642721 geo_varint_with_rle ( )
643722 . geos ( [ P0 , P0 ] )
0 commit comments