Files
swift-mirror/test/AutoDiff/stdlib/array_differentiation.swift
Jaap Wijnen b4fb57459d [AutoDiff] Make sure rhs is negated in all cases when subtracting two Array.TangentVectors (#84731)
`Array.TangentVector` conformance to `AdditiveArithmetic` was incorrect as the returned values weren't negated if the lhs was an empty vector (considered to be a zero tangentvector)
2025-10-08 17:07:59 -07:00

38 lines
1023 B
Swift

// RUN: %target-run-simple-swift
// REQUIRES: executable_test
import _Differentiation
import StdlibUnittest
var ArrayDifferentiationTests = TestSuite("ArrayDifferentiation")
ArrayDifferentiationTests.test("Array.DifferentiableView+") {
let zero1: Array<Float>.DifferentiableView = [0, 0, 0]
let zero2: Array<Float>.DifferentiableView = .zero
let a: Array<Float>.DifferentiableView = [1, 2, 3]
expectEqual(a + a, [2, 4, 6])
expectEqual(a + zero1, [1, 2, 3])
expectEqual(zero1 + a, [1, 2, 3])
expectEqual(a + zero2, [1, 2, 3])
expectEqual(zero2 + a, [1, 2, 3])
}
ArrayDifferentiationTests.test("Array.DifferentiableView-") {
let zero1: Array<Float>.DifferentiableView = [0, 0, 0]
let zero2: Array<Float>.DifferentiableView = .zero
let a: Array<Float>.DifferentiableView = [1, 2, 3]
expectEqual(a - a, [0, 0, 0])
expectEqual(a - zero1, [1, 2, 3])
expectEqual(zero1 - a, [-1, -2, -3])
expectEqual(a - zero2, [1, 2, 3])
expectEqual(zero2 - a, [-1, -2, -3])
}
runAllTests()