@@ -62,6 +62,7 @@ extension Float: HasFloat {
62
62
init ( float: Float ) { self = float }
63
63
}
64
64
65
+ #if REQUIRES_SRxxxx
65
66
ReabstractionE2ETests . test ( " diff param generic => concrete " ) {
66
67
func inner< T: HasFloat > ( x: T ) -> Float {
67
68
7 * x. float * x. float
@@ -70,6 +71,7 @@ ReabstractionE2ETests.test("diff param generic => concrete") {
70
71
expectEqual ( Float ( 7 * 3 * 3 ) , transformed ( 3 ) )
71
72
expectEqual ( Float ( 7 * 2 * 3 ) , gradient ( at: 3 , in: transformed) )
72
73
}
74
+ #endif
73
75
74
76
ReabstractionE2ETests . test ( " nondiff param generic => concrete " ) {
75
77
func inner< T: HasFloat > ( x: Float , y: T ) -> Float {
@@ -80,6 +82,7 @@ ReabstractionE2ETests.test("nondiff param generic => concrete") {
80
82
expectEqual ( Float ( 7 * 2 * 3 ) , gradient ( at: 3 ) { transformed ( $0, 10 ) } )
81
83
}
82
84
85
+ #if REQUIRES_SRxxxx
83
86
ReabstractionE2ETests . test ( " diff param and nondiff param generic => concrete " ) {
84
87
func inner< T: HasFloat > ( x: T , y: T ) -> Float {
85
88
7 * x. float * x. float + y. float
@@ -88,7 +91,9 @@ ReabstractionE2ETests.test("diff param and nondiff param generic => concrete") {
88
91
expectEqual ( Float ( 7 * 3 * 3 + 10 ) , transformed ( 3 , 10 ) )
89
92
expectEqual ( Float ( 7 * 2 * 3 ) , gradient ( at: 3 ) { transformed ( $0, 10 ) } )
90
93
}
94
+ #endif
91
95
96
+ #if REQUIRES_SRxxxx
92
97
ReabstractionE2ETests . test ( " result generic => concrete " ) {
93
98
func inner< T: HasFloat > ( x: Float ) -> T {
94
99
T ( float: 7 * x * x)
@@ -97,6 +102,7 @@ ReabstractionE2ETests.test("result generic => concrete") {
97
102
expectEqual ( Float ( 7 * 3 * 3 ) , transformed ( 3 ) )
98
103
expectEqual ( Float ( 7 * 2 * 3 ) , gradient ( at: 3 , in: transformed) )
99
104
}
105
+ #endif
100
106
101
107
ReabstractionE2ETests . test ( " diff param concrete => generic => concrete " ) {
102
108
typealias FnTy < T: Differentiable > = @differentiable ( T ) -> Float
0 commit comments