public void Test1()
        {
            SortedFileSystemQuery query = new SortedFileSystemQuery();

            query.AddFileSystem(new SortedFileSystem(new int[] { 1, 3, 5, 10 }));
            query.AddFileSystem(new SortedFileSystem(new int[] { 2, 4, 6, 8 }));
            query.AddFileSystem(new SortedFileSystem(new int[] { 1, 1, 1 }));
            query.AddFileSystem(new SortedFileSystem(new int[] { 11, 12, 13 }));

            //1 1 1 1 2 3 4 5 6 8 10 11 12 13

            Assert.AreEqual(1, query.GetKthValue(1));
            Assert.AreEqual(1, query.GetKthValue(4));
            Assert.AreEqual(2, query.GetKthValue(5));
            Assert.AreEqual(3, query.GetKthValue(6));
            Assert.AreEqual(6, query.GetKthValue(9));
            Assert.AreEqual(10, query.GetKthValue(11));
            Assert.AreEqual(12, query.GetKthValue(13));
            Assert.AreEqual(13, query.GetKthValue(14));
        }
        public void Test2()
        {
            SortedFileSystemQuery query = new SortedFileSystemQuery();

            query.AddFileSystem(new SortedFileSystem(new int[] { 7, 5, 5, 5 }));
            query.AddFileSystem(new SortedFileSystem(new int[] { 5, 6, 5 }));
            query.AddFileSystem(new SortedFileSystem(new int[] { 1 }));
            query.AddFileSystem(new SortedFileSystem(new int[] { 1050 }));

            //1 5 5 5 5 5 6 7 1050

            Assert.AreEqual(1, query.GetKthValue(1));
            Assert.AreEqual(5, query.GetKthValue(2));
            Assert.AreEqual(5, query.GetKthValue(3));
            Assert.AreEqual(5, query.GetKthValue(4));
            Assert.AreEqual(5, query.GetKthValue(5));
            Assert.AreEqual(5, query.GetKthValue(6));
            Assert.AreEqual(6, query.GetKthValue(7));
            Assert.AreEqual(7, query.GetKthValue(8));
            Assert.AreEqual(1050, query.GetKthValue(9));
        }