MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / TEST

Function TEST

source/MRTest/MRBitSetTests.cpp:7–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5{
6
7TEST(MRMesh, BitSet)
8{
9 BitSet bs0(4);
10 bs0.set(0);
11 bs0.set(2);
12
13 EXPECT_EQ( bs0.nthSetBit( 0 ), 0 );
14 EXPECT_EQ( bs0.nthSetBit( 1 ), 2 );
15 EXPECT_EQ( bs0.nthSetBit( 2 ), BitSet::npos );
16
17 BitSet bs1(3);
18 bs1.set(1);
19 bs1.set(2);
20
21 EXPECT_TRUE( end( bs1 ) == std::find_if( begin( bs1 ), end( bs1 ), []( size_t i ) { return i == 0; } ) );
22 EXPECT_FALSE( end( bs1 ) == std::find_if( begin( bs1 ), end( bs1 ), []( size_t i ) { return i == 1; } ) );
23
24 EXPECT_EQ( BitSet( bs0 & bs1 ).count(), 1 );
25 EXPECT_EQ( BitSet( bs0 | bs1 ).count(), 3 );
26 EXPECT_EQ( BitSet( bs0 - bs1 ).count(), 1 );
27 EXPECT_EQ( BitSet( bs1 - bs0 ).count(), 1 );
28 EXPECT_EQ( BitSet( bs0 ^ bs1 ).count(), 2 );
29
30 EXPECT_EQ( BitSet( BitSet( bs0 ) &= bs1 ).count(), 1 );
31 EXPECT_EQ( BitSet( BitSet( bs0 ) |= bs1 ).count(), 3 );
32 EXPECT_EQ( BitSet( BitSet( bs0 ) -= bs1 ).count(), 1 );
33 EXPECT_EQ( BitSet( BitSet( bs1 ) -= bs0 ).count(), 1 );
34 EXPECT_EQ( BitSet( BitSet( bs0 ) ^= bs1 ).count(), 2 );
35
36 EXPECT_EQ( bs0.find_last(), size_t( 2 ) );
37 BitSet bs2( 5 );
38 EXPECT_EQ( bs2.find_last(), size_t( -1 ) );
39
40 EXPECT_FALSE( bs1.is_subset_of( bs0 ) );
41 EXPECT_FALSE( bs0.is_subset_of( bs1 ) );
42 BitSet bs3 = bs0;
43 EXPECT_TRUE( bs3.is_subset_of( bs0 ) );
44 bs3.resize( 5 );
45 EXPECT_TRUE( bs3.is_subset_of( bs0 ) );
46 EXPECT_TRUE( bs0.is_subset_of( bs3 ) );
47 bs3.set( 4 );
48 EXPECT_FALSE( bs3.is_subset_of( bs0 ) );
49 EXPECT_TRUE( bs0.is_subset_of( bs3 ) );
50
51 BitSet bs4( 270 );
52 bs4.set( 160 );
53 bs4.set( 161 );
54 EXPECT_EQ( bs4.find_first(), 160 );
55 EXPECT_EQ( bs4.find_next( 160 ), 161 );
56 EXPECT_EQ( bs4.find_first_not_set(), 0 );
57 EXPECT_EQ( bs4.find_next_not_set( 0 ), 1 );
58 EXPECT_EQ( bs4.find_last(), 161 );
59 EXPECT_EQ( bs4.find_last_not_set(), 269 );
60 bs4.flip();
61 EXPECT_EQ( bs4.find_first(), 0 );
62 EXPECT_EQ( bs4.find_next( 0 ), 1 );
63 EXPECT_EQ( bs4.find_first_not_set(), 160 );
64 EXPECT_EQ( bs4.find_next_not_set( 160 ), 161 );

Callers

nothing calls this directly

Calls 15

BitSetClass · 0.85
countMethod · 0.80
endFunction · 0.50
beginFunction · 0.50
setMethod · 0.45
nthSetBitMethod · 0.45
find_lastMethod · 0.45
is_subset_ofMethod · 0.45
resizeMethod · 0.45
find_firstMethod · 0.45
find_nextMethod · 0.45
find_first_not_setMethod · 0.45

Tested by

no test coverage detected