public void Problem1_RangeOfSums_ReturnsExpectedBool(int sum, bool expectedResult)
        {
            int[] numbers = new int[] { 10, 15, 3, 7 };

            bool actualResult = Problems1Through25.Problem1(numbers, sum);

            Assert.Equal(expectedResult, actualResult);
        }
        public void Problem8_InlineData_ReturnsExpectedInt(string serializedNodeTree, int expectedResult)
        {
            var nodeTree = Problems1Through25.Problem3Deserialize(serializedNodeTree);

            int actualResult = Problems1Through25.Problem8(nodeTree);

            Assert.Equal(expectedResult, actualResult);
        }
        public void Problem5GetLast_HappyPath_ReturnsExpectedInt(int first, int last)
        {
            var pair = new Pair(first, last);

            var actual = Problems1Through25.Problem5GetLast(pair);

            Assert.Equal(last, actual);
        }
        public void Problem3Serialize_RootOnlyTree_ReturnsExpectedString()
        {
            const string expected = "0,null,null,";

            var nodeTree = new BinaryNode(0);

            string serializedNodeTree = Problems1Through25.Problem3Serialize(nodeTree);

            Assert.Equal(expected, serializedNodeTree);
        }
        public void Problem3Serialize_RootIsNull_ReturnsExpectedString()
        {
            const string expected = "null,";

            BinaryNode nodeTree = null;

            string serializedNodeTree = Problems1Through25.Problem3Serialize(nodeTree);

            Assert.Equal(expected, serializedNodeTree);
        }
        public void Problem3Deserialize_RootOnlyTree_ReturnsExpectedTreeOfBinaryNodes()
        {
            var expectedNodeTree = new BinaryNode(0);

            const string serializedNodeTree = "0,null,null,";

            BinaryNode deserializedNodeTree = Problems1Through25.Problem3Deserialize(serializedNodeTree);

            Assert.Equal(expectedNodeTree, deserializedNodeTree);
        }
        public void Problem3Deserialize_RootIsNull_ReturnsExpectedTreeOfBinaryNodes()
        {
            BinaryNode expectedNodeTree = null;

            const string serializedNodeTree = "null,";

            BinaryNode deserializedNodeTree = Problems1Through25.Problem3Deserialize(serializedNodeTree);

            Assert.Equal(expectedNodeTree, deserializedNodeTree);
        }
        public void Problem3Deserialize_InvalidString_ReturnsExpectedTreeOfBinaryNodes()
        {
            BinaryNode expectedNodeTree = null;

            const string serializedNodeTree = "Hello,1234";

            BinaryNode deserializedNodeTree = Problems1Through25.Problem3Deserialize(serializedNodeTree);

            Assert.Equal(expectedNodeTree, deserializedNodeTree);
        }
        public void Problem3Deserialize_Full2LayeredTree_ReturnsExpectedTreeOfBinaryNodes()
        {
            var expectedNodeTree =
                new BinaryNode(
                    0,
                    new BinaryNode(1),
                    new BinaryNode(2));

            const string serializedNodeTree = "0,1,null,null,2,null,null,";

            BinaryNode deserializedNodeTree = Problems1Through25.Problem3Deserialize(serializedNodeTree);

            Assert.Equal(expectedNodeTree, deserializedNodeTree);
        }
        public void Problem3Serialize_Full2LayeredTree_ReturnsExpectedString()
        {
            const string expected = "0,1,null,null,2,null,null,";

            var nodeTree =
                new BinaryNode(
                    0,
                    new BinaryNode(1),
                    new BinaryNode(2));

            string serializedNodeTree = Problems1Through25.Problem3Serialize(nodeTree);

            Assert.Equal(expected, serializedNodeTree);
        }
        public void Problem2_HappyPath_ReturnsExpectedIntArray(int[] input, int[] expectedResult)
        {
            List <int> actualResult = Problems1Through25.Problem2(input);

            Assert.Equal(expectedResult, actualResult);
        }
        public void Problem9_InlineData_ReturnsExpectedLong(int[] numbers, long expectedResult)
        {
            long actualResult = Problems1Through25.Problem9(numbers.ToList());

            Assert.Equal(expectedResult, actualResult);
        }
        public void Problem7_InlineData_ReturnsExpectedString(string encodedMessage, int expectedResult)
        {
            int actualResult = Problems1Through25.Problem7(encodedMessage);

            Assert.Equal(expectedResult, actualResult);
        }
        public void Problem6_HappyPath_ReturnsExpectedString(int r, int g, int b, string expectedResult)
        {
            string actualResult = Problems1Through25.Problem6(r, g, b);

            Assert.Equal(expectedResult, actualResult);
        }
        public void Problem4_HappyPath_ReturnsExpectedInt(int[] input, int expectedResult)
        {
            int actualResult = Problems1Through25.Problem4(input);

            Assert.Equal(expectedResult, actualResult);
        }