public void Context_Nagere() { var ctx = new GameContext(RuleFactory.GetDefaultRule()); // 最初は空 Assert.IsFalse(ctx.Yama.Any()); Assert.IsFalse(ctx.Ba.Any()); // 場にカードを置く ctx._history.Add(new HE_PutCards(ctx.Teban, DeckGenerator.FromCardsetString("HK").ToArray())); Assert.IsTrue(ctx.Ba.Any()); Assert.IsFalse(ctx.Yama.Any()); // 流す //ctx.DoNagare(); ctx._history.Add(new HE_Nagare()); Assert.AreEqual(1, ctx.Yama.Count()); Assert.AreEqual(0, ctx.Ba.Count()); // 場にカードを置く(複数枚、複数回) ctx._history.Add(new HE_PutCards(ctx.Teban, DeckGenerator.FromCardsetString("D3 H3").ToArray())); ctx._history.Add(new HE_PutCards(ctx.Teban, DeckGenerator.FromCardsetString("S5 C5").ToArray())); Assert.AreEqual(1, ctx.Yama.Count()); Assert.AreEqual(2, ctx.Ba.Count()); // 流す //ctx.DoNagare(); ctx._history.Add(new HE_Nagare()); Assert.AreEqual(5, ctx.Yama.Count()); Assert.AreEqual(0, ctx.Ba.Count()); // リセット ctx.Reset(); Assert.AreEqual(0, ctx.Yama.Count()); Assert.AreEqual(0, ctx.Ba.Count()); }