示例#1
0
 public void TestAlgorithmIncrementWaterDistance3()
 {
     var algorithmInitial = new AlgorithmInitialBool();
     var algorithmZoom2DIteration1 = new AlgorithmZoom2D();
     var algorithmZoom2DIteration2 = new AlgorithmZoom2D();
     var algorithmZoom2DIteration3 = new AlgorithmZoom2D();
     var algorithmIncrementWaterDistance1 = new AlgorithmIncrementWaterDistance
     {
         Initial = true
     };
     var algorithmIncrementWaterDistance2 = new AlgorithmIncrementWaterDistance();
     var algorithmIncrementWaterDistance3 = new AlgorithmIncrementWaterDistance();
     var runtimeInitial = this.CreateRuntimeLayer(algorithmInitial);
     var runtimeZoom2DIteration1 = this.CreateRuntimeLayer(algorithmZoom2DIteration1);
     var runtimeZoom2DIteration2 = this.CreateRuntimeLayer(algorithmZoom2DIteration2);
     var runtimeZoom2DIteration3 = this.CreateRuntimeLayer(algorithmZoom2DIteration3);
     var runtimeIncrementWaterDistance1 = this.CreateRuntimeLayer(algorithmIncrementWaterDistance1);
     var runtimeIncrementWaterDistance2 = this.CreateRuntimeLayer(algorithmIncrementWaterDistance2);
     var runtimeIncrementWaterDistance3 = this.CreateRuntimeLayer(algorithmIncrementWaterDistance3);
     runtimeZoom2DIteration1.SetInput(0, runtimeInitial);
     runtimeIncrementWaterDistance1.SetInput(0, runtimeZoom2DIteration1);
     runtimeZoom2DIteration2.SetInput(0, runtimeIncrementWaterDistance1);
     runtimeIncrementWaterDistance2.SetInput(0, runtimeZoom2DIteration2);
     runtimeZoom2DIteration3.SetInput(0, runtimeIncrementWaterDistance2);
     runtimeIncrementWaterDistance3.SetInput(0, runtimeZoom2DIteration3);
     PerformSampling("AlgorithmIncrementWaterDistance (4 iterations)", runtimeIncrementWaterDistance3);
 }
        public void TestPositiveDoubling()
        {
            var inputA = new AlgorithmDebuggingInitialValueDelegate
            {
                GetValueForPosition = (x, y, z, i, j, k) => { return 1; },
                ShowAs2D = true
            };

            int computations;
            var increment = new AlgorithmIncrementWaterDistance();

            var runtimeInput = this.CreateRuntimeLayer(inputA);
            var runtimeTest = this.CreateRuntimeLayer(increment);
            runtimeTest.SetInput(0, runtimeInput);

            var result = runtimeTest.GenerateData(0, 0, 0, 16, 16, 16, out computations);

            for (var i = 0; i < 16; i++)
                for (var j = 0; j < 16; j++)
                    for (var k = 0; k < 16; k++)
                    {
                        Assert.True(
                            result[i + j*16 + k*16*16] == 2);
                    }
        }
        public void TestPositiveDoubling()
        {
            var inputA = new AlgorithmDebuggingInitialValueDelegate
            {
                GetValueForPosition = (x, y, z, i, j, k) =>
                {
                    return((int)(1));
                }
            };

            int computations;
            var increment = new AlgorithmIncrementWaterDistance();

            var runtimeInput = new RuntimeLayer(inputA);
            var runtimeTest  = new RuntimeLayer(increment);

            runtimeTest.SetInput(0, runtimeInput);

            var result = runtimeTest.GenerateData(0, 0, 0, 16, 16, 16, out computations);


            for (var i = 0; i < 16; i++)
            {
                for (var j = 0; j < 16; j++)
                {
                    for (var k = 0; k < 16; k++)
                    {
                        Assert.True(
                            result[i + j * 16 + k * 16 * 16] == 2);
                    }
                }
            }
        }
