testConcatGradient :: Test
testConcatGradient = testCase "testConcatGradient" $ do
    [dv,dv'] <- TF.runSession $ do
        v  <- TF.render $ TF.vector [1 :: Float]
        v' <- TF.render $ TF.vector [2 :: Float]
        let y = TF.concat (TF.scalar 0) [ v, v' ]
        TF.gradients y [v,v'] >>= TF.run
    V.fromList [1 :: Float] @=? dv
    V.fromList [1 :: Float] @=? dv'
    [dw,dw'] <- TF.runSession $ do
        w  <- TF.render $ TF.vector [1,2,3,4 :: Float]
        w' <- TF.render $ TF.vector [5,6,7,8 :: Float]
        let y = TF.concat (TF.scalar 0) [ w, w', w ]
        TF.gradients y [w,w'] >>= TF.run
    V.fromList [2,2,2,2 :: Float] @=? dw
    V.fromList [1,1,1,1 :: Float] @=? dw'
testConcatGradient :: Test
testConcatGradient = testCase "testConcatGradient" $ do
    [dv,dv'] <- TF.runSession $ do
        v  <- TF.render $ TF.vector [1 :: Float]
        v' <- TF.render $ TF.vector [2 :: Float]
        let y = TF.concat (TF.scalar 0) [ v, v' ]
        TF.gradients y [v,v'] >>= TF.run
    V.fromList [1 :: Float] @=? dv
    V.fromList [1 :: Float] @=? dv'
    [dw,dw'] <- TF.runSession $ do
        w  <- TF.render $ TF.vector [1,2,3,4 :: Float]
        w' <- TF.render $ TF.vector [5,6,7,8 :: Float]
        let y = TF.concat (TF.scalar 0) [ w, w', w ]
        TF.gradients y [w,w'] >>= TF.run
    V.fromList [2,2,2,2 :: Float] @=? dw
    V.fromList [1,1,1,1 :: Float] @=? dw'
testConcatGradient = testCase "testConcatGradient" $ do
    [dv,dv'] <- TF.runSession $ do
        v  <- TF.render $ TF.vector [1 :: Float]
        v' <- TF.render $ TF.vector [2 :: Float]
        let y = TF.concat (TF.scalar 0) [ v, v' ]
        TF.gradients y [v,v'] >>= TF.run
    V.fromList [1 :: Float] @=? dv
    V.fromList [1 :: Float] @=? dv'
    [dw,dw'] <- TF.runSession $ do
        w  <- TF.render $ TF.vector [1,2,3,4 :: Float]
        w' <- TF.render $ TF.vector [5,6,7,8 :: Float]
        let y = TF.concat (TF.scalar 0) [ w, w', w ]
        TF.gradients y [w,w'] >>= TF.run
    V.fromList [2,2,2,2 :: Float] @=? dw
    V.fromList [1,1,1,1 :: Float] @=? dw'