Skip to content

Commit ad9a5af

Browse files
formatting
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 4cfce0b commit ad9a5af

File tree

3 files changed

+29
-29
lines changed

3 files changed

+29
-29
lines changed

src/tangent_types/abstract_zero.jl

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ zero_tangent(x::Number) = zero(x)
123123
)
124124
Expr(:kw, fname, fval)
125125
end
126-
127126
return if has_mutable_tangent(primal)
128127
any_mask = map(fieldnames(primal), fieldtypes(primal)) do fname, ftype
129128
# If it is is unassigned, or if it doesn't have a concrete type, let it take any value for its tangent
@@ -132,11 +131,11 @@ zero_tangent(x::Number) = zero(x)
132131
end
133132
:($MutableTangent{$primal}(
134133
$(Expr(:tuple, Expr(:parameters, any_mask...))),
135-
$(Expr(:tuple, Expr(:parameters, zfield_exprs...)))
134+
$(Expr(:tuple, Expr(:parameters, zfield_exprs...))),
136135
))
137136
else
138137
:($Tangent{$primal}($(Expr(:parameters, zfield_exprs...))))
139-
end
138+
end
140139
end
141140

142141
zero_tangent(primal::Tuple) = Tangent{typeof(primal)}(map(zero_tangent, primal)...)
@@ -160,5 +159,7 @@ end
160159
# Sad heauristic methods we need because of unassigned values
161160
guess_zero_tangent_type(::Type{T}) where {T<:Number} = T
162161
guess_zero_tangent_type(::Type{T}) where {T<:Integer} = typeof(float(zero(T)))
163-
guess_zero_tangent_type(::Type{<:Array{T,N}}) where {T,N} = return Array{guess_zero_tangent_type(T),N}
164-
guess_zero_tangent_type(T::Type)= Any
162+
function guess_zero_tangent_type(::Type{<:Array{T,N}}) where {T,N}
163+
return Array{guess_zero_tangent_type(T),N}
164+
end
165+
guess_zero_tangent_type(T::Type) = Any

test/tangent_types/abstract_zero.jl

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -173,15 +173,14 @@ end
173173
@test zero_tangent(MutDemo(1.5)) isa MutableTangent{MutDemo}
174174
@test iszero(zero_tangent(MutDemo(1.5)))
175175

176-
@test zero_tangent((; a=1)) isa Tangent{typeof((;a=1))}
176+
@test zero_tangent((; a=1)) isa Tangent{typeof((; a = 1))}
177177
@test zero_tangent(Demo(1.2)) isa Tangent{Demo}
178178
@test zero_tangent(Demo(1.2)).x === 0.0
179179

180180
@test zero_tangent([1.0, 2.0]) == [0.0, 0.0]
181181
@test zero_tangent([[1.0, 2.0], [3.0]]) == [[0.0, 0.0], [0.0]]
182182

183183
@test zero_tangent((1.0, 2.0)) == Tangent{Tuple{Float64,Float64}}(0.0, 0.0)
184-
185184
@testset "undef elements Vector" begin
186185
x = Vector{Vector{Float64}}(undef, 3)
187186
x[2] = [1.0, 2.0]
@@ -234,24 +233,24 @@ end
234233

235234
mutable struct MyStructWithNonConcreteFields
236235
x::Any
237-
y::Union{Float64, Vector{Float64}}
236+
y::Union{Float64,Vector{Float64}}
238237
z::AbstractVector
239238
end
240239
d = zero_tangent(MyStructWithNonConcreteFields(1.0, 2.0, [3.0]))
241240
@test iszero(d.x)
242-
d.x = Tangent{Base.RefValue{Float64}}(x=1.5)
243-
@test d.x == Tangent{Base.RefValue{Float64}}(x=1.5) #should be assignable
244-
d.x=2.4
241+
d.x = Tangent{Base.RefValue{Float64}}(; x=1.5)
242+
@test d.x == Tangent{Base.RefValue{Float64}}(; x=1.5) #should be assignable
243+
d.x = 2.4
245244
@test d.x == 2.4 #should be assignable
246245
@test iszero(d.y)
247-
d.y=2.4
246+
d.y = 2.4
248247
@test d.y == 2.4 #should be assignable
249-
d.y=[2.4]
248+
d.y = [2.4]
250249
@test d.y == [2.4] #should be assignable
251250
@test iszero(d.z)
252251
d.z = [1.0, 2.0]
253252
@test d.z == [1.0, 2.0]
254-
d.z = @view [2.0,3.0,4.0][1:2]
253+
d.z = @view [2.0, 3.0, 4.0][1:2]
255254
@test d.z == [2.0, 3.0]
256255
@test d.z isa SubArray
257256
end

