@@ -49,33 +49,12 @@ void fill2(some_sharing_mapt &sm)
49
49
sm.insert (" n" , " 5" );
50
50
}
51
51
52
- // tests
53
-
54
- class some_keyt
55
- {
56
- public:
57
- some_keyt () : s(0 )
58
- {
59
- }
60
-
61
- explicit some_keyt (size_t s) : s(s)
62
- {
63
- }
64
-
65
- size_t s;
66
-
67
- bool operator ==(const some_keyt &other) const
68
- {
69
- return s == other.s ;
70
- }
71
- };
72
-
73
- class some_key_hasht
52
+ class key_hasht
74
53
{
75
54
public:
76
- size_t operator ()(const some_keyt &k) const
55
+ std:: size_t operator ()(const std:: size_t &k) const
77
56
{
78
- return k. s & 0x3 ;
57
+ return k & 0x3 ;
79
58
}
80
59
};
81
60
@@ -494,27 +473,48 @@ TEST_CASE("Sharing map copying", "[core][util]")
494
473
495
474
TEST_CASE (" Sharing map collisions" , " [core][util]" )
496
475
{
497
- typedef sharing_mapt<some_keyt , std::string, false , some_key_hasht >
476
+ typedef sharing_mapt<std:: size_t , std::string, false , key_hasht >
498
477
sharing_map_collisionst;
499
478
500
479
sharing_map_collisionst sm;
501
480
502
- sm.insert (some_keyt (0 ), " a" );
503
- sm.insert (some_keyt (8 ), " b" );
504
- sm.insert (some_keyt (16 ), " c" );
481
+ SECTION (" Basic" )
482
+ {
483
+ sm.insert (0 , " a" );
484
+ sm.insert (8 , " b" );
485
+ sm.insert (16 , " c" );
505
486
506
- sm.insert (some_keyt ( 1 ) , " d" );
507
- sm.insert (some_keyt ( 2 ) , " e" );
487
+ sm.insert (1 , " d" );
488
+ sm.insert (2 , " e" );
508
489
509
- sm.erase (some_keyt ( 8 ) );
490
+ sm.erase (8 );
510
491
511
- REQUIRE (sm.has_key (some_keyt ( 0 ) ));
512
- REQUIRE (sm.has_key (some_keyt ( 16 ) ));
492
+ REQUIRE (sm.has_key (0 ));
493
+ REQUIRE (sm.has_key (16 ));
513
494
514
- REQUIRE (sm.has_key (some_keyt (1 )));
515
- REQUIRE (sm.has_key (some_keyt (2 )));
495
+ REQUIRE (sm.has_key (1 ));
496
+ REQUIRE (sm.has_key (2 ));
497
+
498
+ REQUIRE (!sm.has_key (8 ));
499
+ }
500
+
501
+ SECTION (" Delta view" )
502
+ {
503
+ sm.insert (0 , " a" );
516
504
517
- REQUIRE (!sm.has_key (some_keyt (8 )));
505
+ sharing_map_collisionst sm2;
506
+
507
+ sm2.insert (8 , " b" );
508
+ sm2.insert (16 , " c" );
509
+
510
+ sharing_map_collisionst::delta_viewt delta_view;
511
+
512
+ sm.get_delta_view (sm2, delta_view, false );
513
+
514
+ REQUIRE (delta_view.size () == 1 );
515
+ REQUIRE (delta_view[0 ].k == 0 );
516
+ REQUIRE (!delta_view[0 ].is_in_both_maps ());
517
+ }
518
518
}
519
519
520
520
TEST_CASE (" Sharing map views and iteration" , " [core][util]" )
0 commit comments