@@ -92,6 +92,16 @@ TypeErasureTests.test("AnyDifferentiable casting") {
92
92
expectEqual ( nil , genericAny. base as? Generic < Double > )
93
93
}
94
94
95
+ TypeErasureTests . test ( " AnyDifferentiable reflection " ) {
96
+ let originalVector = Vector ( x: 1 , y: 1 )
97
+ let vector = AnyDifferentiable ( originalVector)
98
+ let mirror = Mirror ( reflecting: vector)
99
+ let children = Array ( mirror. children)
100
+ expectEqual ( 2 , children. count)
101
+ expectEqual ( [ " x " , " y " ] , children. map ( \. label) )
102
+ expectEqual ( [ originalVector. x, originalVector. y] , children. map { $0. value as! Float } )
103
+ }
104
+
95
105
TypeErasureTests . test ( " AnyDerivative casting " ) {
96
106
let tan = AnyDerivative ( Vector . TangentVector ( x: 1 , y: 1 ) )
97
107
expectEqual ( Vector . TangentVector ( x: 1 , y: 1 ) , tan. base as? Vector . TangentVector )
@@ -107,6 +117,16 @@ TypeErasureTests.test("AnyDerivative casting") {
107
117
expectEqual ( nil , zero. base as? Generic < Float > . TangentVector )
108
118
}
109
119
120
+ TypeErasureTests . test ( " AnyDerivative reflection " ) {
121
+ let originalTan = Vector . TangentVector ( x: 1 , y: 1 )
122
+ let tan = AnyDerivative ( originalTan)
123
+ let mirror = Mirror ( reflecting: tan)
124
+ let children = Array ( mirror. children)
125
+ expectEqual ( 2 , children. count)
126
+ expectEqual ( [ " x " , " y " ] , children. map ( \. label) )
127
+ expectEqual ( [ originalTan. x, originalTan. y] , children. map { $0. value as! Float } )
128
+ }
129
+
110
130
TypeErasureTests . test ( " AnyDifferentiable differentiation " ) {
111
131
// Test `AnyDifferentiable` initializer.
112
132
do {
0 commit comments