示例#4
0
        public static void TestAlgorithmIncrementWaterDistance4()
        {
            var algorithmInitial                 = new AlgorithmInitialBool();
            var algorithmZoom2DIteration1        = new AlgorithmZoom2D();
            var algorithmZoom2DIteration2        = new AlgorithmZoom2D();
            var algorithmZoom2DIteration3        = new AlgorithmZoom2D();
            var algorithmZoom2DIteration4        = new AlgorithmZoom2D();
            var algorithmIncrementWaterDistance1 = new AlgorithmIncrementWaterDistance()
            {
                Initial = true
            };
            var algorithmIncrementWaterDistance2 = new AlgorithmIncrementWaterDistance();
            var algorithmIncrementWaterDistance3 = new AlgorithmIncrementWaterDistance();
            var algorithmIncrementWaterDistance4 = new AlgorithmIncrementWaterDistance();
            var runtimeInitial                 = new RuntimeLayer(algorithmInitial);
            var runtimeZoom2DIteration1        = new RuntimeLayer(algorithmZoom2DIteration1);
            var runtimeZoom2DIteration2        = new RuntimeLayer(algorithmZoom2DIteration2);
            var runtimeZoom2DIteration3        = new RuntimeLayer(algorithmZoom2DIteration3);
            var runtimeZoom2DIteration4        = new RuntimeLayer(algorithmZoom2DIteration4);
            var runtimeIncrementWaterDistance1 = new RuntimeLayer(algorithmIncrementWaterDistance1);
            var runtimeIncrementWaterDistance2 = new RuntimeLayer(algorithmIncrementWaterDistance2);
            var runtimeIncrementWaterDistance3 = new RuntimeLayer(algorithmIncrementWaterDistance3);
            var runtimeIncrementWaterDistance4 = new RuntimeLayer(algorithmIncrementWaterDistance4);

            runtimeZoom2DIteration1.SetInput(0, runtimeInitial);
            runtimeIncrementWaterDistance1.SetInput(0, runtimeZoom2DIteration1);
            runtimeZoom2DIteration2.SetInput(0, runtimeIncrementWaterDistance1);
            runtimeIncrementWaterDistance2.SetInput(0, runtimeZoom2DIteration2);
            runtimeZoom2DIteration3.SetInput(0, runtimeIncrementWaterDistance2);
            runtimeIncrementWaterDistance3.SetInput(0, runtimeZoom2DIteration3);
            runtimeZoom2DIteration4.SetInput(0, runtimeIncrementWaterDistance3);
            runtimeIncrementWaterDistance4.SetInput(0, runtimeZoom2DIteration4);
            PerformSampling("AlgorithmIncrementWaterDistance (4 iterations)", runtimeIncrementWaterDistance4);
        }
示例#5
0
 public void TestAlgorithmIncrementWaterDistance1()
 {
     var algorithmInitial = new AlgorithmInitialBool();
     var algorithmIncrementWaterDistance = new AlgorithmIncrementWaterDistance
     {
         Initial = true
     };
     var runtimeInitial = this.CreateRuntimeLayer(algorithmInitial);
     var runtimeIncrementWaterDistance = this.CreateRuntimeLayer(algorithmIncrementWaterDistance);
     runtimeIncrementWaterDistance.SetInput(0, runtimeInitial);
     PerformSampling("AlgorithmIncrementWaterDistance", runtimeIncrementWaterDistance);
 }
