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); } } } }
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); }
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); }
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; }
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); }