示例#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);
 }
示例#2
0
        public void TestForOCXOddAdjustmentShutterBug()
        {
            int computations;
            var input = new AlgorithmDebuggingInitialDelegate
            {
                ValueShouldBePlacedAt = (x, y, z) => true
            };
            var zoom = new AlgorithmZoom2D
            {
                Mode = AlgorithmZoom2D.ZoomType.Square
            };
            var runtimeInput = new RuntimeLayer(input);
            var runtimeZoom  = new RuntimeLayer(zoom);

            runtimeZoom.SetInput(0, runtimeInput);
            var result = runtimeZoom.GenerateData(1, 0, 0, 32, 32, 32, out computations);

            // We have filled the entire block, therefore this bug can be detected by checking
            // every odd row.
            for (var x = 1; x < 32; x += 2)
            {
                Assert.True(result[x + 0 * 32 + 0 * 32 * 32] == 1);
            }
            //, "OCX odd adjustment shutter bug is present, where every odd row is blank when main adjustment is an odd number.");
        }
示例#3
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);
        }
示例#4
0
        public static void TestAlgorithmZoom2DIteration1()
        {
            var algorithmInitial          = new AlgorithmInitialBool();
            var algorithmZoom2DIteration1 = new AlgorithmZoom2D();
            var runtimeInitial            = new RuntimeLayer(algorithmInitial);
            var runtimeZoom2DIteration1   = new RuntimeLayer(algorithmZoom2DIteration1);

            runtimeZoom2DIteration1.SetInput(0, runtimeInitial);
            PerformSampling("AlgorithmZoom2D (1 iteration)", runtimeZoom2DIteration1);
        }
        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;
        }
示例#6
0
        public void TestForOCXOddAdjustmentShutterBug()
        {
            int computations;
            var input = new AlgorithmDebuggingInitialDelegate
            {
                ValueShouldBePlacedAt = (x, y, z) => true,
                ShowAs2D = true
            };
            var zoom = new AlgorithmZoom2D
            {
                Mode = ZoomType.Square
            };
            var runtimeInput = this.CreateRuntimeLayer(input);
            var runtimeZoom = this.CreateRuntimeLayer(zoom);
            runtimeZoom.SetInput(0, runtimeInput);
            var result = runtimeZoom.GenerateData(1, 0, 0, 32, 32, 32, out computations);

            // We have filled the entire block, therefore this bug can be detected by checking
            // every odd row.
            for (var x = 1; x < 32; x += 2)
                Assert.True(
                    result[x] == 1,
                    "OCX odd adjustment shutter bug is present, where every odd row is blank when main adjustment is an odd number.");
        }
示例#7
0
 public void TestAlgorithmZoom2DIteration2()
 {
     var algorithmInitial = new AlgorithmInitialBool();
     var algorithmZoom2DIteration1 = new AlgorithmZoom2D();
     var algorithmZoom2DIteration2 = new AlgorithmZoom2D();
     var runtimeInitial = this.CreateRuntimeLayer(algorithmInitial);
     var runtimeZoom2DIteration1 = this.CreateRuntimeLayer(algorithmZoom2DIteration1);
     var runtimeZoom2DIteration2 = this.CreateRuntimeLayer(algorithmZoom2DIteration2);
     runtimeZoom2DIteration1.SetInput(0, runtimeInitial);
     runtimeZoom2DIteration2.SetInput(0, runtimeInitial);
     PerformSampling("AlgorithmZoom2D (2 iteration)", runtimeZoom2DIteration2);
 }
示例#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);
        }