blob: 060f75d85b20a703a05c6a90d513bf6166a1b5d3 [file] [log] [blame]
// RUN: %target-run-simple-swift
// REQUIRES: executable_test
import Swift
import StdlibUnittest
var BuiltinDifferentialOperatorTests = TestSuite("DifferentialOperators")
BuiltinDifferentialOperatorTests.test("Simple") {
let t: Float = 1.0
do {
let (value: y, pullback: pb) = valueWithPullback(at: 4.0, 5.0) { x0, x1 in
x0 * x1 * t
}
expectEqual(20, y)
expectEqual((5, 4), pb(1))
expectEqual((0, 0), pb(0))
}
do {
let pb = pullback(at: 4.0, 5.0) { x0, x1 in
x0 * x1 * t
}
expectEqual((5, 4), pb(1))
expectEqual((0, 0), pb(0))
}
do {
let (value: y, gradient: grad) = valueWithGradient(at: 4.0, 5.0) { x0, x1 in
x0 * x1 * t
}
expectEqual(20, y)
expectEqual((5, 4), grad)
}
do {
let grad = gradient(at: 4.0, 5.0) { x0, x1 in
x0 * x1 * t
}
expectEqual((5, 4), grad)
}
do {
let grad = gradient { x0, x1 in
x0 * x1 * t
}
expectEqual((5, 4), grad(4, 5))
}
}
runAllTests()