11using Test, InMemoryDatasets, PooledArrays, Random, CategoricalArrays
22
3- @testset " make_unique - from DataFrames" begin
3+ @testset " make_unique - from DataFrames" begin
44 @test IMD. make_unique ([:x , :x , :x_1 , :x2 ], makeunique= true ) == [:x , :x_2 , :x_1 , :x2 ]
55 @test_throws ArgumentError IMD. make_unique ([:x , :x , :x_1 , :x2 ], makeunique= false )
66 @test IMD. make_unique ([:x , :x_1 , :x2 ], makeunique= false ) == [:x , :x_1 , :x2 ]
7- @test IMD. make_unique ([:x , :x , :x_3 , :x , :y , :x , :y , :x_1 ], makeunique = true ) == [:x , :x_2 , :x_3 , :x_4 , :y , :x_5 , :y_1 , :x_1 ]
7+ @test IMD. make_unique ([:x , :x , :x_3 , :x , :y , :x , :y , :x_1 ], makeunique= true ) == [:x , :x_2 , :x_3 , :x_4 , :y , :x_5 , :y_1 , :x_1 ]
88end
99
1010@testset " repeat count- from DataFrames" begin
1111 ds = Dataset (a= 1 : 2 , b= 3 : 4 )
1212 ref = Dataset (a= repeat (1 : 2 , 2 ),
13- b= repeat (3 : 4 , 2 ))
13+ b= repeat (3 : 4 , 2 ))
1414 @test repeat (ds, 2 ) == ref
1515 @test repeat (view (ds, 1 : 2 , :), 2 ) == ref
1616
2121@testset " repeat inner_outer- from DataFrames" begin
2222 ds = Dataset (a= 1 : 2 , b= 3 : 4 )
2323 ref = Dataset (a= repeat (1 : 2 , inner= 2 , outer= 3 ),
24- b= repeat (3 : 4 , inner= 2 , outer= 3 ))
24+ b= repeat (3 : 4 , inner= 2 , outer= 3 ))
2525 @test repeat (ds, inner= 2 , outer= 3 ) == ref
2626 @test repeat (view (ds, 1 : 2 , :), inner= 2 , outer= 3 ) == ref
2727
28- @test_throws ArgumentError repeat (ds, inner= 2 , outer= 0 )
28+ @test_throws ArgumentError repeat (ds, inner= 2 , outer= 0 )
2929 @test_throws ArgumentError repeat (ds, inner= 0 , outer= 3 )
3030 @test_throws ArgumentError repeat (ds, inner= 2 , outer= false )
3131 @test_throws ArgumentError repeat (ds, inner= false , outer= 3 )
3636@testset " repeat! count- from DataFrames" begin
3737 ds = Dataset (a= 1 : 2 , b= 3 : 4 )
3838 ref = Dataset (a= repeat (1 : 2 , 2 ),
39- b= repeat (3 : 4 , 2 ))
39+ b= repeat (3 : 4 , 2 ))
4040 a = ds. a
4141 b = ds. b
4242 repeat! (ds, 2 )
6060@testset " repeat! inner_outer- from DataFrames" begin
6161 ds = Dataset (a= 1 : 2 , b= 3 : 4 )
6262 ref = Dataset (a= repeat (1 : 2 , inner= 2 , outer= 3 ),
63- b= repeat (3 : 4 , inner= 2 , outer= 3 ))
63+ b= repeat (3 : 4 , inner= 2 , outer= 3 ))
6464 a = ds. a
6565 b = ds. b
66- repeat! (ds, inner = 2 , outer = 3 )
66+ repeat! (ds, inner= 2 , outer= 3 )
6767 @test ds == ref
6868 @test a == 1 : 2
6969 @test b == 3 : 4
7777 end
7878
7979 ds = Dataset (a= 1 : 2 , b= 3 : 4 )
80- @test_throws ArgumentError repeat (ds, inner = 2 , outer = - 1 )
81- @test_throws ArgumentError repeat (ds, inner = - 1 , outer = 3 )
80+ @test_throws ArgumentError repeat (ds, inner= 2 , outer= - 1 )
81+ @test_throws ArgumentError repeat (ds, inner= - 1 , outer= 3 )
8282 @test ds == Dataset (a= 1 : 2 , b= 3 : 4 )
8383
84- @test_throws MethodError repeat! (view (ds, 1 : 2 , :), inner = 2 , outer = 3 )
84+ @test_throws MethodError repeat! (view (ds, 1 : 2 , :), inner= 2 , outer= 3 )
8585end
8686
8787@testset " funname- from DataFrames" begin
9090end
9191
9292@testset " repeat - passing `freq`" begin
93- ds = Dataset (x1 = [1 ,2 , missing , 0 ], x2 = PooledArray ([1 ,3 , 1 , 2 ]), x3 = [1.2 ,1.2 ,1.1 ,- 10.0 ], x4 = [2 ,1 , 1 , 1 ])
94- @test repeat (ds, freq = 2 ) == ds[[1 ,2 , 2 , 2 , 3 , 4 , 4 ], :]
95- @test repeat (ds, freq = :x2 ) == ds[[1 ,2 , 2 , 2 , 3 , 4 , 4 ], :]
96- @test repeat (ds, freq = :x4 ) == ds[[1 ,1 , 2 , 3 , 4 ], :]
97- @test repeat (ds, freq = ds[! , :x4 ]) == ds[[1 ,1 , 2 , 3 , 4 ], :]
98- @test repeat (view (ds, :, :), freq = :x4 ) == ds[[1 ,1 , 2 , 3 , 4 ], :]
99- @test repeat (view (ds, :, :), freq = 4 ) == ds[[1 ,1 , 2 , 3 , 4 ], :]
100- @test_throws ArgumentError repeat (ds, freq = :x1 )
101- @test_throws ArgumentError repeat (ds, freq = 3 )
93+ ds = Dataset (x1= [1 , 2 , missing , 0 ], x2= PooledArray ([1 , 3 , 1 , 2 ]), x3= [1.2 , 1.2 , 1.1 , - 10.0 ], x4= [2 , 1 , 1 , 1 ])
94+ @test repeat (ds, freq= 2 ) == ds[[1 , 2 , 2 , 2 , 3 , 4 , 4 ], :]
95+ @test repeat (ds, freq= :x2 ) == ds[[1 , 2 , 2 , 2 , 3 , 4 , 4 ], :]
96+ @test repeat (ds, freq= :x4 ) == ds[[1 , 1 , 2 , 3 , 4 ], :]
97+ @test repeat (ds, freq= ds[! , :x4 ]) == ds[[1 , 1 , 2 , 3 , 4 ], :]
98+ @test repeat (view (ds, :, :), freq= :x4 ) == ds[[1 , 1 , 2 , 3 , 4 ], :]
99+ @test repeat (view (ds, :, :), freq= 4 ) == ds[[1 , 1 , 2 , 3 , 4 ], :]
100+ @test_throws ArgumentError repeat (ds, freq= :x1 )
101+ @test_throws ArgumentError repeat (ds, freq= 3 )
102102
103103 repeat! (ds, 1000 )
104- @test repeat (ds, freq = 2 ) == ds[repeat ([1 ,2 , 2 , 2 , 3 , 4 , 4 ], 1000 ), :]
105- @test repeat (ds, freq = :x2 ) == ds[repeat ([1 ,2 , 2 , 2 , 3 , 4 , 4 ], 1000 ), :]
106- @test repeat (ds, freq = :x4 ) == ds[repeat ([1 ,1 , 2 , 3 , 4 ],1000 ), :]
107- @test repeat (ds, freq = ds[! , :x4 ]) == ds[repeat ([1 ,1 , 2 , 3 , 4 ],1000 ), :]
108-
109- ds = Dataset (a = 0 : 2 , b = 2 : 4 )
110- @test repeat (ds, freq = :a ) == Dataset (a = [1 ,2 , 2 ], b = [3 ,4 , 4 ])
111- @test repeat (ds, freq = [2 ,0 , 2 ]) == Dataset (a = [0 ,0 , 2 , 2 ], b= [2 ,2 , 4 , 4 ])
112-
113- @test repeat (ds, freq = [1000 , 1000 , 0 ]) == Dataset (a = [fill (0 ,1000 );fill (1 , 1000 )], b= [fill (2 ,1000 );fill (3 , 1000 )])
114- @test repeat (view (ds,[1 ,2 , 3 ], [1 ,2 ]), freq = [1000 , 1000 , 0 ]) == Dataset (a = [fill (0 ,1000 );fill (1 , 1000 )], b= [fill (2 ,1000 );fill (3 , 1000 )])
115- @test repeat (view (ds,[1 ,2 , 3 ], [1 ,2 ]), freq = [1000 , 1000 , 0 ], view = true ) == Dataset (a = [fill (0 ,1000 );fill (1 , 1000 )], b= [fill (2 ,1000 );fill (3 , 1000 )])
104+ @test repeat (ds, freq= 2 ) == ds[repeat ([1 , 2 , 2 , 2 , 3 , 4 , 4 ], 1000 ), :]
105+ @test repeat (ds, freq= :x2 ) == ds[repeat ([1 , 2 , 2 , 2 , 3 , 4 , 4 ], 1000 ), :]
106+ @test repeat (ds, freq= :x4 ) == ds[repeat ([1 , 1 , 2 , 3 , 4 ], 1000 ), :]
107+ @test repeat (ds, freq= ds[! , :x4 ]) == ds[repeat ([1 , 1 , 2 , 3 , 4 ], 1000 ), :]
108+
109+ ds = Dataset (a= 0 : 2 , b= 2 : 4 )
110+ @test repeat (ds, freq= :a ) == Dataset (a= [1 , 2 , 2 ], b= [3 , 4 , 4 ])
111+ @test repeat (ds, freq= [2 , 0 , 2 ]) == Dataset (a= [0 , 0 , 2 , 2 ], b= [2 , 2 , 4 , 4 ])
112+
113+ @test repeat (ds, freq= [1000 , 1000 , 0 ]) == Dataset (a= [fill (0 , 1000 ); fill (1 , 1000 )], b= [fill (2 , 1000 ); fill (3 , 1000 )])
114+ @test repeat (view (ds, [1 , 2 , 3 ], [1 , 2 ]), freq= [1000 , 1000 , 0 ]) == Dataset (a= [fill (0 , 1000 ); fill (1 , 1000 )], b= [fill (2 , 1000 ); fill (3 , 1000 )])
115+ @test repeat (view (ds, [1 , 2 , 3 ], [1 , 2 ]), freq= [1000 , 1000 , 0 ], view= true ) == Dataset (a= [fill (0 , 1000 ); fill (1 , 1000 )], b= [fill (2 , 1000 ); fill (3 , 1000 )])
116116end
117+
118+ @testset " IMD.hcat! with formats" begin
119+ ds = Dataset (x= [1 , 2 , 3 ], x2= [1 , 8 , - 9 ])
120+ ds2 = Dataset (y= [1 , 1 , 1 ], y2= [1.4 , - 5 , 2.4 ])
121+ setformat! (ds, 2 => isodd)
122+ setformat! (ds2, 2 => abs)
123+ resds = IMD. hcat (ds, ds2)
124+ @test resds == Dataset (x= [1 , 2 , 3 ], x2= [1 , 8 , - 9 ], y= [1 , 1 , 1 ], y2= [1.4 , - 5 , 2.4 ])
125+ @test getformat (resds, 1 ) == identity
126+ @test getformat (resds, 2 ) == isodd
127+ @test getformat (resds, 3 ) == identity
128+ @test getformat (resds, 4 ) == abs
129+
130+ resds = IMD. hcat (ds, view (ds2, :, [2 , 1 ]))
131+ @test resds == Dataset (x= [1 , 2 , 3 ], x2= [1 , 8 , - 9 ], y2= [1.4 , - 5 , 2.4 ], y= [1 , 1 , 1 ])
132+ @test getformat (resds, 1 ) == identity
133+ @test getformat (resds, 2 ) == isodd
134+ @test getformat (resds, 4 ) == identity
135+ @test getformat (resds, 3 ) == abs
136+
137+ IMD. hcat! (ds, view (ds2, :, [2 , 1 ]))
138+ @test ds == Dataset (x= [1 , 2 , 3 ], x2= [1 , 8 , - 9 ], y2= [1.4 , - 5 , 2.4 ], y= [1 , 1 , 1 ])
139+ @test getformat (ds, 1 ) == identity
140+ @test getformat (ds, 2 ) == isodd
141+ @test getformat (ds, 4 ) == identity
142+ @test getformat (ds, 3 ) == abs
143+ end
0 commit comments