@@ -259,6 +259,8 @@ ForwardDiff.:≺(::Type{OuterTestTag}, ::Type{TestTag}) = false
259259 # M is the length of M_PARTIALS, which affects:
260260 # NESTED_FDNUM = Dual{TestTag}(Dual{TestTag}(PRIMAL, M_PARTIALS), NESTED_PARTIALS)
261261
262+ NAN_PARTIALS = Partials{N,float(V)}(map(x -> oftype(float(x), NaN ), PARTIALS. values))
263+
262264 @test (FDNUM == Dual{TestTag}(PRIMAL, PARTIALS2)) == (PARTIALS == PARTIALS2)
263265 @test isequal(FDNUM, Dual{TestTag}(PRIMAL, PARTIALS2)) == (PARTIALS == PARTIALS2)
264266 @test isequal(NESTED_FDNUM, Dual{TestTag}(Dual{TestTag}(PRIMAL, M_PARTIALS2), NESTED_PARTIALS2)) == ((M_PARTIALS == M_PARTIALS2) && (NESTED_PARTIALS == NESTED_PARTIALS2))
@@ -276,10 +278,17 @@ ForwardDiff.:≺(::Type{OuterTestTag}, ::Type{TestTag}) = false
276278 @test NESTED_FDNUM != NESTED_FDNUM2
277279 end
278280
281+ @test (Dual{TestTag}(PRIMAL, NAN_PARTIALS) == Dual{TestTag}(PRIMAL, NAN_PARTIALS)) === (N == 0 )
282+ @test isequal(Dual{TestTag}(PRIMAL, NAN_PARTIALS), Dual{TestTag}(PRIMAL, NAN_PARTIALS))
283+
279284 @test isless(Dual{TestTag}(1 , PARTIALS), Dual{TestTag}(2 , PARTIALS2))
280285 @test isless(Dual{TestTag}(1 , PARTIALS), Dual{TestTag}(1 , PARTIALS2)) === isless(PARTIALS, PARTIALS2)
281286 @test ! (isless(Dual{TestTag}(1 , PARTIALS), Dual{TestTag}(1 , PARTIALS)))
282287 @test ! (isless(Dual{TestTag}(2 , PARTIALS), Dual{TestTag}(1 , PARTIALS2)))
288+ @test isless(Dual{TestTag}(1 , PARTIALS), Dual{TestTag}(2 , NAN_PARTIALS))
289+ @test isless(Dual{TestTag}(1 , PARTIALS), Dual{TestTag}(1 , NAN_PARTIALS)) === (N > 0 )
290+ @test ! isless(Dual{TestTag}(1 , NAN_PARTIALS), Dual{TestTag}(1 , PARTIALS))
291+ @test ! (isless(Dual{TestTag}(2 , PARTIALS), Dual{TestTag}(1 , NAN_PARTIALS)))
283292
284293 @test isless(Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS), Dual{TestTag}(Dual{TestTag}(2 , M_PARTIALS2), NESTED_PARTIALS2))
285294 @test isless(Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS), Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS2)) === isless(NESTED_PARTIALS, NESTED_PARTIALS2)
@@ -290,6 +299,10 @@ ForwardDiff.:≺(::Type{OuterTestTag}, ::Type{TestTag}) = false
290299 @test (Dual{TestTag}(1 , PARTIALS) < Dual{TestTag}(1 , PARTIALS2)) === (PARTIALS < PARTIALS2)
291300 @test ! (Dual{TestTag}(1 , PARTIALS) < Dual{TestTag}(1 , PARTIALS))
292301 @test ! (Dual{TestTag}(2 , PARTIALS) < Dual{TestTag}(1 , PARTIALS2))
302+ @test Dual{TestTag}(1 , PARTIALS) < Dual{TestTag}(2 , NAN_PARTIALS)
303+ @test ! (Dual{TestTag}(1 , PARTIALS) < Dual{TestTag}(1 , NAN_PARTIALS))
304+ @test ! (Dual{TestTag}(1 , NAN_PARTIALS) < Dual{TestTag}(1 , PARTIALS))
305+ @test ! (Dual{TestTag}(2 , PARTIALS) < Dual{TestTag}(1 , NAN_PARTIALS))
293306
294307 @test Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS) < Dual{TestTag}(Dual{TestTag}(2 , M_PARTIALS2), NESTED_PARTIALS2)
295308 @test (Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS) < Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS2)) === (NESTED_PARTIALS < NESTED_PARTIALS2)
@@ -300,6 +313,10 @@ ForwardDiff.:≺(::Type{OuterTestTag}, ::Type{TestTag}) = false
300313 @test (Dual{TestTag}(1 , PARTIALS) <= Dual{TestTag}(1 , PARTIALS2)) === (PARTIALS <= PARTIALS2)
301314 @test Dual{TestTag}(1 , PARTIALS) <= Dual{TestTag}(1 , PARTIALS)
302315 @test ! (Dual{TestTag}(2 , PARTIALS) <= Dual{TestTag}(1 , PARTIALS2))
316+ @test Dual{TestTag}(1 , PARTIALS) <= Dual{TestTag}(2 , NAN_PARTIALS)
317+ @test (Dual{TestTag}(1 , PARTIALS) <= Dual{TestTag}(1 , NAN_PARTIALS)) === (N == 0 )
318+ @test (Dual{TestTag}(1 , NAN_PARTIALS) <= Dual{TestTag}(1 , PARTIALS)) === (N == 0 )
319+ @test ! (Dual{TestTag}(2 , PARTIALS) <= Dual{TestTag}(1 , NAN_PARTIALS))
303320
304321 @test Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS) <= Dual{TestTag}(Dual{TestTag}(2 , M_PARTIALS2), NESTED_PARTIALS2)
305322 @test (Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS) <= Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS2)) === (NESTED_PARTIALS <= NESTED_PARTIALS2)
@@ -310,6 +327,10 @@ ForwardDiff.:≺(::Type{OuterTestTag}, ::Type{TestTag}) = false
310327 @test (Dual{TestTag}(1 , PARTIALS) > Dual{TestTag}(1 , PARTIALS2)) === (PARTIALS > PARTIALS2)
311328 @test ! (Dual{TestTag}(1 , PARTIALS) > Dual{TestTag}(1 , PARTIALS))
312329 @test ! (Dual{TestTag}(1 , PARTIALS) > Dual{TestTag}(2 , PARTIALS2))
330+ @test ! (Dual{TestTag}(1 , PARTIALS) > Dual{TestTag}(2 , NAN_PARTIALS))
331+ @test ! (Dual{TestTag}(1 , PARTIALS) > Dual{TestTag}(1 , NAN_PARTIALS))
332+ @test ! (Dual{TestTag}(1 , NAN_PARTIALS) > Dual{TestTag}(1 , PARTIALS))
333+ @test Dual{TestTag}(2 , PARTIALS) > Dual{TestTag}(1 , NAN_PARTIALS)
313334
314335 @test Dual{TestTag}(Dual{TestTag}(2 , M_PARTIALS), NESTED_PARTIALS) > Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS2), NESTED_PARTIALS2)
315336 @test (Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS) > Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS2)) === (NESTED_PARTIALS > NESTED_PARTIALS2)
@@ -320,6 +341,10 @@ ForwardDiff.:≺(::Type{OuterTestTag}, ::Type{TestTag}) = false
320341 @test (Dual{TestTag}(1 , PARTIALS) >= Dual{TestTag}(1 , PARTIALS2)) === (PARTIALS >= PARTIALS2)
321342 @test Dual{TestTag}(1 , PARTIALS) >= Dual{TestTag}(1 , PARTIALS)
322343 @test ! (Dual{TestTag}(1 , PARTIALS) >= Dual{TestTag}(2 , PARTIALS2))
344+ @test ! (Dual{TestTag}(1 , PARTIALS) >= Dual{TestTag}(2 , NAN_PARTIALS))
345+ @test ((Dual{TestTag}(1 , PARTIALS) >= Dual{TestTag}(1 , NAN_PARTIALS))) === (N == 0 )
346+ @test ((Dual{TestTag}(1 , NAN_PARTIALS) >= Dual{TestTag}(1 , PARTIALS))) === (N == 0 )
347+ @test Dual{TestTag}(2 , PARTIALS) >= Dual{TestTag}(1 , NAN_PARTIALS)
323348
324349 @test Dual{TestTag}(Dual{TestTag}(2 , M_PARTIALS), NESTED_PARTIALS) >= Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS2), NESTED_PARTIALS2)
325350 @test (Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS) >= Dual{TestTag}(Dual{TestTag}(1 , M_PARTIALS), NESTED_PARTIALS2)) === (NESTED_PARTIALS >= NESTED_PARTIALS2)
0 commit comments