@@ -305,6 +305,291 @@ fn eq_vec(v0: t, v1: [uint]) -> bool {
305
305
ret true;
306
306
}
307
307
308
+ #[ cfg( test) ]
309
+ mod tests {
310
+ #[ test]
311
+ fn test_0_elements ( ) {
312
+ let act;
313
+ let exp;
314
+ act = create ( 0 u, false ) ;
315
+ exp = vec:: init_elt :: < uint > ( 0 u, 0 u) ;
316
+ assert ( eq_vec ( act, exp) ) ;
317
+ }
318
+
319
+ #[ test]
320
+ fn test_1_element ( ) {
321
+ let act;
322
+ act = create ( 1 u, false ) ;
323
+ assert ( eq_vec ( act, [ 0 u] ) ) ;
324
+ act = create ( 1 u, true ) ;
325
+ assert ( eq_vec ( act, [ 1 u] ) ) ;
326
+ }
327
+
328
+ #[ test]
329
+ fn test_10_elements ( ) {
330
+ let act;
331
+ // all 0
332
+
333
+ act = create ( 10 u, false ) ;
334
+ assert ( eq_vec ( act, [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
335
+ // all 1
336
+
337
+ act = create ( 10 u, true ) ;
338
+ assert ( eq_vec ( act, [ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u] ) ) ;
339
+ // mixed
340
+
341
+ act = create ( 10 u, false ) ;
342
+ set ( act, 0 u, true ) ;
343
+ set ( act, 1 u, true ) ;
344
+ set ( act, 2 u, true ) ;
345
+ set ( act, 3 u, true ) ;
346
+ set ( act, 4 u, true ) ;
347
+ assert ( eq_vec ( act, [ 1 u, 1 u, 1 u, 1 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
348
+ // mixed
349
+
350
+ act = create ( 10 u, false ) ;
351
+ set ( act, 5 u, true ) ;
352
+ set ( act, 6 u, true ) ;
353
+ set ( act, 7 u, true ) ;
354
+ set ( act, 8 u, true ) ;
355
+ set ( act, 9 u, true ) ;
356
+ assert ( eq_vec ( act, [ 0 u, 0 u, 0 u, 0 u, 0 u, 1 u, 1 u, 1 u, 1 u, 1 u] ) ) ;
357
+ // mixed
358
+
359
+ act = create ( 10 u, false ) ;
360
+ set ( act, 0 u, true ) ;
361
+ set ( act, 3 u, true ) ;
362
+ set ( act, 6 u, true ) ;
363
+ set ( act, 9 u, true ) ;
364
+ assert ( eq_vec ( act, [ 1 u, 0 u, 0 u, 1 u, 0 u, 0 u, 1 u, 0 u, 0 u, 1 u] ) ) ;
365
+ }
366
+
367
+ #[ test]
368
+ fn test_31_elements ( ) {
369
+ let act;
370
+ // all 0
371
+
372
+ act = create ( 31 u, false ) ;
373
+ assert ( eq_vec ( act,
374
+ [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
375
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
376
+ 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
377
+ // all 1
378
+
379
+ act = create ( 31 u, true ) ;
380
+ assert ( eq_vec ( act,
381
+ [ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u,
382
+ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u,
383
+ 1 u, 1 u, 1 u, 1 u, 1 u] ) ) ;
384
+ // mixed
385
+
386
+ act = create ( 31 u, false ) ;
387
+ set ( act, 0 u, true ) ;
388
+ set ( act, 1 u, true ) ;
389
+ set ( act, 2 u, true ) ;
390
+ set ( act, 3 u, true ) ;
391
+ set ( act, 4 u, true ) ;
392
+ set ( act, 5 u, true ) ;
393
+ set ( act, 6 u, true ) ;
394
+ set ( act, 7 u, true ) ;
395
+ assert ( eq_vec ( act,
396
+ [ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u,
397
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
398
+ 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
399
+ // mixed
400
+
401
+ act = create ( 31 u, false ) ;
402
+ set ( act, 16 u, true ) ;
403
+ set ( act, 17 u, true ) ;
404
+ set ( act, 18 u, true ) ;
405
+ set ( act, 19 u, true ) ;
406
+ set ( act, 20 u, true ) ;
407
+ set ( act, 21 u, true ) ;
408
+ set ( act, 22 u, true ) ;
409
+ set ( act, 23 u, true ) ;
410
+ assert ( eq_vec ( act,
411
+ [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
412
+ 0 u, 0 u, 0 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 0 u, 0 u,
413
+ 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
414
+ // mixed
415
+
416
+ act = create ( 31 u, false ) ;
417
+ set ( act, 24 u, true ) ;
418
+ set ( act, 25 u, true ) ;
419
+ set ( act, 26 u, true ) ;
420
+ set ( act, 27 u, true ) ;
421
+ set ( act, 28 u, true ) ;
422
+ set ( act, 29 u, true ) ;
423
+ set ( act, 30 u, true ) ;
424
+ assert ( eq_vec ( act,
425
+ [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
426
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 1 u, 1 u,
427
+ 1 u, 1 u, 1 u, 1 u, 1 u] ) ) ;
428
+ // mixed
429
+
430
+ act = create ( 31 u, false ) ;
431
+ set ( act, 3 u, true ) ;
432
+ set ( act, 17 u, true ) ;
433
+ set ( act, 30 u, true ) ;
434
+ assert ( eq_vec ( act,
435
+ [ 0 u, 0 u, 0 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
436
+ 0 u, 0 u, 0 u, 0 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
437
+ 0 u, 0 u, 0 u, 0 u, 1 u] ) ) ;
438
+ }
439
+
440
+ #[ test]
441
+ fn test_32_elements ( ) {
442
+ let act;
443
+ // all 0
444
+
445
+ act = create ( 32 u, false ) ;
446
+ assert ( eq_vec ( act,
447
+ [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
448
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
449
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
450
+ // all 1
451
+
452
+ act = create ( 32 u, true ) ;
453
+ assert ( eq_vec ( act,
454
+ [ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u,
455
+ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u,
456
+ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u] ) ) ;
457
+ // mixed
458
+
459
+ act = create ( 32 u, false ) ;
460
+ set ( act, 0 u, true ) ;
461
+ set ( act, 1 u, true ) ;
462
+ set ( act, 2 u, true ) ;
463
+ set ( act, 3 u, true ) ;
464
+ set ( act, 4 u, true ) ;
465
+ set ( act, 5 u, true ) ;
466
+ set ( act, 6 u, true ) ;
467
+ set ( act, 7 u, true ) ;
468
+ assert ( eq_vec ( act,
469
+ [ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u,
470
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
471
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
472
+ // mixed
473
+
474
+ act = create ( 32 u, false ) ;
475
+ set ( act, 16 u, true ) ;
476
+ set ( act, 17 u, true ) ;
477
+ set ( act, 18 u, true ) ;
478
+ set ( act, 19 u, true ) ;
479
+ set ( act, 20 u, true ) ;
480
+ set ( act, 21 u, true ) ;
481
+ set ( act, 22 u, true ) ;
482
+ set ( act, 23 u, true ) ;
483
+ assert ( eq_vec ( act,
484
+ [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
485
+ 0 u, 0 u, 0 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 0 u, 0 u,
486
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
487
+ // mixed
488
+
489
+ act = create ( 32 u, false ) ;
490
+ set ( act, 24 u, true ) ;
491
+ set ( act, 25 u, true ) ;
492
+ set ( act, 26 u, true ) ;
493
+ set ( act, 27 u, true ) ;
494
+ set ( act, 28 u, true ) ;
495
+ set ( act, 29 u, true ) ;
496
+ set ( act, 30 u, true ) ;
497
+ set ( act, 31 u, true ) ;
498
+ assert ( eq_vec ( act,
499
+ [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
500
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 1 u, 1 u,
501
+ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u] ) ) ;
502
+ // mixed
503
+
504
+ act = create ( 32 u, false ) ;
505
+ set ( act, 3 u, true ) ;
506
+ set ( act, 17 u, true ) ;
507
+ set ( act, 30 u, true ) ;
508
+ set ( act, 31 u, true ) ;
509
+ assert ( eq_vec ( act,
510
+ [ 0 u, 0 u, 0 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
511
+ 0 u, 0 u, 0 u, 0 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
512
+ 0 u, 0 u, 0 u, 0 u, 1 u, 1 u] ) ) ;
513
+ }
514
+
515
+ #[ test]
516
+ fn test_33_elements ( ) {
517
+ let act;
518
+ // all 0
519
+
520
+ act = create ( 33 u, false ) ;
521
+ assert ( eq_vec ( act,
522
+ [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
523
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
524
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
525
+ // all 1
526
+
527
+ act = create ( 33 u, true ) ;
528
+ assert ( eq_vec ( act,
529
+ [ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u,
530
+ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u,
531
+ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u] ) ) ;
532
+ // mixed
533
+
534
+ act = create ( 33 u, false ) ;
535
+ set ( act, 0 u, true ) ;
536
+ set ( act, 1 u, true ) ;
537
+ set ( act, 2 u, true ) ;
538
+ set ( act, 3 u, true ) ;
539
+ set ( act, 4 u, true ) ;
540
+ set ( act, 5 u, true ) ;
541
+ set ( act, 6 u, true ) ;
542
+ set ( act, 7 u, true ) ;
543
+ assert ( eq_vec ( act,
544
+ [ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u,
545
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
546
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
547
+ // mixed
548
+
549
+ act = create ( 33 u, false ) ;
550
+ set ( act, 16 u, true ) ;
551
+ set ( act, 17 u, true ) ;
552
+ set ( act, 18 u, true ) ;
553
+ set ( act, 19 u, true ) ;
554
+ set ( act, 20 u, true ) ;
555
+ set ( act, 21 u, true ) ;
556
+ set ( act, 22 u, true ) ;
557
+ set ( act, 23 u, true ) ;
558
+ assert ( eq_vec ( act,
559
+ [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
560
+ 0 u, 0 u, 0 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 0 u, 0 u,
561
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u] ) ) ;
562
+ // mixed
563
+
564
+ act = create ( 33 u, false ) ;
565
+ set ( act, 24 u, true ) ;
566
+ set ( act, 25 u, true ) ;
567
+ set ( act, 26 u, true ) ;
568
+ set ( act, 27 u, true ) ;
569
+ set ( act, 28 u, true ) ;
570
+ set ( act, 29 u, true ) ;
571
+ set ( act, 30 u, true ) ;
572
+ set ( act, 31 u, true ) ;
573
+ assert ( eq_vec ( act,
574
+ [ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
575
+ 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 1 u, 1 u,
576
+ 1 u, 1 u, 1 u, 1 u, 1 u, 1 u, 0 u] ) ) ;
577
+ // mixed
578
+
579
+ act = create ( 33 u, false ) ;
580
+ set ( act, 3 u, true ) ;
581
+ set ( act, 17 u, true ) ;
582
+ set ( act, 30 u, true ) ;
583
+ set ( act, 31 u, true ) ;
584
+ set ( act, 32 u, true ) ;
585
+ assert ( eq_vec ( act,
586
+ [ 0 u, 0 u, 0 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
587
+ 0 u, 0 u, 0 u, 0 u, 1 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u,
588
+ 0 u, 0 u, 0 u, 0 u, 1 u, 1 u, 1 u] ) ) ;
589
+ }
590
+
591
+ }
592
+
308
593
//
309
594
// Local Variables:
310
595
// mode: rust
0 commit comments