public void LeaderOwnsAllOpenSegments() { var cricket = new Cricket(2); Assert.IsFalse(cricket.LeaderOwnsAllOpenSegments()); // Player 1, open 25 and 20 cricket.RegisterDart(25, 2); cricket.RegisterDart(25, 1); cricket.RegisterDart(20, 3); cricket.NextPlayer(); // Player 2, open 19, 18, 17 cricket.RegisterDart(19, 3); cricket.RegisterDart(18, 3); cricket.RegisterDart(17, 3); cricket.NextPlayer(); // Player 1, open 16, 15, score 20 cricket.RegisterDart(16, 3); cricket.RegisterDart(15, 3); cricket.RegisterDart(20, 3); cricket.NextPlayer(); // Player 2, miss cricket.RegisterDart(0, 0); cricket.RegisterDart(0, 0); cricket.RegisterDart(0, 0); cricket.NextPlayer(); // Player 1, close 19, 18, 17 cricket.RegisterDart(19, 3); cricket.RegisterDart(18, 3); cricket.RegisterDart(17, 3); Assert.IsTrue(cricket.LeaderOwnsAllOpenSegments()); Assert.IsTrue(cricket.IsGameOver()); }