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