@@ -222,6 +222,7 @@ mod test {
222222 use super :: * ;
223223 use crate :: decode:: rangecoder:: { LenDecoder , RangeDecoder } ;
224224 use crate :: { decode, encode} ;
225+ use seq_macro:: seq;
225226 use std:: io:: BufReader ;
226227
227228 fn encode_decode ( prob_init : u16 , bits : & [ bool ] ) {
@@ -253,19 +254,19 @@ mod test {
253254 encode_decode ( 0x400 , & [ true ; 10000 ] ) ;
254255 }
255256
256- fn encode_decode_bittree ( num_bits : usize , values : & [ u32 ] ) {
257+ fn encode_decode_bittree < const NUM_BITS : usize , const PROBS_LEN : usize > ( values : & [ u32 ] ) {
257258 let mut buf: Vec < u8 > = Vec :: new ( ) ;
258259
259260 let mut encoder = RangeEncoder :: new ( & mut buf) ;
260- let mut tree = encode:: rangecoder:: BitTree :: new ( num_bits ) ;
261+ let mut tree = encode:: rangecoder:: BitTree :: new ( NUM_BITS ) ;
261262 for & v in values {
262263 tree. encode ( & mut encoder, v) . unwrap ( ) ;
263264 }
264265 encoder. finish ( ) . unwrap ( ) ;
265266
266267 let mut bufread = BufReader :: new ( buf. as_slice ( ) ) ;
267268 let mut decoder = RangeDecoder :: new ( & mut bufread) . unwrap ( ) ;
268- let mut tree = decode:: rangecoder:: BitTree :: new ( num_bits ) ;
269+ let mut tree = decode:: rangecoder:: BitTree :: < NUM_BITS , PROBS_LEN > :: new ( ) ;
269270 for & v in values {
270271 assert_eq ! ( tree. parse( & mut decoder, true ) . unwrap( ) , v) ;
271272 }
@@ -274,40 +275,45 @@ mod test {
274275
275276 #[ test]
276277 fn test_encode_decode_bittree_zeros ( ) {
277- for num_bits in 0 ..16 {
278- encode_decode_bittree ( num_bits, & [ 0 ; 10000 ] ) ;
279- }
278+ seq ! ( NUM_BITS in 0 ..16 {
279+ encode_decode_bittree:: <NUM_BITS , { decode:: rangecoder:: bittree_probs_len:: <NUM_BITS >( ) } >
280+ ( & [ 0 ; 10000 ] ) ;
281+ } ) ;
280282 }
281283
282284 #[ test]
283285 fn test_encode_decode_bittree_ones ( ) {
284- for num_bits in 0 ..16 {
285- encode_decode_bittree ( num_bits, & [ ( 1 << num_bits) - 1 ; 10000 ] ) ;
286- }
286+ seq ! ( NUM_BITS in 0 ..16 {
287+ encode_decode_bittree:: <NUM_BITS , { decode:: rangecoder:: bittree_probs_len:: <NUM_BITS >( ) } >
288+ ( & [ ( 1 << NUM_BITS ) - 1 ; 10000 ] ) ;
289+ } ) ;
287290 }
288291
289292 #[ test]
290293 fn test_encode_decode_bittree_all ( ) {
291- for num_bits in 0 ..16 {
292- let max = 1 << num_bits ;
294+ seq ! ( NUM_BITS in 0 ..16 {
295+ let max = 1 << NUM_BITS ;
293296 let values: Vec <u32 > = ( 0 ..max) . collect( ) ;
294- encode_decode_bittree ( num_bits, & values) ;
295- }
297+ encode_decode_bittree:: <NUM_BITS , { decode:: rangecoder:: bittree_probs_len:: <NUM_BITS >( ) } >
298+ ( & values) ;
299+ } ) ;
296300 }
297301
298- fn encode_decode_reverse_bittree ( num_bits : usize , values : & [ u32 ] ) {
302+ fn encode_decode_reverse_bittree < const NUM_BITS : usize , const PROBS_LEN : usize > (
303+ values : & [ u32 ] ,
304+ ) {
299305 let mut buf: Vec < u8 > = Vec :: new ( ) ;
300306
301307 let mut encoder = RangeEncoder :: new ( & mut buf) ;
302- let mut tree = encode:: rangecoder:: BitTree :: new ( num_bits ) ;
308+ let mut tree = encode:: rangecoder:: BitTree :: new ( NUM_BITS ) ;
303309 for & v in values {
304310 tree. encode_reverse ( & mut encoder, v) . unwrap ( ) ;
305311 }
306312 encoder. finish ( ) . unwrap ( ) ;
307313
308314 let mut bufread = BufReader :: new ( buf. as_slice ( ) ) ;
309315 let mut decoder = RangeDecoder :: new ( & mut bufread) . unwrap ( ) ;
310- let mut tree = decode:: rangecoder:: BitTree :: new ( num_bits ) ;
316+ let mut tree = decode:: rangecoder:: BitTree :: < NUM_BITS , PROBS_LEN > :: new ( ) ;
311317 for & v in values {
312318 assert_eq ! ( tree. parse_reverse( & mut decoder, true ) . unwrap( ) , v) ;
313319 }
@@ -316,25 +322,28 @@ mod test {
316322
317323 #[ test]
318324 fn test_encode_decode_reverse_bittree_zeros ( ) {
319- for num_bits in 0 ..16 {
320- encode_decode_reverse_bittree ( num_bits, & [ 0 ; 10000 ] ) ;
321- }
325+ seq ! ( NUM_BITS in 0 ..16 {
326+ encode_decode_reverse_bittree:: <NUM_BITS , { decode:: rangecoder:: bittree_probs_len:: <NUM_BITS >( ) } >
327+ ( & [ 0 ; 10000 ] ) ;
328+ } ) ;
322329 }
323330
324331 #[ test]
325332 fn test_encode_decode_reverse_bittree_ones ( ) {
326- for num_bits in 0 ..16 {
327- encode_decode_reverse_bittree ( num_bits, & [ ( 1 << num_bits) - 1 ; 10000 ] ) ;
328- }
333+ seq ! ( NUM_BITS in 0 ..16 {
334+ encode_decode_reverse_bittree:: <NUM_BITS , { decode:: rangecoder:: bittree_probs_len:: <NUM_BITS >( ) } >
335+ ( & [ ( 1 << NUM_BITS ) - 1 ; 10000 ] ) ;
336+ } ) ;
329337 }
330338
331339 #[ test]
332340 fn test_encode_decode_reverse_bittree_all ( ) {
333- for num_bits in 0 ..16 {
334- let max = 1 << num_bits ;
341+ seq ! ( NUM_BITS in 0 ..16 {
342+ let max = 1 << NUM_BITS ;
335343 let values: Vec <u32 > = ( 0 ..max) . collect( ) ;
336- encode_decode_reverse_bittree ( num_bits, & values) ;
337- }
344+ encode_decode_reverse_bittree:: <NUM_BITS , { decode:: rangecoder:: bittree_probs_len:: <NUM_BITS >( ) } >
345+ ( & values) ;
346+ } ) ;
338347 }
339348
340349 fn encode_decode_length ( pos_state : usize , values : & [ u32 ] ) {
0 commit comments