void CTestSuiteVariant::TestAssign()
{
	CVariant Result;
	CVariant Var;
	Result=Var;
	CPPUNIT_ASSERT_EQUAL( Result.GetType(),eVVT_Table );
	Var.SetMember("abc")->SetNumber<int8>(123);
	Var.SetMember("cde");
	Var.SetMember("f")->SetString("shit");
	Result=Var;
	CPPUNIT_ASSERT_EQUAL( Result.GetMember("abc")->GetNumber<int8>(),(int8)123 );
	CPPUNIT_ASSERT_EQUAL( Result.GetMember("cde")->GetType(),eVVT_Table );
	CPPUNIT_ASSERT_EQUAL( string(Result.GetMember("f")->GetString()),string("shit") );
}
void CTestSuiteVariant::TestTable()
{
	CVariant Table;
	CPPUNIT_ASSERT( !Table.GetMember("hello") );

	Table.SetMember( "hello" )->SetNumber( 1.0 );
	CPPUNIT_ASSERT_EQUAL( 1.0, Table.GetMember("hello")->GetNumber<double>() );
	CPPUNIT_ASSERT_EQUAL( 1.0, Table.GetMember("hello")->GetNumber<double>() );

	Table.SetMember( "hello1" )->SetString( "hello" );
	CPPUNIT_ASSERT_EQUAL( 0, strcmp("hello",Table.GetMember("hello1")->GetString()) );

	Table.SetMember( "hello" )->SetString( "hello" );
	CPPUNIT_ASSERT_EQUAL( 0, strcmp("hello",Table.GetMember("hello")->GetString()) );

	Table.SetMember( "hello" );
	Table.GetMember("hello")->SetMember("hello")->SetNumber(1.0);
	CPPUNIT_ASSERT_EQUAL( 1.0, Table.GetMember("hello")->GetMember("hello")->GetNumber<double>() );

	Table.DelMember("hello1");
	CPPUNIT_ASSERT( !Table.GetMember("hello1") );

	CPPUNIT_ASSERT_EQUAL( 1.0, Table.GetMember("hello")->GetMember("hello")->GetNumber<double>() );
}
void CTestSuiteVariant::TestStringException()
{
	CVariant String;
	String.SetString("hello");
	String.GetMember("hello");
}