test/tangent_types/structural_tangent.jl

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -457,40 +457,40 @@ end
457457
end
458458

459459
@testset "== and hash" begin
460-
@test MutableTangent{MDemo}(; x=1f0) == MutableTangent{MDemo}(; x=1.0)
461-
@test MutableTangent{MDemo}(; x=1.0) == MutableTangent{MDemo}(; x=1f0)
460+
@test MutableTangent{MDemo}(; x=1.0f0) == MutableTangent{MDemo}(; x=1.0)
461+
@test MutableTangent{MDemo}(; x=1.0) == MutableTangent{MDemo}(; x=1.0f0)
462462
@test MutableTangent{MDemo}(; x=2.0) != MutableTangent{MDemo}(; x=1.0)
463463
@test MutableTangent{MDemo}(; x=1.0) != MutableTangent{MDemo}(; x=2.0)
464464

465465
nt = (; x=1.0)
466466
@test MutableTangent{typeof(nt)}(nt) != MutableTangent{MDemo}(; x=1.0)
467467

468-
@test hash(MutableTangent{MDemo}(; x=1f0)) == hash(MutableTangent{MDemo}(; x=1.0))
468+
@test hash(MutableTangent{MDemo}(; x=1.0f0)) == hash(MutableTangent{MDemo}(; x=1.0))
469469
end
470470

471471
@testset "Mutation" begin
472-
v = MutableTangent{MFoo}(x=1.5, y=2.4)
472+
v = MutableTangent{MFoo}(; x=1.5, y=2.4)
473473
v.x = 1.6
474-
@test v == MutableTangent{MFoo}(x=1.6, y=2.4)
474+
@test v == MutableTangent{MFoo}(; x=1.6, y=2.4)
475475
v.y = [1.0, 2.0] # change type, because primal can change type
476-
@test v == MutableTangent{MFoo}(x=1.6, y=[1.0, 2.0])
476+
@test v == MutableTangent{MFoo}(; x=1.6, y=[1.0, 2.0])
477477
end
478478
end
479479

480480
@testset "map" begin
481481
@testset "Tangent" begin
482-
∂foo = Tangent{Foo}(x=1.5, y=2.4)
483-
@test map(v->2*v, ∂foo) == Tangent{Foo}(x=3.0, y=4.8)
482+
∂foo = Tangent{Foo}(; x=1.5, y=2.4)
483+
@test map(v -> 2 * v, ∂foo) == Tangent{Foo}(; x=3.0, y=4.8)
484484

485-
∂foo = Tangent{Foo}(x=1.5)
486-
@test map(v->2*v, ∂foo) == Tangent{Foo}(x=3.0)
485+
∂foo = Tangent{Foo}(; x=1.5)
486+
@test map(v -> 2 * v, ∂foo) == Tangent{Foo}(; x=3.0)
487487
end
488488
@testset "MutableTangent" begin
489-
∂foo = MutableTangent{MFoo}(x=1.5, y=2.4)
490-
∂foo2 = map(v->2*v, ∂foo)
491-
@test ∂foo2 == MutableTangent{MFoo}(x=3.0, y=4.8)
489+
∂foo = MutableTangent{MFoo}(; x=1.5, y=2.4)
490+
∂foo2 = map(v -> 2 * v, ∂foo)
491+
@test ∂foo2 == MutableTangent{MFoo}(; x=3.0, y=4.8)
492492
# Check can still be mutated to new typ
493-
∂foo2.y=[1.0, 2.0]
494-
@test ∂foo2 == MutableTangent{MFoo}(x=3.0, y=[1.0, 2.0])
493+
∂foo2.y = [1.0, 2.0]
494+
@test ∂foo2 == MutableTangent{MFoo}(; x=3.0, y=[1.0, 2.0])
495495
end
496496
end

0 commit comments

Comments
 (0)