示例#6
0
        public static void TestAlgorithmIncrementWaterDistance1()
        {
            var algorithmInitial = new AlgorithmInitialBool();
            var algorithmIncrementWaterDistance = new AlgorithmIncrementWaterDistance()
            {
                Initial = true
            };
            var runtimeInitial = new RuntimeLayer(algorithmInitial);
            var runtimeIncrementWaterDistance = new RuntimeLayer(algorithmIncrementWaterDistance);

            runtimeIncrementWaterDistance.SetInput(0, runtimeInitial);
            PerformSampling("AlgorithmIncrementWaterDistance", runtimeIncrementWaterDistance);
        }
        public IGenerator GetConfiguration()
        {
            var algorithmInitial = new AlgorithmInitialBool();
            var algorithmZoom2DIteration1 = new AlgorithmZoom2D();
            var algorithmZoom2DIteration2 = new AlgorithmZoom2D();
            var algorithmZoom2DIteration3 = new AlgorithmZoom2D();
            var algorithmZoom2DIteration4 = new AlgorithmZoom2D();
            var algorithmIncrementWaterDistance1 = new AlgorithmIncrementWaterDistance()
            {
                Initial = true
            };
            var algorithmIncrementWaterDistance2 = new AlgorithmIncrementWaterDistance();
            var algorithmIncrementWaterDistance3 = new AlgorithmIncrementWaterDistance();
            var algorithmIncrementWaterDistance4 = new AlgorithmIncrementWaterDistance();
            var runtimeInitial = this.m_RuntimeLayerFactory.CreateRuntimeLayer(algorithmInitial);
            var runtimeZoom2DIteration1 = this.m_RuntimeLayerFactory.CreateRuntimeLayer(algorithmZoom2DIteration1);
            var runtimeZoom2DIteration2 = this.m_RuntimeLayerFactory.CreateRuntimeLayer(algorithmZoom2DIteration2);
            var runtimeZoom2DIteration3 = this.m_RuntimeLayerFactory.CreateRuntimeLayer(algorithmZoom2DIteration3);
            var runtimeZoom2DIteration4 = this.m_RuntimeLayerFactory.CreateRuntimeLayer(algorithmZoom2DIteration4);
            var runtimeIncrementWaterDistance1 = this.m_RuntimeLayerFactory.CreateRuntimeLayer(
                algorithmIncrementWaterDistance1);
            var runtimeIncrementWaterDistance2 = this.m_RuntimeLayerFactory.CreateRuntimeLayer(
                algorithmIncrementWaterDistance2);
            var runtimeIncrementWaterDistance3 = this.m_RuntimeLayerFactory.CreateRuntimeLayer(
                algorithmIncrementWaterDistance3);
            var runtimeIncrementWaterDistance4 = this.m_RuntimeLayerFactory.CreateRuntimeLayer(
                algorithmIncrementWaterDistance4);
            runtimeZoom2DIteration1.SetInput(0, runtimeInitial);
            runtimeIncrementWaterDistance1.SetInput(0, runtimeZoom2DIteration1);
            runtimeZoom2DIteration2.SetInput(0, runtimeIncrementWaterDistance1);
            runtimeIncrementWaterDistance2.SetInput(0, runtimeZoom2DIteration2);
            runtimeZoom2DIteration3.SetInput(0, runtimeIncrementWaterDistance2);
            runtimeIncrementWaterDistance3.SetInput(0, runtimeZoom2DIteration3);
            runtimeZoom2DIteration4.SetInput(0, runtimeIncrementWaterDistance3);
            runtimeIncrementWaterDistance4.SetInput(0, runtimeZoom2DIteration4);

            runtimeInitial.Userdata = "runtimeInitial";
            runtimeZoom2DIteration1.Userdata = "runtimeZoom2DIteration1";
            runtimeIncrementWaterDistance1.Userdata = "runtimeIncrementWaterDistance1";
            runtimeZoom2DIteration2.Userdata = "runtimeZoom2DIteration2";
            runtimeIncrementWaterDistance2.Userdata = "runtimeIncrementWaterDistance2";
            runtimeZoom2DIteration3.Userdata = "runtimeZoom2DIteration3";
            runtimeIncrementWaterDistance3.Userdata = "runtimeIncrementWaterDistance3";
            runtimeZoom2DIteration4.Userdata = "runtimeZoom2DIteration4";
            runtimeIncrementWaterDistance4.Userdata = "runtimeIncrementWaterDistance4";

            return runtimeIncrementWaterDistance4;
        }
