@@ -164,11 +164,11 @@ using FastTransforms, Test
164164 gcopy = copy (g)
165165 P = @inferred (plan_chebyshevutransform (f))
166166 @test P* f ≈ g
167- @test f == fcopy
167+ @test f ≈ fcopy
168168 @test_throws ArgumentError P * T[1 ,2 ]
169169 P = @inferred (plan_chebyshevutransform (f, 1 : 1 ))
170170 @test P* f ≈ g
171- @test f == fcopy
171+ @test f ≈ fcopy
172172 @test_throws ArgumentError P * T[1 ,2 ]
173173
174174 P = @inferred (plan_chebyshevutransform! (f))
@@ -364,6 +364,47 @@ using FastTransforms, Test
364364 @test ichebyshevtransform (chebyshevtransform (X)) ≈ X
365365 @test chebyshevtransform (ichebyshevtransform (X)) ≈ X
366366 end
367+
368+ @testset " chebyshevutransform" begin
369+ for k = axes (X,2 ), j = axes (X,3 ) X̃[:,k,j] = chebyshevutransform (X[:,k,j]) end
370+ @test @inferred (chebyshevutransform (X,1 )) ≈ @inferred (chebyshevutransform! (copy (X),1 )) ≈ X̃
371+ for k = axes (X,1 ), j = axes (X,3 ) X̃[k,:,j] = chebyshevutransform (X[k,:,j]) end
372+ @test chebyshevutransform (X,2 ) ≈ chebyshevutransform! (copy (X),2 ) ≈ X̃
373+ for k = axes (X,1 ), j = axes (X,2 ) X̃[k,j,:] = chebyshevutransform (X[k,j,:]) end
374+ @test chebyshevutransform (X,3 ) ≈ chebyshevutransform! (copy (X),3 ) ≈ X̃
375+
376+ for k = axes (X,2 ), j = axes (X,3 ) X̃[:,k,j] = chebyshevutransform (X[:,k,j],Val (2 )) end
377+ @test @inferred (chebyshevutransform (X,Val (2 ),1 )) ≈ @inferred (chebyshevutransform! (copy (X),Val (2 ),1 )) ≈ X̃
378+ for k = axes (X,1 ), j = axes (X,3 ) X̃[k,:,j] = chebyshevutransform (X[k,:,j],Val (2 )) end
379+ @test chebyshevutransform (X,Val (2 ),2 ) ≈ chebyshevutransform! (copy (X),Val (2 ),2 ) ≈ X̃
380+ for k = axes (X,1 ), j = axes (X,2 ) X̃[k,j,:] = chebyshevutransform (X[k,j,:],Val (2 )) end
381+ @test chebyshevutransform (X,Val (2 ),3 ) ≈ chebyshevutransform! (copy (X),Val (2 ),3 ) ≈ X̃
382+
383+ @test @inferred (chebyshevutransform (X)) ≈ @inferred (chebyshevutransform! (copy (X))) ≈ chebyshevutransform (chebyshevutransform (chebyshevutransform (X,1 ),2 ),3 )
384+ @test @inferred (chebyshevutransform (X,Val (2 ))) ≈ @inferred (chebyshevutransform! (copy (X),Val (2 ))) ≈ chebyshevutransform (chebyshevutransform (chebyshevutransform (X,Val (2 ),1 ),Val (2 ),2 ),Val (2 ),3 )
385+ end
386+
387+ @testset " ichebyshevutransform" begin
388+ for k = axes (X,2 ), j = axes (X,3 ) X̃[:,k,j] = ichebyshevutransform (X[:,k,j]) end
389+ @test @inferred (ichebyshevutransform (X,1 )) ≈ @inferred (ichebyshevutransform! (copy (X),1 )) ≈ X̃
390+ for k = axes (X,1 ), j = axes (X,3 ) X̃[k,:,j] = ichebyshevutransform (X[k,:,j]) end
391+ @test ichebyshevutransform (X,2 ) ≈ ichebyshevutransform! (copy (X),2 ) ≈ X̃
392+ for k = axes (X,1 ), j = axes (X,2 ) X̃[k,j,:] = ichebyshevutransform (X[k,j,:]) end
393+ @test ichebyshevutransform (X,3 ) ≈ ichebyshevutransform! (copy (X),3 ) ≈ X̃
394+
395+ for k = axes (X,2 ), j = axes (X,3 ) X̃[:,k,j] = ichebyshevutransform (X[:,k,j],Val (2 )) end
396+ @test @inferred (ichebyshevutransform (X,Val (2 ),1 )) ≈ @inferred (ichebyshevutransform! (copy (X),Val (2 ),1 )) ≈ X̃
397+ for k = axes (X,1 ), j = axes (X,3 ) X̃[k,:,j] = ichebyshevutransform (X[k,:,j],Val (2 )) end
398+ @test ichebyshevutransform (X,Val (2 ),2 ) ≈ ichebyshevutransform! (copy (X),Val (2 ),2 ) ≈ X̃
399+ for k = axes (X,1 ), j = axes (X,2 ) X̃[k,j,:] = ichebyshevutransform (X[k,j,:],Val (2 )) end
400+ @test ichebyshevutransform (X,Val (2 ),3 ) ≈ ichebyshevutransform! (copy (X),Val (2 ),3 ) ≈ X̃
401+
402+ @test @inferred (ichebyshevutransform (X)) ≈ @inferred (ichebyshevutransform! (copy (X))) ≈ ichebyshevutransform (ichebyshevutransform (ichebyshevutransform (X,1 ),2 ),3 )
403+ @test @inferred (ichebyshevutransform (X,Val (2 ))) ≈ @inferred (ichebyshevutransform! (copy (X),Val (2 ))) ≈ ichebyshevutransform (ichebyshevutransform (ichebyshevutransform (X,Val (2 ),1 ),Val (2 ),2 ),Val (2 ),3 )
404+
405+ @test ichebyshevutransform (chebyshevutransform (X)) ≈ X
406+ @test chebyshevutransform (ichebyshevutransform (X)) ≈ X
407+ end
367408
368409 X = randn (1 ,1 ,1 )
369410 @test chebyshevtransform! (copy (X), Val (1 )) == ichebyshevtransform! (copy (X), Val (1 )) == X
0 commit comments