Engine
Class TestInfo

source: e:\games\UnrealTournament\Engine\Classes\TestInfo.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Info
         |
         +--Engine.TestInfo
Direct Known Subclasses:UnrealTestInfo

class TestInfo
extends Engine.Info

//============================================================================= // For internal testing. //=============================================================================
Variables
 int MyArray[2]
 struct STest
 string TestRepStr
 bool bBool1
 bool bBool2
 bool bFalse1
 bool bFalse2
 bool bTrue1
 bool bTrue2
 float ppp
 string sxx
 vector v1,v2
 int xnum

States
EEDDAA, DDAA, CCAA, BB, AA

Function Summary
 void BeginPlay()
 int OtherStatic(int i)
 void PostBeginPlay()
 bool RecurseTest()
 void SubTestOptionalOut(optional out, optional out, optional out)
 void TestContinueDoUntil()
 void TestContinueFor()
 void TestContinueForEach()
 void TestContinueWhile()
 void TestLimitor(class c)
 void TestNullContext(Actor a)
 void TestOptionalOut()
 void TestQ()
 int TestStatic(int i)
 void TestStructBools()
 void TestSwitch()
 void TestX(bool bResource)
 void Tick(float DeltaTime)
 void f()
 void temp()
 void test()


State EEDDAA Function Summary
 void f()


State DDAA Function Summary
 void f()


State CCAA Function Summary
 void f()


State BB Function Summary
 void f()


State AA Function Summary
 void f()



Source Code


