public void ClosedOpen_Valid()
        {
            var range = ValueRange.ClosedOpen("a", "z");

            Assert.Equal("a", range.StartValueClosed.ToStringUtf8());
            Assert.True(range.StartValueOpen.IsEmpty);
            Assert.True(range.EndValueClosed.IsEmpty);
            Assert.Equal("z", range.EndValueOpen.ToStringUtf8());

            range = ValueRange.ClosedOpen(null, new BigtableByteString(0x12, 0xFE));
            Assert.True(range.StartValueClosed.IsEmpty);
            Assert.True(range.StartValueOpen.IsEmpty);
            Assert.True(range.EndValueClosed.IsEmpty);
            Assert.Equal(new byte[] { 0x12, 0xFE }, range.EndValueOpen.ToByteArray());

            range = ValueRange.ClosedOpen(ByteString.CopyFrom(0x00, 0x01, 0xFF), null);
            Assert.Equal(new byte[] { 0x00, 0x01, 0xFF }, range.StartValueClosed.ToByteArray());
            Assert.True(range.StartValueOpen.IsEmpty);
            Assert.True(range.EndValueClosed.IsEmpty);
            Assert.True(range.EndValueOpen.IsEmpty);

            range = ValueRange.ClosedOpen(null, null);
            Assert.True(range.StartValueClosed.IsEmpty);
            Assert.True(range.StartValueOpen.IsEmpty);
            Assert.True(range.EndValueClosed.IsEmpty);
            Assert.True(range.EndValueOpen.IsEmpty);
        }