public void Execute_GivenSourcesAreBlended() { // Arrange var data = new double[, ] { { 0d, 0.25d, 0.5d, 0.75d, 1d } }; var sourceMockA = new Mock <HeightMapNode>(); sourceMockA.SetupGet(h => h.Result).Returns(new HeightMap(data)); var sourceMockB = new Mock <HeightMapNode>(); sourceMockB.SetupGet(h => h.Result).Returns(new HeightMap(data)); var blendModeMock = new Mock <IBlendMode>(); blendModeMock.Setup(b => b.Blend(It.IsAny <HeightMap>(), It.IsAny <HeightMap>())) .Returns <HeightMap, HeightMap>(MockBlendMode); var expected = MockBlendMode(sourceMockA.Object.Result, sourceMockB.Object.Result).Data; var node = new BlendingNode(blendModeMock.Object); node.AddDependency(sourceMockA.Object); node.AddDependency(sourceMockB.Object); // Act node.Execute(); var actual = node.Result.Data; // Assert Assert.Equal(expected[0, 0], actual[0, 0]); Assert.Equal(expected[0, 1], actual[0, 1]); Assert.Equal(expected[0, 2], actual[0, 2]); Assert.Equal(expected[0, 3], actual[0, 3]); Assert.Equal(expected[0, 4], actual[0, 4]); }
private static void SerializeFlatGenerator() { var generator1 = new SquareGenerator(100, 100, new Size(75, 75), 0.5f); var generator2 = new SquareGenerator(100, 100, new Size(75, 75), new Point(25, 25), 0.5f); //var generator1 = new FlatGenerator(200, 200, 1); //var generator2 = new DSNoiseGenerator(200, 200, seed: 10); var filename = GetFilename("serial.json"); var node1 = new GeneratorNode(generator1); var node2 = new GeneratorNode(generator2); var blend = new BlendingNode(BlendModes.Difference); blend.AddDependency(node1); blend.AddDependency(node2); blend.Execute(); var bitmap = blend.Result.AsBitmap(); var filename2 = GetFilename("generated.png"); bitmap.Save(filename2, ImageFormat.Png); Process.Start(filename2); }
private HeightMap GenerateTerrain(int?seed = null) { var generator1 = new FlatGenerator(1000, 1000, 1); var generator2 = new DSNoiseGenerator(1000, 1000, seed: seed); var node1 = new GeneratorNode(generator1); var node2 = new GeneratorNode(generator2); var blend = new BlendingNode(BlendModes.Difference); blend.AddDependency(node1); blend.AddDependency(node2); blend.Execute(); return(blend.Result); }
public void Execute_RunsBlendOnAllPairsOfDependencies() { // Arrange var blendModeMock = new Mock <IBlendMode>(); blendModeMock.Setup(b => b.Blend(It.IsAny <HeightMap>(), It.IsAny <HeightMap>())) .Returns <HeightMap, HeightMap>((h1, h2) => { return(h2); }); var heightMapA = new HeightMap(10); var heightMapB = new HeightMap(10); var heightMapC = new HeightMap(10); var expectedAMock = new Mock <HeightMapNode>(); expectedAMock.SetupGet(m => m.Result).Returns(heightMapA); var expectedBMock = new Mock <HeightMapNode>(); expectedBMock.SetupGet(m => m.Result).Returns(heightMapB); var expectedCMock = new Mock <HeightMapNode>(); expectedCMock.SetupGet(m => m.Result).Returns(heightMapC); var node = new BlendingNode(blendModeMock.Object); node.AddDependency(expectedAMock.Object); node.AddDependency(expectedBMock.Object); node.AddDependency(expectedCMock.Object); // Act node.Execute(); // Assert blendModeMock.Verify(m => m.Blend( It.IsAny <HeightMap>(), It.Is <HeightMap>(h => h.Equals(heightMapB))), Times.Once); blendModeMock.Verify(m => m.Blend( It.Is <HeightMap>(h => h.Equals(heightMapB)), It.Is <HeightMap>(h => h.Equals(heightMapC))), Times.Once); }