static void Main(string[] args) { MyConsole.WriteLine("Hello World"); const int threadCount = 4; const int width = 1000; const int height = 1000; const int moleculaCount = 10000; var time = TimeSpan.FromSeconds(0.01); var random = new Random(); var forceCalculatingService = new ForceCalculatingService(); var moleculasUpdatingService = new MoleculasUpdatingService(); var factory = new ForceStategyFactory(); var moleculasA = new Molecula[moleculaCount]; var moleculasB = new Molecula[moleculaCount]; for (int i = 0; i < moleculaCount; i++) { int x = random.Next(width); int y = random.Next(height); var moleculaA = new Molecula(null); var moleculaB = new Molecula(null); moleculaA.Position = new Vector2(x, y); moleculaB.Position = new Vector2(x, y); moleculasA[i] = moleculaA; moleculasB[i] = moleculaB; } var strategies = new BaseForceStrategy[] { factory.GetBasicForceStrategy(moleculasA, forceCalculatingService, moleculasUpdatingService), factory.GetParallelForceStratagy(moleculasB, forceCalculatingService, moleculasUpdatingService, threadCount) }; foreach (var strategy in strategies) { strategy.Time = time; strategy.Height = height; strategy.Width = width; } do { var benchmark = new Benchmark<object>(strategies); if (!benchmark.StartBenchmark().IsBechmarkSuccessful) { break; } MyConsole.WriteLine(); } while (true); MyConsole.WriteLine("Tests finished!! Press enter"); MyConsole.ReadLine(); }
private void UpdateStrategy() { if (StrategyType == StrategyType.Basic) { _forceStrategy = _forceStategyFactory.GetBasicForceStrategy(Moleculas.ToArray(), _forceCalculatingService, _moleculasUpdatingService); return; } if (StrategyType == StrategyType.Parallel) { _forceStrategy = _forceStategyFactory.GetParallelForceStratagy(Moleculas.ToArray(), _forceCalculatingService, _moleculasUpdatingService, 4); return; } Contract.Assert(false, String.Format("Can't handle _strategyType: {0}", _strategyType)); }