@@ -1168,33 +1168,48 @@ mod tests {
11681168 #[ test]
11691169 fn test_split_unaligned_start_6_to_22mb ( ) {
11701170 // 6MB..22MB, concurrency=4:
1171- // raw_size = max(4MB, 4MB+1) = 4MB+1
1172- // expected_size = ceil((4MB+1)/4MB)*4MB = 8MB
1173- // min_tail_size = 8MB
1174- // Head: 6..8MB. Loop: 8+8=16 ≤ 22 → 8..16; 16+8=24 > 22 → tail 16..22.
1175- // Result: [6..8, 8..16, 16..22]
1171+ // raw_size = max(4MB, ceil(16MB/4)) = 4MB
1172+ // expected_size = ceil(4MB/4MB)*4MB = 4MB
1173+ // min_tail_size = max(4MB, 8MB) = 8MB
1174+ // Head: 6..8MB (misalign=2MB).
1175+ // Loop: 22-8=14≥8 → 8..12; 22-12=10≥8 → 12..16; 22-16=6<8 → tail 16..22.
1176+ // Result: [6..8, 8..12, 12..16, 16..22]
11761177 let mb = 1024 * 1024u64 ;
11771178 #[ allow( clippy:: single_range_in_vec_init) ]
11781179 let merged = vec ! [ 6 * mb..22 * mb] ;
11791180 let result = super :: split_ranges_for_concurrency ( merged, 4 ) ;
11801181 assert_eq ! (
11811182 result,
1182- vec![ 6 * mb..8 * mb, 8 * mb..16 * mb, 16 * mb..22 * mb]
1183+ vec![
1184+ 6 * mb..8 * mb,
1185+ 8 * mb..12 * mb,
1186+ 12 * mb..16 * mb,
1187+ 16 * mb..22 * mb,
1188+ ]
11831189 ) ;
11841190 }
11851191
11861192 #[ test]
11871193 fn test_split_already_aligned_8_to_24mb ( ) {
11881194 // 8MB..24MB, concurrency=4:
1189- // raw_size = max(4MB, 4MB+1) = 4MB+1
1190- // expected_size = 8MB, min_tail_size = 8MB
1191- // No misalign. Loop: 8+8=16 ≤ 24 → 8..16; 16+8=24 ≤ 24 → 16..24; offset=24 >= end → break.
1192- // Result: [8..16, 16..24]
1195+ // raw_size = max(4MB, ceil(16MB/4)) = 4MB
1196+ // expected_size = 4MB, min_tail_size = 8MB
1197+ // No misalign.
1198+ // Loop: 24-8=16≥8 → 8..12; 24-12=12≥8 → 12..16; 24-16=8≥8 → 16..20; 24-20=4<8 → tail 20..24.
1199+ // Result: [8..12, 12..16, 16..20, 20..24]
11931200 let mb = 1024 * 1024u64 ;
11941201 #[ allow( clippy:: single_range_in_vec_init) ]
11951202 let merged = vec ! [ 8 * mb..24 * mb] ;
11961203 let result = super :: split_ranges_for_concurrency ( merged, 4 ) ;
1197- assert_eq ! ( result, vec![ 8 * mb..16 * mb, 16 * mb..24 * mb] ) ;
1204+ assert_eq ! (
1205+ result,
1206+ vec![
1207+ 8 * mb..12 * mb,
1208+ 12 * mb..16 * mb,
1209+ 16 * mb..20 * mb,
1210+ 20 * mb..24 * mb,
1211+ ]
1212+ ) ;
11981213 }
11991214
12001215 #[ test]
0 commit comments