@@ -431,233 +431,3 @@ impl<T: AttributeBind + AttributeUpdate + Clone> AttrCompactVec<T> {
431
431
+ self . data . len ( ) * std:: mem:: size_of :: < T > ( )
432
432
}
433
433
}
434
-
435
- // ------ TESTS
436
-
437
- #[ cfg( test) ]
438
- mod tests {
439
- use super :: super :: Temperature ;
440
- use super :: * ;
441
-
442
- macro_rules! generate_sparse {
443
- ( $name: ident) => {
444
- let mut $name = AttrSparseVec :: <Temperature >:: new( 10 ) ;
445
- $name. insert( & 0 , Temperature :: from( 273.0 ) ) ;
446
- $name. insert( & 1 , Temperature :: from( 275.0 ) ) ;
447
- $name. insert( & 2 , Temperature :: from( 277.0 ) ) ;
448
- $name. insert( & 3 , Temperature :: from( 279.0 ) ) ;
449
- $name. insert( & 4 , Temperature :: from( 281.0 ) ) ;
450
- $name. insert( & 5 , Temperature :: from( 283.0 ) ) ;
451
- $name. insert( & 6 , Temperature :: from( 285.0 ) ) ;
452
- $name. insert( & 7 , Temperature :: from( 287.0 ) ) ;
453
- $name. insert( & 8 , Temperature :: from( 289.0 ) ) ;
454
- $name. insert( & 9 , Temperature :: from( 291.0 ) ) ;
455
- } ;
456
- }
457
-
458
- #[ test]
459
- fn sparse_vec_n_attributes ( ) {
460
- generate_sparse ! ( storage) ;
461
- assert_eq ! ( storage. n_attributes( ) , 10 ) ;
462
- let _ = storage. remove ( & 3 ) ;
463
- assert_eq ! ( storage. n_attributes( ) , 9 ) ;
464
- // extend does not affect the number of attributes
465
- storage. extend ( 10 ) ;
466
- assert ! ( storage. get( & 15 ) . is_none( ) ) ;
467
- assert_eq ! ( storage. n_attributes( ) , 9 ) ;
468
- }
469
-
470
- #[ test]
471
- fn sparse_vec_get_set_get ( ) {
472
- generate_sparse ! ( storage) ;
473
- assert_eq ! ( storage. get( & 3 ) , & Some ( Temperature :: from( 279.0 ) ) ) ;
474
- storage. set ( & 3 , Temperature :: from ( 280.0 ) ) ;
475
- assert_eq ! ( storage. get( & 3 ) , & Some ( Temperature :: from( 280.0 ) ) ) ;
476
- }
477
-
478
- #[ test]
479
- fn sparse_vec_get_replace_get ( ) {
480
- generate_sparse ! ( storage) ;
481
- assert_eq ! ( storage. get( & 3 ) , & Some ( Temperature :: from( 279.0 ) ) ) ;
482
- storage. replace ( & 3 , Temperature :: from ( 280.0 ) ) ;
483
- assert_eq ! ( storage. get( & 3 ) , & Some ( Temperature :: from( 280.0 ) ) ) ;
484
- }
485
-
486
- #[ test]
487
- #[ should_panic( expected = "assertion failed: tmp.is_none()" ) ]
488
- fn sparse_vec_insert_already_existing ( ) {
489
- generate_sparse ! ( storage) ;
490
- assert_eq ! ( storage. get( & 3 ) , & Some ( Temperature :: from( 279.0 ) ) ) ;
491
- storage. insert ( & 3 , Temperature :: from ( 280.0 ) ) ; // panic
492
- }
493
-
494
- #[ test]
495
- fn sparse_vec_remove ( ) {
496
- generate_sparse ! ( storage) ;
497
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
498
- }
499
-
500
- #[ test]
501
- fn sparse_vec_remove_remove ( ) {
502
- generate_sparse ! ( storage) ;
503
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
504
- assert ! ( storage. remove( & 3 ) . is_none( ) ) ;
505
- }
506
-
507
- #[ test]
508
- fn sparse_vec_remove_get ( ) {
509
- generate_sparse ! ( storage) ;
510
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
511
- assert ! ( storage. get( & 3 ) . is_none( ) ) ;
512
- }
513
-
514
- #[ test]
515
- fn sparse_vec_remove_set ( ) {
516
- generate_sparse ! ( storage) ;
517
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
518
- storage. set ( & 3 , Temperature :: from ( 280.0 ) ) ;
519
- assert ! ( storage. get( & 3 ) . is_some( ) ) ;
520
- }
521
-
522
- #[ test]
523
- fn sparse_vec_remove_insert ( ) {
524
- generate_sparse ! ( storage) ;
525
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
526
- storage. insert ( & 3 , Temperature :: from ( 280.0 ) ) ;
527
- assert ! ( storage. get( & 3 ) . is_some( ) ) ;
528
- }
529
-
530
- #[ test]
531
- #[ should_panic( expected = "called `Option::unwrap()` on a `None` value" ) ]
532
- fn sparse_vec_replace_already_removed ( ) {
533
- generate_sparse ! ( storage) ;
534
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
535
- storage. replace ( & 3 , Temperature :: from ( 280.0 ) ) . unwrap ( ) ; // panic
536
- }
537
-
538
- macro_rules! generate_compact {
539
- ( $name: ident) => {
540
- let mut $name = AttrCompactVec :: <Temperature >:: new( 10 ) ;
541
- $name. insert( & 0 , Temperature :: from( 273.0 ) ) ;
542
- $name. insert( & 1 , Temperature :: from( 275.0 ) ) ;
543
- $name. insert( & 2 , Temperature :: from( 277.0 ) ) ;
544
- $name. insert( & 3 , Temperature :: from( 279.0 ) ) ;
545
- $name. insert( & 4 , Temperature :: from( 281.0 ) ) ;
546
- $name. insert( & 5 , Temperature :: from( 283.0 ) ) ;
547
- $name. insert( & 6 , Temperature :: from( 285.0 ) ) ;
548
- $name. insert( & 7 , Temperature :: from( 287.0 ) ) ;
549
- $name. insert( & 8 , Temperature :: from( 289.0 ) ) ;
550
- $name. insert( & 9 , Temperature :: from( 291.0 ) ) ;
551
- } ;
552
- }
553
-
554
- #[ test]
555
- fn compact_vec_n_attributes ( ) {
556
- generate_compact ! ( storage) ;
557
- assert_eq ! ( storage. n_attributes( ) , 10 ) ;
558
- let _ = storage. remove ( & 3 ) ;
559
- assert_eq ! ( storage. n_attributes( ) , 10 ) ;
560
- // extend does not affect the number of attributes
561
- storage. extend ( 10 ) ;
562
- assert ! ( storage. get( & 15 ) . is_none( ) ) ;
563
- assert_eq ! ( storage. n_attributes( ) , 10 ) ;
564
- }
565
-
566
- #[ test]
567
- fn compact_vec_n_used_attributes ( ) {
568
- generate_compact ! ( storage) ;
569
- assert_eq ! ( storage. n_used_attributes( ) , 10 ) ;
570
- let _ = storage. remove ( & 3 ) ;
571
- assert_eq ! ( storage. n_used_attributes( ) , 9 ) ;
572
- // extend does not affect the number of attributes
573
- storage. extend ( 10 ) ;
574
- assert ! ( storage. get( & 15 ) . is_none( ) ) ;
575
- assert_eq ! ( storage. n_used_attributes( ) , 9 ) ;
576
- }
577
-
578
- #[ test]
579
- fn compact_vec_extend_through_set ( ) {
580
- generate_compact ! ( storage) ;
581
- assert_eq ! ( storage. n_attributes( ) , 10 ) ;
582
- // extend does not affect the number of attributes
583
- storage. extend ( 10 ) ;
584
- assert_eq ! ( storage. n_attributes( ) , 10 ) ;
585
- storage. set ( & 10 , Temperature :: from ( 293.0 ) ) ;
586
- assert_eq ! ( storage. n_attributes( ) , 11 ) ;
587
- storage. set ( & 11 , Temperature :: from ( 295.0 ) ) ;
588
- assert_eq ! ( storage. n_attributes( ) , 12 ) ;
589
- storage. set ( & 12 , Temperature :: from ( 297.0 ) ) ;
590
- assert_eq ! ( storage. n_attributes( ) , 13 ) ;
591
- let _ = storage. remove ( & 3 ) ;
592
- assert_eq ! ( storage. n_attributes( ) , 13 ) ;
593
- assert_eq ! ( storage. n_used_attributes( ) , 12 ) ;
594
- }
595
-
596
- #[ test]
597
- fn compact_vec_get_set_get ( ) {
598
- generate_compact ! ( storage) ;
599
- assert_eq ! ( storage. get( & 3 ) , Some ( & Temperature :: from( 279.0 ) ) ) ;
600
- storage. set ( & 3 , Temperature :: from ( 280.0 ) ) ;
601
- assert_eq ! ( storage. get( & 3 ) , Some ( & Temperature :: from( 280.0 ) ) ) ;
602
- }
603
-
604
- #[ test]
605
- fn compact_vec_get_replace_get ( ) {
606
- generate_compact ! ( storage) ;
607
- assert_eq ! ( storage. get( & 3 ) , Some ( & Temperature :: from( 279.0 ) ) ) ;
608
- storage. replace ( & 3 , Temperature :: from ( 280.0 ) ) ;
609
- assert_eq ! ( storage. get( & 3 ) , Some ( & Temperature :: from( 280.0 ) ) ) ;
610
- }
611
-
612
- #[ test]
613
- #[ should_panic( expected = "assertion failed: idx.is_none()" ) ]
614
- fn compact_vec_insert_already_existing ( ) {
615
- generate_compact ! ( storage) ;
616
- assert_eq ! ( storage. get( & 3 ) , Some ( & Temperature :: from( 279.0 ) ) ) ;
617
- storage. insert ( & 3 , Temperature :: from ( 280.0 ) ) ; // panic
618
- }
619
-
620
- #[ test]
621
- fn compact_vec_remove ( ) {
622
- generate_compact ! ( storage) ;
623
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
624
- }
625
-
626
- #[ test]
627
- fn compact_vec_remove_remove ( ) {
628
- generate_compact ! ( storage) ;
629
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
630
- assert ! ( storage. remove( & 3 ) . is_none( ) ) ;
631
- }
632
-
633
- #[ test]
634
- fn compact_vec_remove_get ( ) {
635
- generate_compact ! ( storage) ;
636
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
637
- assert ! ( storage. get( & 3 ) . is_none( ) ) ;
638
- }
639
-
640
- #[ test]
641
- fn compact_vec_remove_set ( ) {
642
- generate_compact ! ( storage) ;
643
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
644
- storage. set ( & 3 , Temperature :: from ( 280.0 ) ) ;
645
- assert ! ( storage. get( & 3 ) . is_some( ) ) ;
646
- }
647
-
648
- #[ test]
649
- fn compact_vec_remove_insert ( ) {
650
- generate_compact ! ( storage) ;
651
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
652
- storage. insert ( & 3 , Temperature :: from ( 280.0 ) ) ;
653
- assert ! ( storage. get( & 3 ) . is_some( ) ) ;
654
- }
655
-
656
- #[ test]
657
- #[ should_panic( expected = "assertion failed: idx.is_some()" ) ]
658
- fn compact_vec_replace_already_removed ( ) {
659
- generate_compact ! ( storage) ;
660
- assert_eq ! ( storage. remove( & 3 ) , Some ( Temperature :: from( 279.0 ) ) ) ;
661
- storage. replace ( & 3 , Temperature :: from ( 280.0 ) ) ; // panic
662
- }
663
- }
0 commit comments