private StencilSpeciesArr create(int[] cellsPerProcessor, int[] field, int w, int h)
        {
            StencilSpeciesArr result = new StencilSpeciesArr(random, new Arr <int>(field, w, h), cellsPerProcessor, new Mutator[] { new JumpToSameColorMutator() });

            Assert.IsTrue(result.IsValid);
            Assert.IsTrue(result.IsValid);
            return(result);
        }
        private StencilSpeciesArr create()
        {
            StencilSpeciesArr result = new StencilSpeciesArr(random, 10, 10, new int[] { 9, 16, 75 });

            Assert.IsTrue(result.IsValid);
            Assert.IsTrue(result.IsValid);
            return(result);
        }
        public IterativeSingleIndividualMutator(int w, int h, int processorCount)
        {
            this.targetW = w;
            this.targetH = h;

            int startW = Math.Min(w, processorCount);
            int startH = Math.Min(h, processorCount);

            Individual = (StencilSpeciesArr) new StencilSpeciesArrCreator(new Random(), startW, startH, processorCount).Create();
        }
        public void CrossoverFillWithEqualGenesTest()
        {
            Arr <int> field  = new Arr <int>(6);
            Arr <int> field1 = new Arr <int>(new int[] { 0, 0, 1, 2, 2, 2 });
            Arr <int> field2 = new Arr <int>(new int[] { 0, 2, 2, 1, 0, 2 });

            int[] cellsPerProcessor = new int[] { 2, 1, 3 };
            int   count             = StencilSpeciesArr.fillWithEqualGenesOrMinusOne(field, field1, field2, cellsPerProcessor);

            Assert.AreEqual(2, count);
            AssertEx.AreEqual(new int[] { 0, -1, -1, -1, -1, 2 }, field);
            AssertEx.AreEqual(new int[] { 1, 1, 2 }, cellsPerProcessor);
        }
Esempio n. 5
0
        public MainWindow()
        {
            InitializeComponent();

            int a = 50;
            StencilSpeciesArr it = new StencilSpeciesArr(new Random(), optimal4Processors(a), equalProcessors(4, a), new Mutator[] { new JumpToSameColorMutator() });

            this.Title   = "" + it.IsValid + " " + it.Fitness;
            this.Content = it.PresentableControl;

            mutator.Individual = it;
            this.Content       = mutator.Individual.PresentableControl;

            new Thread(new ThreadStart(work)).Start();
            DispatcherTimer timer = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, 3000), DispatcherPriority.Background, updateView, Dispatcher.CurrentDispatcher);
        }
 public void UniqueNeighborCountTest()
 {
     Assert.AreEqual(0, StencilSpeciesArr.UniqueNeighborCount(new Arr <int>(new int[] { 1, 2, 1, 2, 2, 2, 1, 2, 1 }, 3, 3), 1, 1, 4));
     Assert.AreEqual(1, StencilSpeciesArr.UniqueNeighborCount(new Arr <int>(new int[] { 1, 2, 1, 2, 1, 2, 1, 2, 1 }, 3, 3), 1, 1, 4));
 }