blob: dd1b1546065149c68528674b1ed66bbacd571a89 [file] [log] [blame]
// RUN: %empty-directory(%t)
// RUN: %target-build-swift %s -parse-stdlib -o %t/Builtins
// RUN: %target-codesign %t/Builtins
// RUN: %target-run %t/Builtins
// REQUIRES: executable_test
import Swift
import StdlibUnittest
var BuiltinDifferentialOperatorTests = TestSuite("BuiltinDifferentialOperators")
BuiltinDifferentialOperatorTests.test("Unary") {
func func_to_diff(x: Float) -> Float {
return x * x
}
let (y, pullback) = Builtin.autodiffApply_vjp(func_to_diff, 4)
expectEqual(16, y)
expectEqual(8, pullback(1))
}
BuiltinDifferentialOperatorTests.test("Binary") {
func func_to_diff(x: Float, y: Float) -> Float {
return x * y
}
let (y, pullback) = Builtin.autodiffApply_vjp_arity2(func_to_diff, 4, 5)
expectEqual(20, y)
expectEqual((5, 4), pullback(1))
}
runAllTests()