Changeset 14905 for branches/PushGP/HeuristicLab.PushGP/FeatureTests
- Timestamp:
- 05/02/17 20:42:40 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PushGP/HeuristicLab.PushGP/FeatureTests/Program.cs
r14897 r14905 50 50 //FlagsTest(); 51 51 //TestExpressionDependencies(); 52 //TestSplitLogic(); 52 53 53 54 Console.WriteLine("\nPress any key to continue..."); 54 55 Console.ReadKey(false); 56 } 57 58 private static void TestSplitLogic() { 59 var sw = new Stopwatch(); 60 var iMax = 100000000u; 61 var repeats = 10; 62 var or = new BooleanOrExpression(); 63 var and = new BooleanAndExpression(); 64 var ors = new Expression[iMax]; 65 var ands = new Expression[iMax]; 66 var booleans = new bool[iMax]; 67 68 for (var i = 0u; i < iMax; i++) { 69 ors[i] = or; 70 ands[i] = and; 71 booleans[i] = i % 2 == 0; 72 } 73 74 var orsProgram = new PushProgram(ors); 75 var andsProgram = new PushProgram(ands); 76 77 using (var interpreter = new PushInterpreter()) { 78 for (var i = 0u; i < repeats; i++) { 79 interpreter.BooleanStack.Push(booleans); 80 81 sw.Start(); 82 interpreter.Run(orsProgram); 83 sw.Stop(); 84 interpreter.Reset(); 85 } 86 87 Console.WriteLine("ors:\t" + sw.ElapsedTicks / repeats + " - " + sw.ElapsedMilliseconds); 88 89 sw.Reset(); 90 interpreter.Reset(); 91 92 for (var i = 0u; i < repeats; i++) { 93 interpreter.BooleanStack.Push(booleans); 94 95 sw.Start(); 96 interpreter.Run(andsProgram); 97 sw.Stop(); 98 interpreter.Reset(); 99 } 100 101 Console.WriteLine("ands:\t" + sw.ElapsedTicks / repeats + " - " + sw.ElapsedMilliseconds); 102 103 sw.Reset(); 104 interpreter.Reset(); 105 106 for (var i = 0u; i < repeats; i++) { 107 interpreter.BooleanStack.Push(booleans); 108 109 sw.Start(); 110 interpreter.Run(orsProgram); 111 sw.Stop(); 112 interpreter.Reset(); 113 } 114 115 Console.WriteLine("ors:\t" + sw.ElapsedTicks / repeats + " - " + sw.ElapsedMilliseconds); 116 117 sw.Reset(); 118 interpreter.Reset(); 119 120 for (var i = 0u; i < repeats; i++) { 121 interpreter.BooleanStack.Push(booleans); 122 123 sw.Start(); 124 interpreter.Run(andsProgram); 125 sw.Stop(); 126 interpreter.Reset(); 127 } 128 129 Console.WriteLine("ands:\t" + sw.ElapsedTicks / repeats + " - " + sw.ElapsedMilliseconds); 130 } 55 131 } 56 132 … … 397 473 }; 398 474 399 config.DisableStack(StackTypes.Exec, true); 400 config.DisableStack(StackTypes.Code, true); 401 config.DisableStack(StackTypes.Float, true); 402 403 config.DisableExpression<ExecYExpression>(); 475 config.DisableStack(StackTypes.Exec); 476 config.DisableStack(StackTypes.Code); 477 config.DisableStack(StackTypes.Float); 478 479 var errors = config.EnabledExpressions.Where( 480 name => { 481 var type = ExpressionTable.NameToTypeTable[name]; 482 var attribute = ExpressionTable.TypeToAttributeTable[type]; 483 484 return attribute.StackType == StackTypes.Exec 485 || attribute.AdditionalStackDependencies.HasFlag(StackTypes.Exec) 486 || attribute.StackType == StackTypes.Code 487 || attribute.AdditionalStackDependencies.HasFlag(StackTypes.Code) 488 || attribute.StackType == StackTypes.Float 489 || attribute.AdditionalStackDependencies.HasFlag(StackTypes.Float); 490 }); 404 491 405 492 var pool = new PushInterpreterPool(config);
Note: See TracChangeset
for help on using the changeset viewer.