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;
}
Пример #2
0
TEST(ByteArrayTest, TestEqualNullEmpty) {
	mumble::ByteArray null1;
	mumble::ByteArray empty1(10);

	empty1.Truncate(0); // make empty

	EXPECT_NE(null1, empty1);
}
Пример #3
0
TEST(ByteArrayTest, TestEmptyEqual) {
	mumble::ByteArray empty1(1);
	mumble::ByteArray empty2(1);

	empty1.Truncate(0);
	empty2.Truncate(0);

	EXPECT_EQ(empty1, empty2);
}
Пример #4
0
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
}
Пример #5
0
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
}
Пример #6
0
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;
}