@@ -18,6 +18,13 @@ module TestOperators
1818 Y = NullableArray (B, M)
1919
2020 srand (1 )
21+
22+ if isdefined (Base, :fieldname ) && Base. fieldname (Nullable, 1 ) == :hasvalue # Julia 0.6
23+ _Nullable (x, hasvalue:: Bool ) = Nullable (x, hasvalue)
24+ else
25+ _Nullable (x, hasvalue:: Bool ) = Nullable (x, ! hasvalue)
26+ end
27+
2128 ensure_neg (x:: Unsigned ) = - convert (Signed, x)
2229 ensure_neg (x:: Any ) = - abs (x)
2330
@@ -43,7 +50,7 @@ module TestOperators
4350 @test op (Nullable (u0)) === Nullable (op (u0))
4451 @test op (Nullable (u1)) === Nullable (op (u1))
4552 @test op (Nullable (u2)) === Nullable (op (u2))
46- @test op (Nullable (u0, true )) === Nullable (op (u0), true )
53+ @test op (_Nullable (u0, false )) === _Nullable (op (u0), false )
4754 end
4855
4956 for u in (u0, u1, u2), v in (v0, v1, v2)
@@ -54,17 +61,17 @@ module TestOperators
5461 (T <: AbstractFloat || S <: AbstractFloat ) && op in (& , | , >> , << , >>> ) && continue
5562
5663 @test op (Nullable (u), Nullable (v)) === Nullable (op (u, v))
57- @test op (Nullable (u, true ), Nullable (v, true )) === Nullable (op (u, v), true )
58- @test op (Nullable (u), Nullable (v, true )) === Nullable (op (u, v), true )
59- @test op (Nullable (u, true ), Nullable (v)) === Nullable (op (u, v), true )
64+ @test op (_Nullable (u, false ), _Nullable (v, false )) === _Nullable (op (u, v), false )
65+ @test op (Nullable (u), _Nullable (v, false )) === _Nullable (op (u, v), false )
66+ @test op (_Nullable (u, false ), Nullable (v)) === _Nullable (op (u, v), false )
6067 end
6168 end
6269 end
6370
6471 @test ! Nullable (true ) === Nullable (false )
6572 @test ! Nullable (false ) === Nullable (true )
66- @test ! (Nullable (true , true )) === Nullable (false , true )
67- @test ! (Nullable (false , true )) === Nullable (true , true )
73+ @test ! (_Nullable (true , false )) === _Nullable (false , false )
74+ @test ! (_Nullable (false , false )) === _Nullable (true , false )
6875 end
6976
7077 # test all types and operators (including null-unsafe ones)
@@ -91,11 +98,11 @@ module TestOperators
9198 @test isa (x, Nullable{R}) && isequal (x, Nullable (op (v1)))
9299 x = op (Nullable (v2))
93100 @test isa (x, Nullable{R}) && isequal (x, Nullable (op (v2)))
94- x = op (Nullable (v0, true ))
101+ x = op (_Nullable (v0, false ))
95102 @test isa (x, Nullable{R}) && isnull (x)
96- x = op (Nullable (v1, true ))
103+ x = op (_Nullable (v1, false ))
97104 @test isa (x, Nullable{R}) && isnull (x)
98- x = op (Nullable (v2, true ))
105+ x = op (_Nullable (v2, false ))
99106 @test isa (x, Nullable{R}) && isnull (x)
100107 x = op (Nullable {R} ())
101108 @test isa (x, Nullable{R}) && isnull (x)
@@ -114,11 +121,11 @@ module TestOperators
114121 @test isa (x, Nullable{R}) && isequal (x, Nullable (sqrt (v1)))
115122 x = sqrt (Nullable (abs (v2)))
116123 @test isa (x, Nullable{R}) && isequal (x, Nullable (sqrt (abs (v2))))
117- x = sqrt (Nullable (v0, true ))
124+ x = sqrt (_Nullable (v0, false ))
118125 @test isa (x, Nullable{R}) && isnull (x)
119- x = sqrt (Nullable (ensure_neg (v1), true ))
126+ x = sqrt (_Nullable (ensure_neg (v1), false ))
120127 @test isa (x, Nullable{R}) && isnull (x)
121- x = sqrt (Nullable (ensure_neg (v2), true ))
128+ x = sqrt (_Nullable (ensure_neg (v2), false ))
122129 @test isa (x, Nullable{R}) && isnull (x)
123130 x = sqrt (Nullable {R} ())
124131 @test isa (x, Nullable{R}) && isnull (x)
@@ -143,16 +150,16 @@ module TestOperators
143150 @test isequal (op (Nullable (u), Nullable (v)), Nullable (op (u, v)))
144151 end
145152 R = Base. promote_op (op, S, T)
146- x = op (Nullable (u, true ), Nullable (v, true ))
153+ x = op (_Nullable (u, false ), _Nullable (v, false ))
147154 @test isa (x, Nullable{R}) && isnull (x)
148- x = op (Nullable (u), Nullable (v, true ))
155+ x = op (Nullable (u), _Nullable (v, false ))
149156 @test isa (x, Nullable{R}) && isnull (x)
150- x = op (Nullable (u, true ), Nullable (v))
157+ x = op (_Nullable (u, false ), Nullable (v))
151158 @test isa (x, Nullable{R}) && isnull (x)
152159
153- x = op (Nullable (u, true ), Nullable ())
160+ x = op (_Nullable (u, false ), Nullable ())
154161 @test isa (x, Nullable{S}) && isnull (x)
155- x = op (Nullable (), Nullable (u, true ))
162+ x = op (Nullable (), _Nullable (u, false ))
156163 @test isa (x, Nullable{S}) && isnull (x)
157164 x = op (Nullable (), Nullable ())
158165 @test isa (x, Nullable{Union{}}) && isnull (x)
@@ -165,16 +172,16 @@ module TestOperators
165172 end
166173 @test isequal (Nullable (u)^ Nullable (one (T)+ one (T)), Nullable (u^ (one (T)+ one (T))))
167174 R = Base. promote_op (^ , S, T)
168- x = Nullable (u, true ) ^ Nullable (- abs (v), true )
175+ x = _Nullable (u, false ) ^ _Nullable (- abs (v), false )
169176 @test isnull (x) && eltype (x) === R
170- x = Nullable (u, false ) ^ Nullable (- abs (v), true )
177+ x = _Nullable (u, true ) ^ _Nullable (- abs (v), false )
171178 @test isnull (x) && eltype (x) === R
172- x = Nullable (u, true ) ^ Nullable (- abs (v), false )
179+ x = _Nullable (u, false ) ^ _Nullable (- abs (v), true )
173180 @test isnull (x) && eltype (x) === R
174181
175- x = Nullable (u, true )^ Nullable ()
182+ x = Nullable (u, false )^ Nullable ()
176183 @test isa (x, Nullable{S}) && isnull (x)
177- x = Nullable ()^ Nullable (u, true )
184+ x = Nullable ()^ _Nullable (u, false )
178185 @test isa (x, Nullable{S}) && isnull (x)
179186 x = Nullable ()^ Nullable ()
180187 @test isa (x, Nullable{Union{}}) && isnull (x)
@@ -187,16 +194,16 @@ module TestOperators
187194 @test isequal (op (Nullable (u), Nullable (v)), Nullable (op (u, v)))
188195 end
189196 R = Base. promote_op (op, S, T)
190- x = op (Nullable (u, true ), Nullable (v, true ))
197+ x = op (_Nullable (u, false ), _Nullable (v, false ))
191198 @test isnull (x) && eltype (x) === R
192- x = op (Nullable (u, false ), Nullable (v, true ))
199+ x = op (_Nullable (u, true ), _Nullable (v, false ))
193200 @test isnull (x) && eltype (x) === R
194- x = op (Nullable (u, true ), Nullable (v, false ))
201+ x = op (_Nullable (u, false ), _Nullable (v, true ))
195202 @test isnull (x) && eltype (x) === R
196203
197- x = op (Nullable (u, true ), Nullable ())
204+ x = op (Nullable (u, false ), Nullable ())
198205 @test isa (x, Nullable{S}) && isnull (x)
199- x = op (Nullable (), Nullable (u, true ))
206+ x = op (Nullable (), _Nullable (u, false ))
200207 @test isa (x, Nullable{S}) && isnull (x)
201208 x = op (Nullable (), Nullable ())
202209 @test isa (x, Nullable{Union{}}) && isnull (x)
@@ -205,9 +212,9 @@ module TestOperators
205212 # isless
206213 @test isless (Nullable (u), Nullable (v)) === isless (u, v)
207214
208- @test isless (Nullable (u), Nullable (v, true )) === true
209- @test isless (Nullable (u, true ), Nullable (v)) === false
210- @test isless (Nullable (u, true ), Nullable (v, true )) === false
215+ @test isless (Nullable (u), _Nullable (v, false )) === true
216+ @test isless (_Nullable (u, false ), Nullable (v)) === false
217+ @test isless (_Nullable (u, false ), _Nullable (v, false )) === false
211218
212219 @test isless (Nullable (u), Nullable ()) === true
213220 @test isless (Nullable (), Nullable (v)) === false
0 commit comments