Skip to content

Commit 8580d78

Browse files
authored
Fix ambiguities for isless with RealInfinity, Infinity, and InfiniteC… (#51)
* Fix ambiguities for isless with RealInfinity, Infinity, and InfiniteCardinality * Update cardinality.jl
1 parent 75c14ae commit 8580d78

File tree

4 files changed

+24
-2
lines changed

4 files changed

+24
-2
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "Infinities"
22
uuid = "e1ba4f0e-776d-440f-acd9-e1d2e9742647"
33
authors = ["Sheehan Olver <[email protected]>"]
4-
version = "0.1.7"
4+
version = "0.1.8"
55

66
[compat]
77
Aqua = "0.8"

src/Infinities.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ end
178178
<(s::RealInfinity, ::Infinity) = signbit(s)
179179
<(::Infinity, ::RealInfinity) = false
180180

181-
181+
isless(x::RealInfinity, ::Infinity) = isless(x, RealInfinity())
182+
isless(::Infinity, x::RealInfinity) = isless(RealInfinity(), x)
182183

183184

184185
function -(::Infinity, y::RealInfinity)

src/cardinality.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ isless(x::AbstractFloat, ::InfiniteCardinal{0}) = isfinite(x)
7070
isless(x::AbstractFloat, ::InfiniteCardinal) = true
7171
isless(::InfiniteCardinal, y::Real) = false
7272
isless(x::InfiniteCardinal, y::AbstractFloat) = false
73+
isless(x::RealInfinity, ::InfiniteCardinal{0}) = isless(x, ∞)
74+
isless(::InfiniteCardinal{0}, x::RealInfinity) = isless(∞, x)
75+
isless(x::RealInfinity, ::InfiniteCardinal) = true
76+
isless(::InfiniteCardinal, x::RealInfinity) = false
77+
isless(x::Infinity, ::InfiniteCardinal{0}) = isless(x, ∞)
78+
isless(::InfiniteCardinal{0}, x::Infinity) = isless(∞, x)
79+
isless(x::Infinity, ::InfiniteCardinal) = true
80+
isless(::InfiniteCardinal, x::Infinity) = false
7381

7482
@generated <(::InfiniteCardinal{N}, ::InfiniteCardinal{M}) where {N,M} = :($(N < M))
7583
@generated (::InfiniteCardinal{N}, ::InfiniteCardinal{M}) where {N,M} = :($(N M))

test/test_cardinality.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,19 @@ using Infinities, Base64, Base.Checked, Test
3333
@test !isless(Inf, ℵ₀) && !isless(ℵ₀, Inf)
3434
@test isless(5, ℵ₀) && !isless(ℵ₀, 5)
3535
@test isless(5, ℵ₁) && !isless(ℵ₁, 5)
36+
@test !isless(RealInfinity(), ℵ₀)
37+
@test isless(-RealInfinity(), ℵ₀)
38+
@test !isless(ℵ₀, RealInfinity())
39+
@test !isless(ℵ₀, -RealInfinity())
40+
@test isless(RealInfinity(), ℵ₁)
41+
@test isless(-RealInfinity(), ℵ₁)
42+
@test !isless(ℵ₁, RealInfinity())
43+
@test !isless(ℵ₁, -RealInfinity())
44+
@test !isless(∞, ℵ₀)
45+
@test !isless(ℵ₀, ∞)
46+
@test isless(∞, ℵ₁)
47+
@test !isless(ℵ₁, ∞)
48+
3649

3750
@test !(ℵ₀ < ℵ₀) && !(ℵ₀ > ℵ₀)
3851
@test ℵ₀ ℵ₀ && ℵ₀ ℵ₀

0 commit comments

Comments
 (0)