int main() { // basic operation on a short vector FixedVector<int> v(8, 123); assert(8 == v.length()); assert(!v.is_empty()); assert(123 == v.get(0)); assert(123 == v.get(7)); v.set(5, 55); assert(55 == v.get(5)); // empty vectors work FixedVector<double> empty1(0, 0.0), empty2; assert(empty1.is_empty()); assert(empty2.is_empty()); assert(0 == empty1.length()); assert(0 == empty2.length()); // iterator bool iterated = false; int total = 0; for (FixedVectorIterator<int> i(&v); !i.past_end(); i.advance()) { iterated = true; total += i.get(); } assert(iterated); assert(total == (7*123 + 55)); iterated = false; for (FixedVectorIterator<double> i(&empty1); !i.past_end(); i.advance()) { iterated = true; } assert(!iterated); return 0; }
TEST(ByteArrayTest, TestEqualNullEmpty) { mumble::ByteArray null1; mumble::ByteArray empty1(10); empty1.Truncate(0); // make empty EXPECT_NE(null1, empty1); }
TEST(ByteArrayTest, TestEmptyEqual) { mumble::ByteArray empty1(1); mumble::ByteArray empty2(1); empty1.Truncate(0); empty2.Truncate(0); EXPECT_EQ(empty1, empty2); }
void TestTwine009Compare_ToCharStar() { BEGIN_TEST_METHOD( "TestTwine009Compare_ToCharStar" ) twine empty1; const char* empty2 = NULL; twine short1 = "Something Short"; const char* short2 = "Something Short"; twine long1 = "Something A Bit Longer that Will cause us to allocate memory"; const char* long2 = "Something A Bit Longer that Will cause us to allocate memory"; // Ensure that everything has different data pointers: ASSERT_NOTEQUALS( empty1(), empty2, "empty1 and empty2 point to the same memory"); ASSERT_NOTEQUALS( short1(), short2, "short1 and short2 point to the same memory"); ASSERT_NOTEQUALS( long1(), long2, "long1 and long2 point to the same memory"); ASSERT_EQUALS( 0, empty1.compare( empty2 ), "empty1.compare( empty2 ) != 0"); ASSERT_NOTEQUALS( 0, empty1.compare( short1 ), "empty1.compare( short1 ) == 0"); ASSERT_NOTEQUALS( 0, empty1.compare( short2 ), "empty1.compare( short2 ) == 0"); ASSERT_NOTEQUALS( 0, empty1.compare( long1 ), "empty1.compare( long1) == 0"); ASSERT_NOTEQUALS( 0, empty1.compare( long2 ), "empty1.compare( long2) == 0"); ASSERT_EQUALS( 0, short1.compare( short2 ), "short1.compare( short2 ) != 0"); ASSERT_NOTEQUALS( 0, short1.compare( empty1 ), "short1.compare( empty1 ) == 0"); ASSERT_NOTEQUALS( 0, short1.compare( empty2), "short1.compare( empty2) == 0"); ASSERT_NOTEQUALS( 0, short1.compare( long1 ), "short1.compare( long1) == 0"); ASSERT_NOTEQUALS( 0, short1.compare( long2 ), "short1.compare( long2) == 0"); ASSERT_EQUALS( 0, long1.compare( long2 ), "long1.compare( long2 ) != 0"); ASSERT_NOTEQUALS( 0, long1.compare( empty1 ), "long1.compare( empty1 ) == 0"); ASSERT_NOTEQUALS( 0, long1.compare( empty2), "long1.compare( empty2) == 0"); ASSERT_NOTEQUALS( 0, long1.compare( short1 ), "long1.compare( short1) == 0"); ASSERT_NOTEQUALS( 0, long1.compare( short2 ), "long1.compare( short2) == 0"); END_TEST_METHOD }
void TestTwine009Compare_ToTwineCount() { BEGIN_TEST_METHOD( "TestTwine009Compare_ToTwineCount" ) twine empty1; twine empty2; twine short1 = "Something Short"; twine short2 = "Something Short"; twine long1 = "Something A Bit Longer that Will cause us to allocate memory"; twine long2 = "Something A Bit Longer that Will cause us to allocate memory"; // Ensure that everything has different data pointers: ASSERT_NOTEQUALS( empty1(), empty2(), "empty1 and empty2 point to the same memory"); ASSERT_NOTEQUALS( short1(), short2(), "short1 and short2 point to the same memory"); ASSERT_NOTEQUALS( long1(), long2(), "long1 and long2 point to the same memory"); ASSERT_EQUALS( 0, empty1.compare( empty2, 10 ), "empty1.compare( empty2, 10 ) != 0"); ASSERT_NOTEQUALS( 0, empty1.compare( short1, 10 ), "empty1.compare( short1, 10 ) == 0"); ASSERT_NOTEQUALS( 0, empty1.compare( short2, 10 ), "empty1.compare( short2, 10 ) == 0"); ASSERT_NOTEQUALS( 0, empty1.compare( long1, 10 ), "empty1.compare( long1, 10) == 0"); ASSERT_NOTEQUALS( 0, empty1.compare( long2, 10 ), "empty1.compare( long2, 10) == 0"); ASSERT_EQUALS( 0, short1.compare( short2, 10 ), "short1.compare( short2, 10 ) != 0"); ASSERT_NOTEQUALS( 0, short1.compare( empty1, 10 ), "short1.compare( empty1, 10 ) == 0"); ASSERT_NOTEQUALS( 0, short1.compare( empty2, 10), "short1.compare( empty2, 10) == 0"); ASSERT_EQUALS( 0, short1.compare( long1, 10 ), "short1.compare( long1, 10) != 0"); ASSERT_EQUALS( 0, short1.compare( long2, 10 ), "short1.compare( long2, 10) != 0"); ASSERT_EQUALS( 0, long1.compare( long2, 10 ), "long1.compare( long2, 10 ) != 0"); ASSERT_NOTEQUALS( 0, long1.compare( empty1, 10 ), "long1.compare( empty1, 10 ) == 0"); ASSERT_NOTEQUALS( 0, long1.compare( empty2, 10), "long1.compare( empty2, 10) == 0"); ASSERT_EQUALS( 0, long1.compare( short1, 10 ), "long1.compare( short1, 10) != 0"); ASSERT_EQUALS( 0, long1.compare( short2, 10 ), "long1.compare( short2, 10) != 0"); END_TEST_METHOD }
int main(){ int m , n ; int v1 , v2; int i; int count = 0; int mark; node *p; scanf ("%d%d",&n,&m); for( i = 1; i <= m ; i ++) { scanf("%d%d",&v1,&v2); add(v1,v2); } for( i = 1; i<= n ; i ++) { if(root[i].in == 0) { push(i); root[i].in = -1; } } /* for( i = 1; i <= n ;i ++) { printf("\n%d",i); p = root[i].next; while(p) { printf("->%d",p->num); p = p->next; } }*/ while(!empty()) { count++; while(!empty()) { mark = pop(); if( root[mark].next) { p = root[mark].next; root[p->num].in--; if(root[p->num].in == 0) { push1(p->num); } p = p->next; } while(p) { root[p->num].in--; if(root[p->num].in == 0) push1(p->num); p = p->next; } } /*for(i = 1; i <= n ; i ++) { if(root[i].in == 0) { push(i); root[i].in = -1; } }*/ if(empty1()) break; while(!empty1()) { push(pop1()); } } printf("%d",count ); /* for( i = 1 ; i <= n ;i ++) { printf("%d %d %d\n",i,root[i].in,root[i].out); } */ return 0; }