示例#8
0
文件: Main.cs 项目: duaneking/Tychaia
        public static void Main(string[] args)
        {
            var algorithmInitial                 = new AlgorithmInitialBool();
            var algorithmZoom2DIteration1        = new AlgorithmZoom2D();
            var algorithmZoom2DIteration2        = new AlgorithmZoom2D();
            var algorithmZoom2DIteration3        = new AlgorithmZoom2D();
            var algorithmZoom2DIteration4        = new AlgorithmZoom2D();
            var algorithmIncrementWaterDistance1 = new AlgorithmIncrementWaterDistance()
            {
                Initial = true
            };
            var algorithmIncrementWaterDistance2 = new AlgorithmIncrementWaterDistance();
            var algorithmIncrementWaterDistance3 = new AlgorithmIncrementWaterDistance();
            var algorithmIncrementWaterDistance4 = new AlgorithmIncrementWaterDistance();
            var runtimeInitial                 = new RuntimeLayer(algorithmInitial);
            var runtimeZoom2DIteration1        = new RuntimeLayer(algorithmZoom2DIteration1);
            var runtimeZoom2DIteration2        = new RuntimeLayer(algorithmZoom2DIteration2);
            var runtimeZoom2DIteration3        = new RuntimeLayer(algorithmZoom2DIteration3);
            var runtimeZoom2DIteration4        = new RuntimeLayer(algorithmZoom2DIteration4);
            var runtimeIncrementWaterDistance1 = new RuntimeLayer(algorithmIncrementWaterDistance1);
            var runtimeIncrementWaterDistance2 = new RuntimeLayer(algorithmIncrementWaterDistance2);
            var runtimeIncrementWaterDistance3 = new RuntimeLayer(algorithmIncrementWaterDistance3);
            var runtimeIncrementWaterDistance4 = new RuntimeLayer(algorithmIncrementWaterDistance4);

            runtimeZoom2DIteration1.SetInput(0, runtimeInitial);
            runtimeIncrementWaterDistance1.SetInput(0, runtimeZoom2DIteration1);
            runtimeZoom2DIteration2.SetInput(0, runtimeIncrementWaterDistance1);
            runtimeIncrementWaterDistance2.SetInput(0, runtimeZoom2DIteration2);
            runtimeZoom2DIteration3.SetInput(0, runtimeIncrementWaterDistance2);
            runtimeIncrementWaterDistance3.SetInput(0, runtimeZoom2DIteration3);
            runtimeZoom2DIteration4.SetInput(0, runtimeIncrementWaterDistance3);
            runtimeIncrementWaterDistance4.SetInput(0, runtimeZoom2DIteration4);

            runtimeInitial.Userdata                 = "runtimeInitial";
            runtimeZoom2DIteration1.Userdata        = "runtimeZoom2DIteration1";
            runtimeIncrementWaterDistance1.Userdata = "runtimeIncrementWaterDistance1";
            runtimeZoom2DIteration2.Userdata        = "runtimeZoom2DIteration2";
            runtimeIncrementWaterDistance2.Userdata = "runtimeIncrementWaterDistance2";
            runtimeZoom2DIteration3.Userdata        = "runtimeZoom2DIteration3";
            runtimeIncrementWaterDistance3.Userdata = "runtimeIncrementWaterDistance3";
            runtimeZoom2DIteration4.Userdata        = "runtimeZoom2DIteration4";
            runtimeIncrementWaterDistance4.Userdata = "runtimeIncrementWaterDistance4";

            EnableHandler = () =>
            {
                runtimeInitial.DataGenerated                 += HandleDataGenerated;
                runtimeZoom2DIteration1.DataGenerated        += HandleDataGenerated;
                runtimeIncrementWaterDistance1.DataGenerated += HandleDataGenerated;
                runtimeZoom2DIteration2.DataGenerated        += HandleDataGenerated;
                runtimeIncrementWaterDistance2.DataGenerated += HandleDataGenerated;
                runtimeZoom2DIteration3.DataGenerated        += HandleDataGenerated;
                runtimeIncrementWaterDistance3.DataGenerated += HandleDataGenerated;
                runtimeZoom2DIteration4.DataGenerated        += HandleDataGenerated;
                runtimeIncrementWaterDistance4.DataGenerated += HandleDataGenerated;
            };

            DisableHandler = () =>
            {
                runtimeInitial.DataGenerated                 -= HandleDataGenerated;
                runtimeZoom2DIteration1.DataGenerated        -= HandleDataGenerated;
                runtimeIncrementWaterDistance1.DataGenerated -= HandleDataGenerated;
                runtimeZoom2DIteration2.DataGenerated        -= HandleDataGenerated;
                runtimeIncrementWaterDistance2.DataGenerated -= HandleDataGenerated;
                runtimeZoom2DIteration3.DataGenerated        -= HandleDataGenerated;
                runtimeIncrementWaterDistance3.DataGenerated -= HandleDataGenerated;
                runtimeZoom2DIteration4.DataGenerated        -= HandleDataGenerated;
                runtimeIncrementWaterDistance4.DataGenerated -= HandleDataGenerated;
            };

            EnableHandler();

            var s = 64;
            var o = 10000000;
            int computations;

            runtimeIncrementWaterDistance4.GenerateData(-s + o, -s + o, -s + o, s * 2, s * 2, s * 2, out computations);
        }