@@ -41,6 +41,13 @@ ForwardDiff.:≺(::Int, ::Type{TestTag()}) = false
4141 PARTIALS3 = Partials {N,V} (ntuple (n -> intrand (V), N))
4242 PRIMAL3 = intrand (V)
4343 FDNUM3 = Dual {TestTag()} (PRIMAL3, PARTIALS3)
44+
45+ if ! allunique ([PRIMAL, PRIMAL2, PRIMAL3])
46+ @info " testing with non-unique primals" PRIMAL PRIMAL2 PRIMAL3
47+ end
48+ if N > 0 && ! allunique ([PARTIALS, PARTIALS2, PARTIALS3])
49+ @info " testing with non-unique partials" PARTIALS PARTIALS2 PARTIALS3
50+ end
4451
4552 M_PARTIALS = Partials {M,V} (ntuple (m -> intrand (V), M))
4653 NESTED_PARTIALS = convert (Partials{N,Dual{TestTag (),V,M}}, PARTIALS)
@@ -229,22 +236,27 @@ ForwardDiff.:≺(::Int, ::Type{TestTag()}) = false
229236 @test ForwardDiff. isconstant (one (NESTED_FDNUM))
230237 @test ForwardDiff. isconstant (NESTED_FDNUM) == (N == 0 )
231238
232- @test isequal (FDNUM, Dual {TestTag()} (PRIMAL, PARTIALS2)) == (N == 0 )
233- @test isequal (PRIMAL, PRIMAL2) == isequal (FDNUM, FDNUM2)
234-
235239 # Recall that FDNUM = Dual{TestTag()}(PRIMAL, PARTIALS) has N partials,
236240 # and FDNUM2 has everything with a 2, and all random numbers nonzero.
237241 # M is the length of M_PARTIALS, which affects:
238242 # NESTED_FDNUM = Dual{TestTag()}(Dual{TestTag()}(PRIMAL, M_PARTIALS), NESTED_PARTIALS)
239243
240- @show N M NESTED_FDNUM PRIMAL M_PARTIALS2 NESTED_PARTIALS2
241- @test isequal (NESTED_FDNUM, Dual {TestTag()} (Dual {TestTag()} (PRIMAL, M_PARTIALS2), NESTED_PARTIALS2)) == (N == M == 0 )
242- @show N M NESTED_FDNUM NESTED_FDNUM2 PRIMAL PRIMAL2
243- @test isequal (NESTED_FDNUM, NESTED_FDNUM2) == isequal (PRIMAL, PRIMAL2)
244-
245- @test (FDNUM == Dual {TestTag()} (PRIMAL, PARTIALS2)) == (N == 0 )
246- @test (PRIMAL == PRIMAL2) == (FDNUM == FDNUM2)
247- @test (PRIMAL == PRIMAL2) == (NESTED_FDNUM == NESTED_FDNUM2)
244+ @test (FDNUM == Dual {TestTag()} (PRIMAL, PARTIALS2)) == (PARTIALS == PARTIALS2)
245+ @test isequal (FDNUM, Dual {TestTag()} (PRIMAL, PARTIALS2)) == (PARTIALS == PARTIALS2)
246+ @test isequal (NESTED_FDNUM, Dual {TestTag()} (Dual {TestTag()} (PRIMAL, M_PARTIALS2), NESTED_PARTIALS2)) == ((M_PARTIALS == M_PARTIALS2) && (NESTED_PARTIALS == NESTED_PARTIALS2))
247+
248+ if PRIMAL == PRIMAL2
249+ @test isequal (FDNUM, Dual {TestTag()} (PRIMAL, PARTIALS2)) == (PARTIALS == PARTIALS2)
250+ @test isequal (FDNUM, FDNUM2) == (PARTIALS == PARTIALS2)
251+
252+ @test (FDNUM == FDNUM2) == (PARTIALS == PARTIALS2)
253+ @test (NESTED_FDNUM == NESTED_FDNUM2) == ((M_PARTIALS == M_PARTIALS2) && (NESTED_PARTIALS == NESTED_PARTIALS2))
254+ else
255+ @test ! isequal (FDNUM, FDNUM2)
256+
257+ @test FDNUM != FDNUM2
258+ @test NESTED_FDNUM != NESTED_FDNUM2
259+ end
248260
249261 @test isless (Dual {TestTag()} (1 , PARTIALS), Dual {TestTag()} (2 , PARTIALS2))
250262 @test ! (isless (Dual {TestTag()} (1 , PARTIALS), Dual {TestTag()} (1 , PARTIALS2)))
0 commit comments