public Struct8 Foo(ref float r, Valuesa v, ushort t, ref ushort tr) { Struct8 ret = new Struct8(); String values = v.ToString() + " " + r.ToString() + " " + t.ToString() + " " + tr.ToString() + " " + "."; if (values != "211 13120 -1219659045 754467178707868024 40" + "85042269830528355 -1490187216 -6293 104 -6.583926E+18 34594 34594 .") { Console.WriteLine("Struct8 Foo(...): unexpected values: " + values); Fail(16); } r += (float)Randomizer(); tr += (ushort)Randomizer(); ret.Randomize(); return(ret); }
public Struct8 Foo(ref float r, Valuesa v, ushort t, ref ushort tr) { Struct8 ret = new Struct8(); String values = v.ToString() + " " + r.ToString() + " " + t.ToString() + " " + tr.ToString() + " " + "."; if (values != "121 -16511 697284281 -978709601062956991 15" + "81927808989185017 -802663167 32057 193 -5.193024E+18 33392 33392 .") { Console.WriteLine("Struct8 Foo(...): unexpected values: " + values); Fail(16); } r += (float)Randomizer(); tr += (ushort)Randomizer(); ret.Randomize(); return(ret); }
public Struct4 Foo(ref Struct8 r, Struct5 v, long t, ref long tr) { Struct4 ret = new Struct4(); String values = v.ToString() + " " + r.ToString() + " " + t.ToString() + " " + tr.ToString() + " " + "."; if (values != "218 72 10 152 58 201 168 161 144 249 248" + " 209 224 3406623781630010640 3406623781630010640 .") { Console.WriteLine("Struct4 Foo(...): unexpected values: " + values); Fail(14); } r.Randomize(); tr += (long)Randomizer(); ret.Randomize(); return(ret); }
public Struct4 Foo(ref Struct8 r, Struct5 v, long t, ref long tr) { Struct4 ret = new Struct4(); String values = v.ToString() + " " + r.ToString() + " " + t.ToString() + " " + tr.ToString() + " " + "."; if (values != "146 80 66 32 242 64 201 168 161 144 249 248" + " 209 5410867595358339026 5410867595358339026 .") { Console.WriteLine("Struct4 Foo(...): unexpected values: " + values); Fail(14); } r.Randomize(); tr += (long)Randomizer(); ret.Randomize(); return(ret); }
public void RunTests() { String values; Struct1 s1 = new Struct1(); Struct2 s2 = new Struct2(); Struct3 s3 = new Struct3(); Struct4 s4 = new Struct4(); Struct5 s5 = new Struct5(); Struct8 s8 = new Struct8(); Valuesa v = new Valuesa(); float f; double d; Object o; String s; Enumacek e; s1.Randomize(); s2.Randomize(); s3.Randomize(); s4.Randomize(); s5.Randomize(); s8.Randomize(); v.Randomize(); f = (float)Randomizer(); d = (float)Randomizer(); o = this; s = Randomizer().ToString(); e = Enumacek.Hali; Object s1_ = (Object)s1; Object s2_ = (Object)s2; Object s3_ = (Object)s3; Object s4_ = (Object)s4; Object s5_ = (Object)s5; Object s8_ = (Object)s8; Object v_ = (Object)v; Object f_ = (Object)f; Object d_ = (Object)d; Object o_ = (Object)o; Object s_ = (Object)s; Object e_ = (Object)e; Object p1_ = (sbyte)Randomizer(); Object p2_ = (byte)Randomizer(); Object p3_ = (short)Randomizer(); Object p4_ = (ushort)Randomizer(); Object p5_ = (int)Randomizer(); Object p6_ = (uint)Randomizer(); Object p7_ = (long)Randomizer(); Object p8_ = (ulong)Randomizer(); // set all fields GetType().InvokeMember("_s1", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s1_ }, null, null, null); GetType().InvokeMember("_s2", BindingFlags.Static | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s2_ }, null, null, null); GetType().InvokeMember("_s3", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s3_ }, null, null, null); GetType().InvokeMember("_s4", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s4_ }, null, null, null); GetType().InvokeMember("_s5", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s5_ }, null, null, null); GetType().InvokeMember("_s8", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s8_ }, null, null, null); GetType().InvokeMember("_v", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { v_ }, null, null, null); GetType().InvokeMember("_f", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { f_ }, null, null, null); GetType().InvokeMember("_d", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { d_ }, null, null, null); GetType().InvokeMember("_o", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { o_ }, null, null, null); GetType().InvokeMember("_s", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s_ }, null, null, null); GetType().InvokeMember("_e", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { e_ }, null, null, null); GetType().InvokeMember("_p1", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p1_ }, null, null, null); GetType().InvokeMember("_p2", BindingFlags.Static | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p2_ }, null, null, null); GetType().InvokeMember("_p3", BindingFlags.Static | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p3_ }, null, null, null); GetType().InvokeMember("_p4", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p4_ }, null, null, null); GetType().InvokeMember("_p5", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p5_ }, null, null, null); GetType().InvokeMember("_p6", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p6_ }, null, null, null); GetType().InvokeMember("_p7", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p7_ }, null, null, null); GetType().InvokeMember("_p8", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p8_ }, null, null, null); // verify the values of all fields values = _s1.ToString() + " " + _s2.ToString() + " " + _s3.ToString() + " " + _s4.ToString() + " " + _s5.ToString() + " " + _s8.ToString() + " " + _v.ToString() + " " + _f.ToString() + " " + _d.ToString() + " " + _o.ToString() + " " + _s.ToString() + " " + _e.ToString() + " " + _p1.ToString() + " " + _p2.ToString() + " " + _p3.ToString() + " " + _p4.ToString() + " " + _p5.ToString() + " " + _p6.ToString() + " " + _p7.ToString() + " " + _p8.ToString() + " " + "."; if (values != "9 104 225 80 57 184 17 160 105 8 65 240 153 88 113 64" + " 201 168 161 144 249 248 209 224 -23767 606228808 2874968872843236865 -901615977" + "9942285264 360942425 4248 49 -5.193024E+18 -6.58392565490175E+18 MainApp 2212973" + "731230676456 Hali 97 208 -9799 49464 1739539345 3300757792 -6517938239175606295 " + "1703311890815005320 .") { Console.WriteLine("SetFields: unexpected values: " + values); Fail(101); } Console.WriteLine("Field setters succeeded"); // invoke the methods p1_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p1_ }, null, null, null); p2_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p2_ }, null, null, null); p3_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p3_ }, null, null, null); p4_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p4_ }, null, null, null); p5_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p5_ }, null, null, null); p6_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p6_ }, null, null, null); p7_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p7_ }, null, null, null); p8_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p8_ }, null, null, null); // verify the values of all fields values = p1_.ToString() + " " + p2_.ToString() + " " + p3_.ToString() + " " + p4_.ToString() + " " + p5_.ToString() + " " + p6_.ToString() + " " + p7_.ToString() + " " + p8_.ToString() + " " + "."; if (values != "-62 160 -19598 33392 -81588860" + "6 2306548288 5410867595358339026 3406623781630010640 .") { Console.WriteLine("Locals after primitive Invoke: unexpected values: " + values); Fail(102); } Object[] args; args = new Object[] { s2_, s3_, p1_, p1_ }; s1_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, args, null, null, null); s3_ = args[1]; p1_ = args[3]; args = new Object[] { s4_, s3_, p3_, p3_ }; s2_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, args, null, null, null); s4_ = args[0]; p3_ = args[3]; args = new Object[] { s4_, s5_, p5_, p5_ }; s3_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, args, null, null, null); s5_ = args[1]; p5_ = args[3]; args = new Object[] { s8_, s5_, p7_, p7_ }; s4_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, args, null, null, null); s8_ = args[0]; p7_ = args[3]; args = new Object[] { s8_, v_, p2_, p2_ }; s5_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, args, null, null, null); v_ = args[1]; p2_ = args[3]; args = new Object[] { f_, v_, p4_, p4_ }; s8_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, args, null, null, null); f_ = args[0]; p4_ = args[3]; args = new Object[] { f_, d_, p6_, p6_ }; v_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, args, null, null, null); d_ = args[1]; p6_ = args[3]; args = new Object[] { s1_, d_, p8_, p8_ }; f_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, args, null, null, null); s1_ = args[0]; p8_ = args[3]; args = new Object[] { s2_, s1_, s_, s_ }; d_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, args, null, null, null); s2_ = args[0]; // verify the values of all fields values = _s1.ToString() + " " + _s2.ToString() + " " + _s3.ToString() + " " + _s4.ToString() + " " + _s5.ToString() + " " + _s8.ToString() + " " + _v.ToString() + " " + _f.ToString() + " " + _d.ToString() + " " + _o.ToString() + " " + _s.ToString() + " " + _e.ToString() + " " + _p1.ToString() + " " + _p2.ToString() + " " + _p3.ToString() + " " + _p4.ToString() + " " + _p5.ToString() + " " + _p6.ToString() + " " + _p7.ToString() + " " + _p8.ToString() + " " + "."; if (values != "9 104 225 80 57 184 17 160 105 8 65 240 " + "153 88 113 64 201 168 161 144 249 248 209 224 -23767 606228808 28749688728432368" + "65 -9016159779942285264 360942425 4248 49 -5.193024E+18 -6.58392565490175E+18 Ma" + "inApp 2212973731230676456 Hali 97 208 -9799 49464 1739539345 3300757792 -6517938" + "239175606295 1703311890815005320 .") { Console.WriteLine("Fields after Invoke: unexpected values: " + values); Fail(103); } // verify the values of all locals values = s1_.ToString() + " " + s2_.ToString() + " " + s3_.ToString() + " " + s4_.ToString() + " " + s5_.ToString() + " " + s8_.ToString() + " " + v_.ToString() + " " + f_.ToString() + " " + d_.ToString() + " " + o_.ToString() + " " + s_.ToString() + " " + e_.ToString() + " " + p1_.ToString() + " " + p2_.ToString() + " " + p3_.ToString() + " " + p4_.ToString() + " " + p5_.ToString() + " " + p6_.ToString() + " " + p7_.ToString() + " " + p8_.ToString() + " " + "."; if (values != "226 161 153 217 24 177 105 8 65 240 248 " + "209 224 41 72 89 152 49 128 137 232 97 208 145 9760 68383465 -100628058569588952" + "8 -1283321389773510207 -27688336 8985 216 -7.769602E+18 -3.84749538525879E+18 Ma" + "inApp 2212973731230676456 Hali -102 153 -29822 14240 1493680594 2427897976 59408" + "3122152577906 15205575963204995536 .") { Console.WriteLine("Locals after Invoke: unexpected values: " + values); Fail(104); } Console.WriteLine("Method invokes succeeded"); // get all fields s1_ = GetType().InvokeMember("_s1", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s2_ = GetType().InvokeMember("_s2", BindingFlags.Static | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s3_ = GetType().InvokeMember("_s3", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s4_ = GetType().InvokeMember("_s4", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s5_ = GetType().InvokeMember("_s5", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s8_ = GetType().InvokeMember("_s8", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); v_ = GetType().InvokeMember("_v", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); f_ = GetType().InvokeMember("_f", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); d_ = GetType().InvokeMember("_d", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); o_ = GetType().InvokeMember("_o", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s_ = GetType().InvokeMember("_s", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); e_ = GetType().InvokeMember("_e", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p1_ = GetType().InvokeMember("_p1", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p2_ = GetType().InvokeMember("_p2", BindingFlags.Static | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p3_ = GetType().InvokeMember("_p3", BindingFlags.Static | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p4_ = GetType().InvokeMember("_p4", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p5_ = GetType().InvokeMember("_p5", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p6_ = GetType().InvokeMember("_p6", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p7_ = GetType().InvokeMember("_p7", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p8_ = GetType().InvokeMember("_p8", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); // verify the values of all locals values = s1_.ToString() + " " + s2_.ToString() + " " + s3_.ToString() + " " + s4_.ToString() + " " + s5_.ToString() + " " + s8_.ToString() + " " + v_.ToString() + " " + f_.ToString() + " " + d_.ToString() + " " + o_.ToString() + " " + s_.ToString() + " " + e_.ToString() + " " + p1_.ToString() + " " + p2_.ToString() + " " + p3_.ToString() + " " + p4_.ToString() + " " + p5_.ToString() + " " + p6_.ToString() + " " + p7_.ToString() + " " + p8_.ToString() + " " + "."; if (values != "9 104 225 80 57 184 17 160 105 8 65 240 153 88 113" + " 64 201 168 161 144 249 248 209 224 -23767 606228808 2874968872843236865 -901615" + "9779942285264 360942425 4248 49 -5.193024E+18 -6.58392565490175E+18 MainApp 2212" + "973731230676456 Hali 97 208 -9799 49464 1739539345 3300757792 -65179382391756062" + "95 1703311890815005320 .") { Console.WriteLine("GetFields: unexpected values: " + values); Fail(105); } Console.WriteLine("Field getters succeeded"); // invoke the method with complex signature GetType().InvokeMember("Foo", BindingFlags.Static | BindingFlags.Public | BindingFlags.InvokeMethod, null, null, new Object[] { this, "O", "S", (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (sbyte)Randomizer(), (byte)Randomizer(), (short)Randomizer(), (ushort)Randomizer(), (int)Randomizer(), (uint)Randomizer(), (long)Randomizer(), (ulong)Randomizer(), (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer() }, null, null, null); Console.WriteLine("Complex invoke succeeded"); // invoke the constructor with complex signature GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.CreateInstance, null, null, new Object[] { this, s1_, s2_, s3_, s4_, s5_, s8_, v_, f_, d_, o_, s_, e_, }, null, null, null); Console.WriteLine("Constructor invoke succeeded"); }
public Struct8 Foo(ref float r, Valuesa v, ushort t, ref ushort tr) { Struct8 ret = new Struct8(); String values = v.ToString() + " " + r.ToString() + " " + t.ToString() + " " + tr.ToString() + " " + "."; if (values != "121 -16511 697284281 -978709601062956991 15" + "81927808989185017 -802663167 32057 193 -5.193024E+18 33392 33392 .") { Console.WriteLine("Struct8 Foo(...): unexpected values: " + values); Fail(16); } r += (float)Randomizer(); tr += (ushort)Randomizer(); ret.Randomize(); return ret; }
public Struct4 Foo(ref Struct8 r, Struct5 v, long t, ref long tr) { Struct4 ret = new Struct4(); String values = v.ToString() + " " + r.ToString() + " " + t.ToString() + " " + tr.ToString() + " " + "."; if (values != "146 80 66 32 242 64 201 168 161 144 249 248" + " 209 5410867595358339026 5410867595358339026 .") { Console.WriteLine("Struct4 Foo(...): unexpected values: " + values); Fail(14); } r.Randomize(); tr += (long)Randomizer(); ret.Randomize(); return ret; }
static public void RunTests(MainApp This) { String values; Struct1 s1 = new Struct1(); Struct2 s2 = new Struct2(); Struct3 s3 = new Struct3(); Struct4 s4 = new Struct4(); Struct5 s5 = new Struct5(); Struct6 s6 = new Struct6(); Struct8 s8 = new Struct8(); Valuesa v = new Valuesa(); float f; double d; Object o; String s; Enumacek e; sbyte p1; byte p2; short p3; ushort p4; int p5; uint p6; long p7; ulong p8; s1.Randomize(); s2.Randomize(); s3.Randomize(); s4.Randomize(); s5.Randomize(); s6.Randomize(); s8.Randomize(); v.Randomize(); f = (float)Randomizer(); d = (float)Randomizer(); o = This; s = Randomizer().ToString(); e = Enumacek.Hali; p1 = (sbyte)Randomizer(); p2 = (byte)Randomizer(); p3 = (short)Randomizer(); p4 = (ushort)Randomizer(); p5 = (int)Randomizer(); p6 = (uint)Randomizer(); p7 = (long)Randomizer(); p8 = (ulong)Randomizer(); // set all fields This._s1 = s1; This._s2 = s2; This._s3 = s3; This._s4 = s4; This._s5 = s5; This._s6 = s6; This._s8 = s8; This._v = v; This._f = f; This._d = d; This._o = o; This._s = s; This._e = e; This._p1 = p1; This._p2 = p2; This._p3 = p3; This._p4 = p4; This._p5 = p5; This._p6 = p6; This._p7 = p7; This._p8 = p8; values = This.ToString(); if (values != "9 104 225 80 57 184 17 160 105 8 65 240 153 88 113 931407168" + " 201 168 161 144 249 248 209 224 41 20808 639653377 -9016159779942285264" + " -7525944817302140071 1480724632 6961 128 -6.583926E+18 2.21297372164627E+18" + " MainApp -5893266573950244255 Hali -48 185 -16072 17297 -994209504 2046869481" + " 1703311890815005320 1413371402307118785 .") { Console.WriteLine("SetFields: unexpected values: " + values); Fail(101); } Console.WriteLine("Field setters succeeded"); // invoke the methods p1 = This.Foo(p1); p2 = This.Foo(p2); p3 = This.Foo(p3); p4 = This.Foo(p4); p5 = This.Foo(p5); p6 = This.Foo(p6); p7 = This.Foo(p7); p8 = This.Foo(p8); // verify the values of all fields values = p1.ToString() + " " + p2.ToString() + " " + p3.ToString() + " " + p4.ToString() + " " + p5.ToString() + " " + p6.ToString() + " " + p7.ToString() + " " + p8.ToString() + " " + "."; if (values != "-96 114 -32144 34594 -19884190" + "08 4093738962 3406623781630010640 2826742804614237570 .") { Console.WriteLine("Locals after primitive Invoke: unexpected values: " + values); Fail(102); } s1 = This.Foo(s2, ref s3, p1, ref p1); s2 = This.Foo(ref s4, s3, p3, ref p3); s3 = This.Foo(s4, ref s5, p5, ref p5); s4 = This.Foo(ref s8, s5, p7, ref p7); s5 = This.Foo(s8, ref v, p2, ref p2); s6 = This.Foo(s5, ref v, p2, ref p2); s8 = This.Foo(ref f, v, p4, ref p4); v = This.Foo(f, ref d, p6, ref p6); f = This.Foo(ref s1, d, p8, ref p8); d = This.Foo(ref s2, s1, s, ref s); // verify the values of all fields values = This.ToString(); if (values != "9 104 225 80 57 184 17 160 105 8 65 240 " + "153 88 113 931407168 201 168 161 144 249 248 209 224 41 20808 639653377 -9016159" + "779942285264 -7525944817302140071 1480724632 6961 128 -6.583926E+18 2.2129737216" + "4627E+18 MainApp -5893266573950244255 Hali -48 185 -16072 17297 -994209504 20468" + "69481 1703311890815005320 1413371402307118785 .") { Console.WriteLine("Fields after Invoke: unexpected values: " + values); Fail(103); } // verify the values of all locals values = s1.ToString() + " " + s2.ToString() + " " + s3.ToString() + " " + s4.ToString() + " " + s5.ToString() + " " + s6.ToString() + " " + s8.ToString() + " " + v.ToString() + " " + f.ToString() + " " + d.ToString() + " " + o.GetType().ToString() + " " + s.ToString() + " " + e.ToString() + " " + p1.ToString() + " " + p2.ToString() + " " + p3.ToString() + " " + p4.ToString() + " " + p5.ToString() + " " + p6.ToString() + " " + p7.ToString() + " " + p8.ToString() + " " + "."; if (values != "170 233 145 161 144 249 49 128 137 232 1" + "12 25 216 241 192 263746504 217 24 177 0 9 104 225 80 17 7072 -1278944919 567925" + "9233286952200 964207834727950401 -272742416 14745 88 -7.848656E+18 3.16790391993" + "929E+18 MainApp -5893266573950244255 Hali -16 220 21112 49618 -153164056 1655108" + "490 -374121548284004952 17419808404417595330 .") { Console.WriteLine("Locals after Invoke: unexpected values: " + values); Fail(104); } Console.WriteLine("Method invokes succeeded"); // get all fields s1 = This._s1; s2 = This._s2; s3 = This._s3; s4 = This._s4; s5 = This._s5; s6 = This._s6; s8 = This._s8; v = This._v; f = This._f; d = This._d; o = This._o; s = This._s; e = This._e; p1 = This._p1; p2 = This._p2; p3 = This._p3; p4 = This._p4; p5 = This._p5; p6 = This._p6; p7 = This._p7; p8 = This._p8; // verify the values of all locals values = s1.ToString() + " " + s2.ToString() + " " + s3.ToString() + " " + s4.ToString() + " " + s5.ToString() + " " + s6.ToString() + " " + s8.ToString() + " " + v.ToString() + " " + f.ToString() + " " + d.ToString() + " " + o.GetType().ToString() + " " + s.ToString() + " " + e.ToString() + " " + p1.ToString() + " " + p2.ToString() + " " + p3.ToString() + " " + p4.ToString() + " " + p5.ToString() + " " + p6.ToString() + " " + p7.ToString() + " " + p8.ToString() + " " + "."; if (values != "9 104 225 80 57 184 17 160 105 8 65 240 153 88 113" + " 931407168 201 168 161 144 249 248 209 224 41 20808 639653377 -90161597799422852" + "64 -7525944817302140071 1480724632 6961 128 -6.583926E+18 2.21297372164627E+18 M" + "ainApp -5893266573950244255 Hali -48 185 -16072 17297 -994209504 2046869481 1703" + "311890815005320 1413371402307118785 .") { Console.WriteLine("GetFields: unexpected values: " + values); Fail(105); } Console.WriteLine("Field getters succeeded"); This.Foo(This, "O", "S", (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (sbyte)Randomizer(), (byte)Randomizer(), (short)Randomizer(), (ushort)Randomizer(), (int)Randomizer(), (uint)Randomizer(), (long)Randomizer(), (ulong)Randomizer(), (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer()); }
public void RunTests() { String values; Struct1 s1 = new Struct1(); Struct2 s2 = new Struct2(); Struct3 s3 = new Struct3(); Struct4 s4 = new Struct4(); Struct5 s5 = new Struct5(); Struct8 s8 = new Struct8(); Valuesa v = new Valuesa(); float f; double d; Object o; String s; Enumacek e; s1.Randomize(); s2.Randomize(); s3.Randomize(); s4.Randomize(); s5.Randomize(); s8.Randomize(); v.Randomize(); f = (float)Randomizer(); d = (float)Randomizer(); o = this; s = Randomizer().ToString(); e = Enumacek.Hali; Object s1_ = (Object)s1; Object s2_ = (Object)s2; Object s3_ = (Object)s3; Object s4_ = (Object)s4; Object s5_ = (Object)s5; Object s8_ = (Object)s8; Object v_ = (Object)v; Object f_ = (Object)f; Object d_ = (Object)d; Object o_ = (Object)o; Object s_ = (Object)s; Object e_ = (Object)e; Object p1_ = (sbyte)Randomizer(); Object p2_ = (byte)Randomizer(); Object p3_ = (short)Randomizer(); Object p4_ = (ushort)Randomizer(); Object p5_ = (int)Randomizer(); Object p6_ = (uint)Randomizer(); Object p7_ = (long)Randomizer(); Object p8_ = (ulong)Randomizer(); // set all fields GetType().InvokeMember("_s1", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s1_ }, null, null, null); GetType().InvokeMember("_s2", BindingFlags.Static | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s2_ }, null, null, null); GetType().InvokeMember("_s3", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s3_ }, null, null, null); GetType().InvokeMember("_s4", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s4_ }, null, null, null); GetType().InvokeMember("_s5", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s5_ }, null, null, null); GetType().InvokeMember("_s8", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s8_ }, null, null, null); GetType().InvokeMember("_v", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { v_ }, null, null, null); GetType().InvokeMember("_f", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { f_ }, null, null, null); GetType().InvokeMember("_d", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { d_ }, null, null, null); GetType().InvokeMember("_o", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { o_ }, null, null, null); GetType().InvokeMember("_s", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { s_ }, null, null, null); GetType().InvokeMember("_e", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { e_ }, null, null, null); GetType().InvokeMember("_p1", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p1_ }, null, null, null); GetType().InvokeMember("_p2", BindingFlags.Static | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p2_ }, null, null, null); GetType().InvokeMember("_p3", BindingFlags.Static | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p3_ }, null, null, null); GetType().InvokeMember("_p4", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p4_ }, null, null, null); GetType().InvokeMember("_p5", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p5_ }, null, null, null); GetType().InvokeMember("_p6", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p6_ }, null, null, null); GetType().InvokeMember("_p7", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p7_ }, null, null, null); GetType().InvokeMember("_p8", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetField, null, this, new Object[] { p8_ }, null, null, null); // verify the values of all fields values = _s1.ToString() + " " + _s2.ToString() + " " + _s3.ToString() + " " + _s4.ToString() + " " + _s5.ToString() + " " + _s8.ToString() + " " + _v.ToString() + " " + _f.ToString() + " " + _d.ToString() + " " + _o.ToString() + " " + _s.ToString() + " " + _e.ToString() + " " + _p1.ToString() + " " + _p2.ToString() + " " + _p3.ToString() + " " + _p4.ToString() + " " + _p5.ToString() + " " + _p6.ToString() + " " + _p7.ToString() + " " + _p8.ToString() + " " + "."; if (values != "9 104 225 80 57 184 17 160 105 8 65 240 153 88 113 64" + " 201 168 161 144 249 248 209 224 -23767 606228808 2874968872843236865 -901615977" + "9942285264 360942425 4248 49 -5.193024E+18 -6.58392565490175E+18 MainApp 2212973" + "731230676456 Hali 97 208 -9799 49464 1739539345 3300757792 -6517938239175606295 " + "1703311890815005320 .") { Console.WriteLine("SetFields: unexpected values: " + values); Fail(101); } Console.WriteLine("Field setters succeeded"); // invoke the methods p1_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p1_ }, null, null, null); p2_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p2_ }, null, null, null); p3_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p3_ }, null, null, null); p4_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p4_ }, null, null, null); p5_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p5_ }, null, null, null); p6_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p6_ }, null, null, null); p7_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p7_ }, null, null, null); p8_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { p8_ }, null, null, null); // verify the values of all fields values = p1_.ToString() + " " + p2_.ToString() + " " + p3_.ToString() + " " + p4_.ToString() + " " + p5_.ToString() + " " + p6_.ToString() + " " + p7_.ToString() + " " + p8_.ToString() + " " + "."; if (values != "-62 160 -19598 33392 -81588860" + "6 2306548288 5410867595358339026 3406623781630010640 .") { Console.WriteLine("Locals after primitive Invoke: unexpected values: " + values); Fail(102); } s1_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { s2_, s3_, p1_, p1_ }, null, null, null); s2_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { s4_, s3_, p3_, p3_ }, null, null, null); s3_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { s4_, s5_, p5_, p5_ }, null, null, null); s4_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { s8_, s5_, p7_, p7_ }, null, null, null); s5_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { s8_, v_, p2_, p2_ }, null, null, null); s8_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { f_, v_, p4_, p4_ }, null, null, null); v_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { f_, d_, p6_, p6_ }, null, null, null); f_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { s1_, d_, p8_, p8_ }, null, null, null); d_ = GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, new Object[] { s2_, s1_, s_, s_ }, null, null, null); // verify the values of all fields values = _s1.ToString() + " " + _s2.ToString() + " " + _s3.ToString() + " " + _s4.ToString() + " " + _s5.ToString() + " " + _s8.ToString() + " " + _v.ToString() + " " + _f.ToString() + " " + _d.ToString() + " " + _o.ToString() + " " + _s.ToString() + " " + _e.ToString() + " " + _p1.ToString() + " " + _p2.ToString() + " " + _p3.ToString() + " " + _p4.ToString() + " " + _p5.ToString() + " " + _p6.ToString() + " " + _p7.ToString() + " " + _p8.ToString() + " " + "."; if (values != "9 104 225 80 57 184 17 160 105 8 65 240 " + "153 88 113 64 201 168 161 144 249 248 209 224 -23767 606228808 28749688728432368" + "65 -9016159779942285264 360942425 4248 49 -5.193024E+18 -6.58392565490175E+18 Ma" + "inApp 2212973731230676456 Hali 97 208 -9799 49464 1739539345 3300757792 -6517938" + "239175606295 1703311890815005320 .") { Console.WriteLine("Fields after Invoke: unexpected values: " + values); Fail(103); } // verify the values of all locals values = s1_.ToString() + " " + s2_.ToString() + " " + s3_.ToString() + " " + s4_.ToString() + " " + s5_.ToString() + " " + s8_.ToString() + " " + v_.ToString() + " " + f_.ToString() + " " + d_.ToString() + " " + o_.ToString() + " " + s_.ToString() + " " + e_.ToString() + " " + p1_.ToString() + " " + p2_.ToString() + " " + p3_.ToString() + " " + p4_.ToString() + " " + p5_.ToString() + " " + p6_.ToString() + " " + p7_.ToString() + " " + p8_.ToString() + " " + "."; if (values != "226 161 153 217 24 177 105 8 65 240 248 " + "209 224 41 72 89 152 49 128 137 232 97 208 145 9760 68383465 -100628058569588952" + "8 -1283321389773510207 -27688336 8985 216 -7.769602E+18 -3.84749538525879E+18 Ma" + "inApp 2212973731230676456 Hali -102 153 -29822 14240 1493680594 2427897976 59408" + "3122152577906 15205575963204995536 .") { Console.WriteLine("Locals after Invoke: unexpected values: " + values); Fail(104); } Console.WriteLine("Method invokes succeeded"); // get all fields s1_ = GetType().InvokeMember("_s1", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s2_ = GetType().InvokeMember("_s2", BindingFlags.Static | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s3_ = GetType().InvokeMember("_s3", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s4_ = GetType().InvokeMember("_s4", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s5_ = GetType().InvokeMember("_s5", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s8_ = GetType().InvokeMember("_s8", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); v_ = GetType().InvokeMember("_v", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); f_ = GetType().InvokeMember("_f", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); d_ = GetType().InvokeMember("_d", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); o_ = GetType().InvokeMember("_o", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); s_ = GetType().InvokeMember("_s", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); e_ = GetType().InvokeMember("_e", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p1_ = GetType().InvokeMember("_p1", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p2_ = GetType().InvokeMember("_p2", BindingFlags.Static | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p3_ = GetType().InvokeMember("_p3", BindingFlags.Static | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p4_ = GetType().InvokeMember("_p4", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p5_ = GetType().InvokeMember("_p5", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p6_ = GetType().InvokeMember("_p6", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p7_ = GetType().InvokeMember("_p7", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); p8_ = GetType().InvokeMember("_p8", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField, null, this, null, null, null, null); // verify the values of all locals values = s1_.ToString() + " " + s2_.ToString() + " " + s3_.ToString() + " " + s4_.ToString() + " " + s5_.ToString() + " " + s8_.ToString() + " " + v_.ToString() + " " + f_.ToString() + " " + d_.ToString() + " " + o_.ToString() + " " + s_.ToString() + " " + e_.ToString() + " " + p1_.ToString() + " " + p2_.ToString() + " " + p3_.ToString() + " " + p4_.ToString() + " " + p5_.ToString() + " " + p6_.ToString() + " " + p7_.ToString() + " " + p8_.ToString() + " " + "."; if (values != "9 104 225 80 57 184 17 160 105 8 65 240 153 88 113" + " 64 201 168 161 144 249 248 209 224 -23767 606228808 2874968872843236865 -901615" + "9779942285264 360942425 4248 49 -5.193024E+18 -6.58392565490175E+18 MainApp 2212" + "973731230676456 Hali 97 208 -9799 49464 1739539345 3300757792 -65179382391756062" + "95 1703311890815005320 .") { Console.WriteLine("GetFields: unexpected values: " + values); Fail(105); } Console.WriteLine("Field getters succeeded"); // invoke the method with complex signature GetType().InvokeMember("Foo", BindingFlags.Static | BindingFlags.Public | BindingFlags.InvokeMethod, null, null, new Object[] { this, "O", "S", (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (long)Randomizer(), (sbyte)Randomizer(), (byte)Randomizer(), (short)Randomizer(), (ushort)Randomizer(), (int)Randomizer(), (uint)Randomizer(), (long)Randomizer(), (ulong)Randomizer(), (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer(), (float)Randomizer(), (double)Randomizer() }, null, null, null); Console.WriteLine("Complex invoke succeeded"); // invoke the constructor with complex signature GetType().InvokeMember("Foo", BindingFlags.Instance | BindingFlags.Public | BindingFlags.CreateInstance, null, null, new Object[] { this, s1_, s2_, s3_, s4_, s5_, s8_, v_, f_, d_, o_, s_, e_, }, null, null, null); Console.WriteLine("Constructor invoke succeeded"); }
public Struct8 Foo(ref float r, Valuesa v, ushort t, ref ushort tr) { Struct8 ret = new Struct8(); String values = v.ToString() + " " + r.ToString() + " " + t.ToString() + " " + tr.ToString() + " " + "."; if (values != "211 13120 -1219659045 754467178707868024 40" + "85042269830528355 -1490187216 -6293 104 -6.583926E+18 34594 34594 .") { Console.WriteLine("Struct8 Foo(...): unexpected values: " + values); Fail(16); } r += (float)Randomizer(); tr += (ushort)Randomizer(); ret.Randomize(); return ret; }
public Struct4 Foo(ref Struct8 r, Struct5 v, long t, ref long tr) { Struct4 ret = new Struct4(); String values = v.ToString() + " " + r.ToString() + " " + t.ToString() + " " + tr.ToString() + " " + "."; if (values != "218 72 10 152 58 201 168 161 144 249 248" + " 209 224 3406623781630010640 3406623781630010640 .") { Console.WriteLine("Struct4 Foo(...): unexpected values: " + values); Fail(14); } r.Randomize(); tr += (long)Randomizer(); ret.Randomize(); return ret; }