00001	//=============================================================================
00002	// For internal testing.
00003	//=============================================================================
00004	class TestInfo extends Info;
00005	
00006	var() bool bTrue1;
00007	var() bool bFalse1;
00008	var() bool bTrue2;
00009	var() bool bFalse2;
00010	var bool bBool1;
00011	var bool bBool2;
00012	var() int xnum;
00013	var float ppp;
00014	var string sxx;
00015	var int MyArray[2];
00016	var vector v1,v2;
00017	var string TestRepStr;
00018	//var string[32] teststring;
00019	
00020	const Pie=3.14;
00021	const Str="Tim";
00022	const Lotus=vect(1,2,3);
00023	
00024	var struct STest
00025	{
00026		var bool b1;
00027		var int i;
00028		var bool b2;
00029		var bool b3;
00030	} ST;
00031	
00032	function TestQ()
00033	{
00034		local vector v;
00035		v.x = 2;
00036		v.y = 3;
00037		v.z = 4;
00038		assert(v==vect(2,3,4));
00039		assert(v.z==4);
00040		assert(v.y==3);
00041		assert(v.x==2);
00042	}
00043	
00044	static function test()
00045	{
00046		class'testinfo'.default.v1 = vect(1,2,3);
00047	}
00048	
00049	function PostBeginPlay()
00050	{
00051		local object o;
00052		local actor TempActor;
00053		log("!!BEGIN");
00054	
00055		default.v1=vect(5,4,3);
00056		assert(default.v1==vect(5,4,3));
00057		test();
00058		assert(default.v1==vect(1,2,3));
00059	
00060		BroadcastMessage(Tag);
00061		BroadcastMessage(string(Tag));
00062		BroadcastMessage("test "$string(Tag));
00063		assert(IsA('Actor'));
00064		assert(IsA('TestInfo'));
00065		assert(IsA('Info'));
00066		assert(!IsA('LevelInfo'));
00067		assert(!IsA('Texture'));
00068		//o=dynamicloadobject( "UnrealShare.AutoMag.Reload", class'object' );
00069		//assert(o!=None);
00070		//assert(o==None);
00071		log("!!END");
00072	}
00073	
00074	function TestStructBools()
00075	{
00076		assert(ST.b1==false);
00077		assert(ST.b2==false);
00078		assert(ST.b3==false);
00079	
00080		ST.b1=true;
00081		assert(ST.b1==true);
00082		assert(ST.b2==false);
00083		assert(ST.b3==false);
00084	
00085		ST.b2=true;
00086		assert(ST.b1==true);
00087		assert(ST.b2==true);
00088		assert(ST.b3==false);
00089	
00090		ST.b3=true;
00091		assert(ST.b1==true);
00092		assert(ST.b2==true);
00093		assert(ST.b3==true);
00094	
00095		ST.b1=false;
00096		ST.b2=false;
00097		ST.b3=false;
00098	}
00099	
00100	function BeginPlay()
00101	{
00102		local testobj to;
00103		local object oo;
00104		to = new class'TestObj';
00105		to = new()class'TestObj';
00106		to = new(self)class'TestObj';
00107		to = new(self,'')class'TestObj';
00108		to = new(self,'',0)class'TestObj';
00109		to.Test();
00110		TestStructBools();
00111	}
00112	
00113	function TestX( bool bResource )
00114	{
00115		local int n;
00116		n = int(bResource);
00117		MyArray[ int(bResource) ] = 0;
00118		MyArray[ int(bResource) ]++;
00119	}
00120	
00121	function bool RecurseTest()
00122	{
00123		bBool1=true;
00124		return false;
00125	}
00126	
00127	function TestLimitor( class c )
00128	{
00129		local class<actor> NewClass;
00130		NewClass = class<actor>( c );
00131	}
00132	
00133	static function int OtherStatic( int i )
00134	{
00135		assert(i==246);
00136		assert(default.xnum==777);
00137		return 555;
00138	}
00139	
00140	static function int TestStatic( int i )
00141	{
00142		assert(i==123);
00143		assert(default.xnum==777);
00144		assert(OtherStatic(i*2)==555);
00145	}
00146	
00147	function TestContinueFor()
00148	{
00149		local int i;
00150		log("TestContinue");
00151		for( i=0; i<20; i++ )
00152		{
00153			log("iteration "$i);
00154			if(i==7||i==9||i==19)
00155				continue;
00156			log("...");
00157		}
00158		log("DoneContinue");
00159	}
00160	
00161	function TestContinueWhile()
00162	{
00163		local int i;
00164		log("TestContinue");
00165		while( ++i <= 20 )
00166		{
00167			log("iteration "$i);
00168			if(i==7||i==9)
00169				continue;
00170			log("...");
00171		}
00172		log("DoneContinue");
00173	}
00174	
00175	function TestContinueDoUntil()
00176	{
00177		local int i;
00178		log("TestContinue");
00179		do
00180		{
00181			i++;
00182			log("iteration "$i);
00183			if(i==7||i==9||i>18)
00184				continue;
00185			log("...");
00186		} until( i>20 );
00187		log("DoneContinue");
00188	}
00189	
00190	function TestContinueForEach()
00191	{
00192		local actor a;
00193		log("TestContinue");
00194		foreach AllActors( class'Actor', a )
00195		{
00196			log("actor "$a);
00197			if(light(a)==none)
00198				continue;
00199			log("...");
00200		}
00201		log("DoneContinue");
00202	}
00203	
00204	
00205	function SubTestOptionalOut( optional out int a, optional out int b, optional out int c )
00206	{
00207		a *= 2;
00208		b = b*2;
00209		c += c;
00210	}
00211	function TestOptionalOut()
00212	{
00213		local int a,b,c;
00214		a=1; b=2; c=3;
00215	
00216		SubTestOptionalOut(a,b,c);
00217		assert(a==2); assert(b==4); assert(c==6);
00218	
00219		SubTestOptionalOut(a,b);
00220		assert(a==4); assert(b==8); assert(c==6);
00221	
00222		SubTestOptionalOut(,b,c);
00223		assert(a==4); assert(b==16); assert(c==12);
00224	
00225		SubTestOptionalOut();
00226		assert(a==4); assert(b==16); assert(c==12);
00227	
00228		SubTestOptionalOut(a,b,c);
00229		assert(a==8); assert(b==32); assert(c==24);
00230	
00231		log("TestOptionalOut ok!");
00232	}
00233	
00234	function TestNullContext( actor a )
00235	{
00236		bHidden = a.bHidden;
00237		a.bHidden = bHidden;
00238	}
00239	
00240	function TestSwitch()
00241	{
00242		local string s;
00243		local int i;
00244		local bool b;
00245		s="Tim";
00246		i=2;
00247		switch( i )
00248		{
00249			case 0:
00250				assert(false);
00251				break;
00252			case 2:
00253				b=true;
00254				break;
00255			default:
00256				assert(false);
00257				break;
00258		}
00259		assert(b);
00260		switch( s )
00261		{
00262			case "":
00263				assert(false);
00264				break;
00265			case "xyzzy":
00266				assert(false);
00267				break;
00268			default:
00269				b=false;
00270				break;
00271		}
00272		assert(!b);
00273		log("testswitch succeeded");
00274	}
00275	
00276	function Tick( float DeltaTime )
00277	{
00278		local class C;
00279		local class<testinfo> TC;
00280		local actor a;
00281	
00282		log("time="$Level.TimeSeconds);
00283	
00284		TestOptionalOut();
00285		TestNullContext( self );
00286		TestNullContext( None );
00287		TestSwitch();
00288	
00289		v1=vect(1,2,3);
00290		v2=vect(2,4,6);
00291		assert(v1!=v2);
00292		assert(!(v1==v2));
00293		assert(v1==vect(1,2,3));
00294		assert(v2==vect(2,4,6));
00295		assert(vect(1,2,5)!=v1);
00296		assert(v1*2==v2);
00297		assert(v1==v2/2);
00298	
00299		assert(Pie==3.14);
00300		assert(Pie!=2);
00301		assert(Str=="Tim");
00302		assert(Str!="Bob");
00303		assert(Lotus==vect(1,2,3));
00304	
00305		assert(GetPropertyText("sxx")=="Tim");
00306		assert(GetPropertyText("ppp")!="123");
00307		assert(GetPropertyText("bogus")=="");
00308		xnum=345;
00309		assert(GetPropertyText("xnum")=="345");
00310		SetPropertyText("xnum","999");
00311		assert(xnum==999);
00312		assert(xnum!=666);
00313	
00314		assert(bTrue1==true);
00315		assert(bFalse1==false);
00316		assert(bTrue2==true);
00317		assert(bFalse2==false);
00318	
00319		assert(default.bTrue1==true);
00320		assert(default.bFalse1==false);
00321		assert(default.bTrue2==true);
00322		assert(default.bFalse2==false);
00323	
00324		assert(class'TestInfo'.default.bTrue1==true);
00325		assert(class'TestInfo'.default.bFalse1==false);
00326		assert(class'TestInfo'.default.bTrue2==true);
00327		assert(class'TestInfo'.default.bFalse2==false);
00328	
00329		TC=Class;
00330		assert(TC.default.bTrue1==true);
00331		assert(TC.default.bFalse1==false);
00332		assert(TC.default.bTrue2==true);
00333		assert(TC.default.bFalse2==false);
00334	
00335		C=Class;
00336		assert(class<testinfo>(C).default.bTrue1==true);
00337		assert(class<testinfo>(C).default.bFalse1==false);
00338		assert(class<testinfo>(C).default.bTrue2==true);
00339		assert(class<testinfo>(C).default.bFalse2==false);
00340	
00341		assert(default.xnum==777);
00342		TestStatic(123);
00343		TC.static.TestStatic(123);
00344		class<testinfo>(C).static.TestStatic(123);
00345	
00346		bBool2=RecurseTest();
00347		assert(bBool2==false);
00348	
00349		TestStructBools();
00350		TestQ();
00351	
00352		log( "All tests passed" );
00353	}
00354	
00355	function f();
00356	
00357	function temp()
00358	{
00359		local int i;
00360		local playerpawn PlayerOwner;
00361		local name LeftList[20];
00362		for( i=0; i<20; i++ )
00363			PlayerOwner.WeaponPriority[i] = LeftList[i+1];
00364		temp();
00365	}
00366	
00367	state AA
00368	{
00369		function f();
00370	}
00371	state BB
00372	{
00373		function f();
00374	}
00375	state CCAA extends AA
00376	{
00377		function f();
00378	}
00379	state DDAA extends AA
00380	{
00381		function f();
00382	}
00383	state EEDDAA extends DDAA
00384	{
00385		function f();
00386	}
00387	
00388	defaultproperties
00389	{
00390	     bTrue1=True
00391	     bTrue2=True
00392	     xnum=777
00393	     ppp=3.140000
00394	     sxx="Tim"
00395	     bHidden=False
00396	     bAlwaysRelevant=True
00397	     RemoteRole=ROLE_SimulatedProxy
00398	}

End Source Code