public void Decode_MatrixWithOne1AndMany0_ReturnsListWithOneElement()
        {
            var deckMatrixProvider = new FakeGameProvider
            {
                Colors = new List <Color> {
                    Color.Blue, Color.Green, Color.Red
                },
                Ranks = new List <Rank> {
                    Rank.One, Rank.Two, Rank.Three
                },
            };

            Matrix input = deckMatrixProvider.CreateEmptyMatrix();

            input[new Card(Color.Green, Rank.Three)] = 1;

            CardsToMatrixConverter converter = new CardsToMatrixConverter(deckMatrixProvider);
            IReadOnlyList <Card>   actual    = converter.Decode(input);

            Assert.AreEqual(1, actual.Count);

            Card greenThree = new Card(Rank.Three, Color.Green);

            Assert.AreEqual(greenThree, actual[0]);
        }
        public void Decode_ZeroMatrix_ReturnsEmptyList()
        {
            var deckMatrixProvider = new FakeGameProvider
            {
                Colors = new List <Color> {
                    Color.Blue, Color.Red, Color.Green
                },
                Ranks = new List <Rank> {
                    Rank.One, Rank.Two, Rank.Three
                }
            };

            Matrix zeroMatrix = deckMatrixProvider.CreateEmptyMatrix();

            CardsToMatrixConverter converter = new CardsToMatrixConverter(deckMatrixProvider);

            IReadOnlyList <Card> actual = converter.Decode(zeroMatrix);

            Assert.IsEmpty(actual);
        }