|
268 | 268 |
|
269 | 269 | # parsing complex numbers (#22250) |
270 | 270 | @testset "complex parsing" begin |
271 | | - for r in (1,0,-1), i in (1,0,-1), sign in ('-','+'), Im in ("i","j","im") |
272 | | - for s1 in (""," "), s2 in (""," "), s3 in (""," "), s4 in (""," ") |
| 271 | + for sign in ('-','+'), Im in ("i","j","im"), s1 in (""," "), s2 in (""," "), s3 in (""," "), s4 in (""," ") |
| 272 | + for r in (1,0,-1), i in (1,0,-1), |
273 | 273 | n = Complex(r, sign == '+' ? i : -i) |
274 | 274 | s = string(s1, r, s2, sign, s3, i, Im, s4) |
275 | 275 | @test n === parse(Complex{Int}, s) |
|
283 | 283 | @test n*parse(T,"1e-3") == parse(Complex{T}, string(s1, r, "e-3", s2, sign, s3, i, "e-3", Im, s4)) |
284 | 284 | end |
285 | 285 | end |
| 286 | + for r in (-1.0,-1e-9,Inf,-Inf,NaN), i in (-1.0,-1e-9,Inf,NaN) |
| 287 | + n = Complex(r, sign == '+' ? i : -i) |
| 288 | + s = lowercase(string(s1, r, s2, sign, s3, i, Im, s4)) |
| 289 | + @test n === parse(ComplexF64, s) |
| 290 | + @test Complex(r) === parse(ComplexF64, string(s1, r, s2)) |
| 291 | + @test Complex(0,i) === parse(ComplexF64, string(s3, i, Im, s4)) |
| 292 | + end |
286 | 293 | end |
287 | 294 | @test parse(Complex{Float16}, "3.3+4i") === Complex{Float16}(3.3+4im) |
288 | 295 | @test parse(Complex{Int}, SubString("xxxxxx1+2imxxxx", 7, 10)) === 1+2im |
|
0 commit comments