static int Main(string[] args) { try { IntTest inttest = testint; int r = inttest(-1); if (r != -2) { Console.WriteLine("FAIL - int return value mismatch"); return(101); } } catch (Exception) { Console.WriteLine("FAIL - int argument value mismatch"); return(102); } try { FloatTest floattest = testfloat; float r = floattest(-1.1f); if (r != -2.2f) { Console.WriteLine("FAIL - float return value mismatch"); return(103); } } catch (Exception) { Console.WriteLine("FAIL - float argument value mismatch"); return(104); } return(100); }
// The program itself break the DRY principle(Do not repeat yourself). // There are available optimal options for generalization but making the test methods generic directly through interface sadly is not supported. // See also: http://stackoverflow.com/questions/32664/is-there-a-constraint-that-restricts-my-generic-method-to-numeric-types public static void Main() { // First block parameters const int PrimeOperationsNumber = 500; const int SecondaryOperationsNumber = 2; const int FirstCountOfRepeats = 100; const int SecondCountOfRepeats = 500; const int ThirdCountOfRepeats = 1000; using (StreamWriter streamWriter = new StreamWriter(@"Basic operations test information.txt", false)) { // n=100 streamWriter.Write( IntTest.PerformTests(FirstCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); streamWriter.Write( LongTest.PerformTests(FirstCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); streamWriter.Write( DoubleTest.PerformTests(FirstCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); streamWriter.Write( FloatTest.PerformTests(FirstCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); // n = 500 streamWriter.Write( IntTest.PerformTests(SecondCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); streamWriter.Write( LongTest.PerformTests(SecondCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); streamWriter.Write( DoubleTest.PerformTests(SecondCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); streamWriter.Write( FloatTest.PerformTests(SecondCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); // n = 1000 streamWriter.Write( IntTest.PerformTests(ThirdCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); streamWriter.Write( LongTest.PerformTests(ThirdCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); streamWriter.Write( DoubleTest.PerformTests(ThirdCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); streamWriter.Write( FloatTest.PerformTests(ThirdCountOfRepeats, PrimeOperationsNumber, SecondaryOperationsNumber)); } }
public static SavePlayerInfo ReadFrom(PrimitiveReader reader, int pCount) { SavePlayerInfo p = new SavePlayerInfo(); byte[] diplomacyFrom = reader.ReadBytes(pCount); uint[] diplomacyTo = reader.ReadUInt32Array(9); uint unknown1 = reader.ReadUInt32(); byte unknown2 = reader.ReadUInt8(); string name = Utils.ReadUInt16LengthPrefixedString(reader); byte unknown3 = reader.ReadUInt8(); int floatsCount = reader.ReadInt32(); byte unknown4 = reader.ReadUInt8(); float[] civHeader = reader.ReadFloat32Array(floatsCount); FloatTest t = new FloatTest(civHeader); byte unknown5 = reader.ReadUInt8(); float[] unknown6 = reader.ReadFloat32Array(2); byte[] unknown7 = reader.ReadBytes(9); byte civilization = reader.ReadUInt8(); byte[] unknown8 = reader.ReadBytes(3); byte colour = reader.ReadUInt8(); byte[] unknown9 = reader.ReadBytes(4183); float unknown10 = reader.ReadFloat32(); int researchCount = reader.ReadInt32(); ushort unknown11 = reader.ReadUInt16(); ResearchStat[] stats = new ResearchStat[researchCount]; for (int i = 0; i < stats.Length; i++) { stats[i] = ResearchStat.ReadFrom(reader); } Console.WriteLine("LAST KNOWN POS:" + reader.Position); reader.SeekAbsolute(128358); int masterObjectsCount = reader.ReadInt32(); bool[] objectExistsFlags = new bool[masterObjectsCount]; for (int i = 0; i < objectExistsFlags.Length; i++) { objectExistsFlags[i] = reader.ReadUInt32() != 0; } //System.Diagnostics.Debugger.Break(); ushort unknownObjects = reader.ReadUInt16(); Console.WriteLine("BEGIN READ OBJECTS.." + reader.Position); MasterObject[] masterObjects = new MasterObject[masterObjectsCount]; for (int i = 0; i < masterObjects.Length; i++) { if (objectExistsFlags[i]) { masterObjects[i] = MasterObject.ReadFrom(reader, i); } } System.Diagnostics.Debugger.Break(); return(p); }