//===========================================================================//
// File:	testall.cc                                                          //
// Contents: Program to test all the classes                                 //
//---------------------------------------------------------------------------//
//   Date    Who  Modification                                               //
// --------  ---  ---------------------------------------------------------- //
// 10/20/94  ECH  Initial coding.                                            //
// 11/01/94  JMA  Made compatible with SGI CC                                //
// 11/03/94  ECH  Made compatible with BC4.0                                 //
//---------------------------------------------------------------------------//
// Copyright (C) 1994, Virtual World Entertainment, Inc. All Rights reserved //
//                      PROPRIETARY AND CONFIDENTIAL                         //
//===========================================================================//

//
//-------------------------------------------------
// Utilities
//-------------------------------------------------
//
#include <munga.hpp>
#pragma hdrstop

#if !defined(NAMELIST_HPP)
#	include <namelist.hpp>
#endif

#if !defined(NOTATION_HPP)
#	include <notation.hpp>
#endif

//
//-------------------------------------------------
// Math
//-------------------------------------------------
//
#if !defined(RECT2D_HPP)
#	include <rect2d.hpp>
#endif

#if !defined(ANGLE_HPP)
#	include <angle.hpp>
#endif 

#if !defined(RANDOM_HPP)
#	include <random.hpp>
#endif

#if !defined(VECTOR4D_HPP)
#	include <vector4d.hpp>
#endif

#if !defined(ROTATION_HPP)
#	include <rotation.hpp>
#endif

#if !defined(ORIGIN_HPP)
#	include <origin.hpp>
#endif

#if !defined(LINMTRX_HPP)
#	include <linmtrx.hpp>
#endif

#if !defined(MATRIX_HPP)
#	include <matrix.hpp>
#endif

#if !defined(UNITVEC_HPP)
#	include <unitvec.hpp>
#endif

#if !defined(RAY_HPP)
#	include <ray.hpp>
#endif

#if !defined(NORMAL_HPP)
#	include <normal.hpp>
#endif

//
//----------------
// Spatial library
//----------------
//
#if !defined(BOXSOLID_HPP)
#	include <boxsolid.hpp>
#endif

//
//------------------
// Connection Engine
//------------------
//
#if !defined(VCHAIN_HPP)
#	include <vchain.hpp>
#endif

#if !defined(TREE_HPP)
#	include <tree.hpp>
#endif

#if !defined(TABLE_HPP)
#	include <table.hpp>
#endif

#if !defined(HASH_HPP)
#	include <hash.hpp>
#endif

#if !defined(TIME_HPP)
#	include <time.hpp>
#endif

#if !defined(RECEIVER_HPP)
#	include <receiver.hpp>
#endif

// #define RUN_APPLICATION

char GlobalEggFileName[80];

int main()
{
	#if defined(TEST_CLASS)
	//
	//-----------------------
	// Test NameList classes
	//-----------------------
	//
	#if 1
		#if 1
			ObjectNameList::TestClass();
			NameList::TestClass();
			AlphaNameList::TestClass();
			NotationFile::TestClass();
		#endif

		#if 1
			ResourceFile::TestClass();
			StreamableResourceFile::TestClass();
		#endif

		//
		//------------------
		// Test string class
		//------------------
		//
		#if 1
			CString::TestClass();
		#endif

		//
		//----------------
		// Test Math brick
		//----------------
		//
		#if 1
			RandomGenerator::TestClass();
			Radian::TestClass();
			Degree::TestClass();
			SinCosPair::TestClass();
			Vector3D::TestClass();
			LBE3Vector3D::TestClass();
			TIVector3D::TestClass();
			Vector4D::TestClass();
			Point3D::TestClass();
			UnitVector::TestClass();
			Ray::TestClass();
			EulerAngles::TestClass();
			Quaternion::TestClass();
			Origin::TestClass();
			AffineMatrix::TestClass();
			LinearMatrix::TestClass();
			Matrix4x4::TestClass();
			Normal::TestClass();
			Rectangle2D::TestClass();
		#endif

		//
		//-----------------
		// Test spatializer
		//-----------------
		//
		#if 1
			BoundingBox::TestClass();
			BoxedSolid::TestClass();
		#endif

		//
		//------------------
		// Test time manager
		//------------------
		//
		#if 1
			Time::TestClass();
		#endif

		//
		//------------------------
		// Test connection library
		//------------------------
		//
		#if 1
			Chain::TestClass();
			SChain::TestClass();
			VChain::TestClass();
			Tree::TestClass();
			Table::TestClass();
			Hash::TestClass();
		#endif

		//
		//------------------
		// Test Memory brick
		//------------------
		//
		#if 1
			MemoryBlock::TestClass();
			MemoryStack::TestClass();
		#endif

		//
		//----------------------------
		// Test dynamic dispatch brick
		//----------------------------
		//
		#if 1
			MessageTap::TestClass();
			Receiver::MessageHandlerSet::TestClass();
			Derivation::TestClass();
			Receiver::TestClass();
		#endif
	#endif

	//
	//--------------------------------------------
	// Stop registering, and tell us about its use
	//--------------------------------------------
	//
	Tell("Exiting\n");
	#endif

	return 0;
}
