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 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 }