anchor.diff:          for i in 1..count do
               let x = initializer()
               let xd = dsharp.randnLike(x)
  -            let zd = dsharp.randnLike(x)
   
               let fwdx = x.forwardDiff(xd)
               let fwdz1 : Tensor = op1 fwdx
  
positive.code:             printfn "revz1 %A" revz1
              printfn "revz2 %A" revz2
              printfn "revxd1 %A" revxd1
              printfn "revxd2 %A\n" revxd2
  
              Assert.True(fwdz1.allclose(fwdz2, 0.01))
              Assert.True(fwdzd1.allclose(fwdzd2, 0.01))
              Assert.True(revz1.allclose(revz2, 0.01))
              Assert.True(revxd1.allclose(revxd2, 0.01))
  
      [<Test>]
      let TestExtensions() =
          compareUnaryOps (fun t -> t.sin()) (fun t -> t.sinExt()) 10 (fun () -> dsharp.randn(10))
          compareUnaryOps (fun t -> t.cos()) (fun t -> t.cosExt()) 10 (fun () -> dsharp.randn(10))
          compareUnaryOps (fun t -> t.exp()) (fun t -> t.expExt()) 10 (fun () -> dsharp.randn(10))
          compareUnaryOps (fun t -> t.log()) (fun t -> t.logExt()) 10 (fun () -> dsharp.randn(10).abs())
negative.code:             let fwdzd1 = fwdz1.derivative
              let fwdzd2 = fwdz2.derivative
  
              let zd = dsharp.randnLike(fwdz1)
              let revx1 = x.reverseDiff()
              let revx2 = x.reverseDiff()
              let revz1 = op1 revx1
  