anchor.diff:          buffer.Position <- 0
           let res = DocumentBuffer.decodeInt32 buffer
           res = num
  -
  +    
       let anyStringCanBeEncoded (value : NonNull<string>) = 
           use buffer = DocumentBuffer.create (BufferSize.Small)
           let length = DocumentBuffer.encodeString value.Get buffer
  
positive.code:         let res = DocumentProtocol.decodeTransactionId buffer
          res = num
      
      member __.``Int64 max value can be encoded as TxId``() = test <@ anyInt64CanBeEncodedAsTxId Int64.MaxValue = true @>
      member __.``Int64 min value can be encoded as TxId``() = test <@ anyInt64CanBeEncodedAsTxId Int64.MinValue = true @>
      member __.``Any Int64 number can be encoded as TxId``() = Check.VerboseThrowOnFailure anyInt64CanBeEncodedAsTxId
  
negative.code:         buffer.Position <- 0
          let res = DocumentBuffer.decodeString length buffer
          res = value.Get
      
      member __.``Int64 max value can be encoded``() = test <@ anyInt64CanBeEncoded Int64.MaxValue @>
      member __.``Int64 min value can be encoded``() = test <@ anyInt64CanBeEncoded Int64.MinValue @>
      member __.``Any Int64 number can be encoded``() = Check.VerboseThrowOnFailure anyInt64CanBeEncoded
      member __.``Int32 max value can be encoded``() = test <@ anyInt32CanBeEncoded Int32.MaxValue @>
      member __.``Int32 min value can be encoded``() = test <@ anyInt32CanBeEncoded Int32.MinValue @>
      member __.``Any Int32 number can be encoded``() = Check.VerboseThrowOnFailure anyInt32CanBeEncoded
      member __.``Any String can be encoded``() = Check.VerboseThrowOnFailure anyStringCanBeEncoded
      member __.``String 'a' can be encoded``() = test <@ anyStringCanBeEncoded (NonNull.NonNull("a")) @>
      member __.``String 'az   ' can be encoded``() = test <@ anyStringCanBeEncoded (NonNull.NonNull("az   ")) @>
  
  type DocumentProtocolTests() = 
      
  