|
579 | 579 | @test y.refs == x.refs
|
580 | 580 | @test index(y.pool) == index(x.pool)
|
581 | 581 | @test levels(y) == levels(x)
|
582 |
| - @test (y.refs === x.refs) == (eltype(x.refs) === eltype(y.refs)) |
| 582 | + @test y.refs !== x.refs |
583 | 583 | @test y.pool !== x.pool
|
584 | 584 | end
|
585 | 585 | for y in (categorical(x),
|
|
591 | 591 | @test y.refs == x.refs
|
592 | 592 | @test index(y.pool) == index(x.pool)
|
593 | 593 | @test levels(y) == levels(x)
|
594 |
| - @test (y.refs === x.refs) == (eltype(x.refs) === eltype(y.refs)) |
| 594 | + @test y.refs !== x.refs |
595 | 595 | @test y.pool !== x.pool
|
596 | 596 | end
|
597 | 597 | for y in (CategoricalArray(x, ordered=ordered),
|
|
611 | 611 | @test y.refs == x.refs
|
612 | 612 | @test index(y.pool) == index(x.pool)
|
613 | 613 | @test levels(y) == levels(x)
|
614 |
| - @test (y.refs === x.refs) == (eltype(x.refs) === eltype(y.refs)) |
| 614 | + @test y.refs !== x.refs |
615 | 615 | @test y.pool !== x.pool
|
616 | 616 | end
|
617 | 617 | for y in (categorical(x, ordered=ordered),
|
|
623 | 623 | @test y.refs == x.refs
|
624 | 624 | @test index(y.pool) == index(x.pool)
|
625 | 625 | @test levels(y) == levels(x)
|
626 |
| - @test (y.refs === x.refs) == (eltype(x.refs) === eltype(y.refs)) |
| 626 | + @test y.refs !== x.refs |
627 | 627 | @test y.pool !== x.pool
|
628 | 628 | end
|
629 | 629 | for y in (convert(CategoricalArray, x),
|
|
747 | 747 | @test vcat(z1, z2) isa CategoricalVector{Float64}
|
748 | 748 | end
|
749 | 749 |
|
| 750 | +@testset "categorical() makes a copy of pool and refs" begin |
| 751 | + xs = Any[Int8[1:10;], [Int8[1:10;]; missing]] |
| 752 | + for x in xs, o1 in [true, false], o2 in [true, false], T in [Int64, Int8] |
| 753 | + y = categorical(x, ordered=o1) |
| 754 | + if x === xs[1] |
| 755 | + z = CategoricalArray{T}(y, ordered=o2) |
| 756 | + else |
| 757 | + z = CategoricalArray{Union{T, Missing}}(y, ordered=o2) |
| 758 | + end |
| 759 | + @test z.refs !== y.refs |
| 760 | + @test z.pool !== y.pool |
| 761 | + end |
| 762 | +end |
| 763 | + |
750 | 764 | end
|
0 commit comments