public void GetAllPossibleSlicesTest() { { // 1-Celled var result = SlicePattern.GetAllPossible(1, 1); var expected = new[] { new SlicePattern() { Right = 0, Down = 0, } }; Assert.IsTrue(expected.SequenceEqual(result)); } { // 2-Celled var result = SlicePattern.GetAllPossible(1, 2).ToArray(); var expected = new[] { new SlicePattern(0, 0), new SlicePattern(1, 0), new SlicePattern(0, 1), }; Assert.IsTrue(expected.SequenceEqual(result)); } { // 4-Celled var result = SlicePattern.GetAllPossible(1, 4).ToArray(); var expected = new[] { new SlicePattern(0, 0), new SlicePattern(1, 0), new SlicePattern(2, 0), new SlicePattern(3, 0), new SlicePattern(0, 1), new SlicePattern(0, 2), new SlicePattern(0, 3), new SlicePattern(1, 1), }; foreach (var slicePattern in result) { Trace.WriteLine(slicePattern); } Assert.AreEqual(expected.Count(), result.Count()); foreach (var expectedPattern in expected) { Assert.IsTrue(result.Contains(expectedPattern)); } } }
public AbstractSliceStrategy Create(SlicePattern slicePattern) { switch (slicePattern) { case SlicePattern.Random: return new RandomSliceStrategy(); default: return new DefaultSliceStrategy(); } }
public SliceContract GetSlice(Texture2D image, LayoutContract layoutContract, SlicePattern slicePattern) { var sliceStrategy = _sliceStrategyFactory.Create(slicePattern); return sliceStrategy.GetSlice(image, layoutContract); }