private static void PlayBatchNet(long[,,] times, int sizeIdx, int iteration, Make2Ant.Model2ModelMainRule startRule, Stopwatch watch, ref InputModelContainer inputModelContainer, ref OutputModelContainer outputModelContainer, List <MakeWorkloadAction> workload)
        {
            Make2Ant.InputModelContainer  = inputModelContainer;
            Make2Ant.OutputModelContainer = outputModelContainer;

            watch.Restart();
            foreach (var item in workload)
            {
                item.Perform(inputModelContainer.IN);
                RerunBatchSynchronization(startRule, ref inputModelContainer, ref outputModelContainer);
            }
            watch.Stop();

            times[sizeIdx, iteration, 2] = watch.Elapsed.Ticks * 100;
        }
 private static void RerunBatchSynchronization(Make2Ant.Model2ModelMainRule startRule, ref InputModelContainer inputModelContainer, ref OutputModelContainer outputModelContainer)
 {
     make2Ant.Synchronize(startRule, ref inputModelContainer, ref outputModelContainer, SynchronizationDirection.LeftToRight, ChangePropagationMode.None);
 }
        private static void PlayBatchNet(long[,,] times, int n, int sizeIdx, int iteration, Make2Ant.Model2ModelMainRule startRule, Stopwatch watch, ref InputModelContainer inputModelContainer, ref OutputModelContainer outputModelContainer, List <MakeWorkloadAction> workload)
        {
            var outputRepository = new ModelRepository();

            Directory.CreateDirectory("makeOutputModelsBatchSync");
            Directory.CreateDirectory("makeOutputModelsBatchSync\\" + n);
            Directory.CreateDirectory("makeOutputModelsBatchSync\\" + n + "\\" + iteration);

            Make2Ant.InputModelContainer  = inputModelContainer;
            Make2Ant.OutputModelContainer = outputModelContainer;

            watch.Restart();
            for (int index = 0; index < workload.Count; index++)
            {
                var item = workload[index];
                item.Perform(inputModelContainer.IN);

                outputModelContainer = new OutputModelContainer(new Model());
                RerunBatchSynchronization(startRule, ref inputModelContainer, ref outputModelContainer);
                var tempRepo = new ModelRepository();
                tempRepo.Resolve("makeInputModelsSync\\" + n + "\\" + iteration + "\\" + "outputModel" + index + ".xmi");
                outputRepository.Save(outputModelContainer.OUT, "makeOutputModelsBatchSync\\" + n + "\\" + iteration + "\\" + "outputModel" + index + ".xmi");
            }
            watch.Stop();

            Directory.Delete("makeOutputModelsBatchSync", true);

            times[sizeIdx, iteration, 2] = watch.Elapsed.Ticks * 100;
        }
        private static void CreateModelsForAtlTransformation(int n, int iteration, List <MakeWorkloadAction> workload, Make2Ant.Model2ModelMainRule startRule, InputModelContainer inputModelContainer, OutputModelContainer outputModelContainer)
        {
            var outputRepository = new ModelRepository();

            Directory.CreateDirectory("makeInputModels");
            Directory.CreateDirectory("makeInputModels\\" + n);
            Directory.CreateDirectory("makeInputModels\\" + n + "\\" + iteration);

            make2Ant.Synchronize(startRule, ref inputModelContainer, ref outputModelContainer, SynchronizationDirection.LeftToRight, ChangePropagationMode.OneWay);

            for (int index = 0; index < workload.Count; index++)
            {
                var item = workload[index];
                item.Perform(inputModelContainer.IN);
                outputRepository.Save(inputModelContainer.IN, "makeInputModels\\" + n + "\\" + iteration + "\\" + "inputModel" + index + ".xmi");
            }
        }