reduce tests
julia> A = Tensor(Dense(SparseList(Element(0.0))), [0.0 0.0 4.4; 1.1 0.0 0.0; 2.2 0.0 5.5; 3.3 0.0 0.0])
4×3 Tensor{DenseLevel{Int64, SparseListLevel{Int64, Vector{Int64}, Vector{Int64}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}}}:
 0.0  0.0  4.4
 1.1  0.0  0.0
 2.2  0.0  5.5
 3.3  0.0  0.0
julia> reduce(+, A, dims = (1,))
3 Tensor{DenseLevel{Int64, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}}:
 6.6
 0.0
 9.9
julia> reduce(+, A, dims = 1)
3 Tensor{DenseLevel{Int64, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}}:
 6.6
 0.0
 9.9
julia> reduce(+, A, dims = (2,))
4 Tensor{SparseDictLevel{Int64, Vector{Int64}, Vector{Int64}, Vector{Int64}, Dict{Tuple{Int64, Int64}, Int64}, Vector{Int64}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}}:
 4.4
 1.1
 7.7
 3.3
julia> reduce(+, A, dims = 2)
4 Tensor{SparseDictLevel{Int64, Vector{Int64}, Vector{Int64}, Vector{Int64}, Dict{Tuple{Int64, Int64}, Int64}, Vector{Int64}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}}:
 4.4
 1.1
 7.7
 3.3
julia> reduce(+, A, dims = (1, 2))
 Tensor{ElementLevel{0.0, Float64, Int64, Vector{Float64}}}:
16.5
julia> reduce(+, A, dims = (:))
16.5

