@@ -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)
@@ -210,22 +217,27 @@ ForwardDiff.:≺(::Int, ::Type{TestTag()}) = false
210217 @test ForwardDiff. isconstant (one (NESTED_FDNUM))
211218 @test ForwardDiff. isconstant (NESTED_FDNUM) == (N == 0 )
212219
213- @test isequal (FDNUM, Dual {TestTag()} (PRIMAL, PARTIALS2)) == (N == 0 )
214- @test isequal (PRIMAL, PRIMAL2) == isequal (FDNUM, FDNUM2)
215-
216220 # Recall that FDNUM = Dual{TestTag()}(PRIMAL, PARTIALS) has N partials,
217221 # and FDNUM2 has everything with a 2, and all random numbers nonzero.
218222 # M is the length of M_PARTIALS, which affects:
219223 # NESTED_FDNUM = Dual{TestTag()}(Dual{TestTag()}(PRIMAL, M_PARTIALS), NESTED_PARTIALS)
220224
221- @show N M NESTED_FDNUM PRIMAL M_PARTIALS2 NESTED_PARTIALS2
222- @test isequal (NESTED_FDNUM, Dual {TestTag()} (Dual {TestTag()} (PRIMAL, M_PARTIALS2), NESTED_PARTIALS2)) == (N == M == 0 )
223- @show N M NESTED_FDNUM NESTED_FDNUM2 PRIMAL PRIMAL2
224- @test isequal (NESTED_FDNUM, NESTED_FDNUM2) == isequal (PRIMAL, PRIMAL2)
225-
226- @test (FDNUM == Dual {TestTag()} (PRIMAL, PARTIALS2)) == (N == 0 )
227- @test (PRIMAL == PRIMAL2) == (FDNUM == FDNUM2)
228- @test (PRIMAL == PRIMAL2) == (NESTED_FDNUM == NESTED_FDNUM2)
225+ @test (FDNUM == Dual {TestTag()} (PRIMAL, PARTIALS2)) == (PARTIALS == PARTIALS2)
226+ @test isequal (FDNUM, Dual {TestTag()} (PRIMAL, PARTIALS2)) == (PARTIALS == PARTIALS2)
227+ @test isequal (NESTED_FDNUM, Dual {TestTag()} (Dual {TestTag()} (PRIMAL, M_PARTIALS2), NESTED_PARTIALS2)) == ((M_PARTIALS == M_PARTIALS2) && (NESTED_PARTIALS == NESTED_PARTIALS2))
228+
229+ if PRIMAL == PRIMAL2
230+ @test isequal (FDNUM, Dual {TestTag()} (PRIMAL, PARTIALS2)) == (PARTIALS == PARTIALS2)
231+ @test isequal (FDNUM, FDNUM2) == (PARTIALS == PARTIALS2)
232+
233+ @test (FDNUM == FDNUM2) == (PARTIALS == PARTIALS2)
234+ @test (NESTED_FDNUM == NESTED_FDNUM2) == ((M_PARTIALS == M_PARTIALS2) && (NESTED_PARTIALS == NESTED_PARTIALS2))
235+ else
236+ @test ! isequal (FDNUM, FDNUM2)
237+
238+ @test FDNUM != FDNUM2
239+ @test NESTED_FDNUM != NESTED_FDNUM2
240+ end
229241
230242 @test isless (Dual {TestTag()} (1 , PARTIALS), Dual {TestTag()} (2 , PARTIALS2))
231243 @test ! (isless (Dual {TestTag()} (1 , PARTIALS), Dual {TestTag()} (1 , PARTIALS2)))
0 commit comments