@@ -79,3 +79,67 @@ import .Fruit
79
79
@test docstring (Float64) == " Float64"
80
80
@test docstring (Fruit. Banana) == " Banana"
81
81
end
82
+
83
+ @testset " `_density` - helper for predict_scitype fallback" begin
84
+ for T in [Continuous, Count, Textual]
85
+ @test M. _density (AbstractArray{T,3 }) ==
86
+ AbstractArray{Density{T},3 }
87
+ end
88
+
89
+ for T in [Finite,
90
+ Multiclass,
91
+ OrderedFactor,
92
+ Infinite,
93
+ Continuous,
94
+ Count,
95
+ Textual]
96
+ @test M. _density (AbstractVector{<: T }) ==
97
+ AbstractVector{Density{<: T }}
98
+ @test M. _density (Table (T)) == Table (Density{T})
99
+ end
100
+
101
+ for T in [Finite, Multiclass, OrderedFactor]
102
+ @test M. _density (AbstractArray{<: T{2} ,3 }) ==
103
+ AbstractArray{Density{<: T{2} },3 }
104
+ @test M. _density (AbstractArray{T{2 },3 }) ==
105
+ AbstractArray{Density{T{2 }},3 }
106
+ @test M. _density (Table (T{2 })) == Table (Density{T{2 }})
107
+ end
108
+ end
109
+
110
+ @mlj_model mutable struct P2 <: Probabilistic end
111
+ M. target_scitype (:: Type{<:P2} ) = AbstractVector{<: Multiclass }
112
+ M. input_scitype (:: Type{<:P2} ) = Table (Continuous)
113
+
114
+ @mlj_model mutable struct U2 <: Unsupervised end
115
+ M. output_scitype (:: Type{<:U2} ) = AbstractVector{<: Multiclass }
116
+ M. input_scitype (:: Type{<:U2} ) = Table (Continuous)
117
+
118
+ @mlj_model mutable struct S2 <: Static end
119
+ M. output_scitype (:: Type{<:S2} ) = AbstractVector{<: Multiclass }
120
+ M. input_scitype (:: Type{<:S2} ) = Table (Continuous)
121
+
122
+ @testset " operation scitypes" begin
123
+ @test predict_scitype (P2 ()) == AbstractVector{Density{<: Multiclass }}
124
+ @test transform_scitype (P2 ()) == Unknown
125
+ @test transform_scitype (U2 ()) == AbstractVector{<: Multiclass }
126
+ @test inverse_transform_scitype (U2 ()) == Table (Continuous)
127
+ @test predict_scitype (U2 ()) == Unknown
128
+ @test transform_scitype (S2 ()) == AbstractVector{<: Multiclass }
129
+ @test inverse_transform_scitype (S2 ()) == Table (Continuous)
130
+ end
131
+
132
+ @testset " abstract_type, training_scitype" begin
133
+ @test abstract_type (P2 ()) == Probabilistic
134
+ @test abstract_type (S1 ()) == Supervised
135
+ @test abstract_type (U1 ()) == Unsupervised
136
+ @test abstract_type (D1 ()) == Deterministic
137
+ @test abstract_type (P1 ()) == Probabilistic
138
+
139
+ @test training_scitype (P2 ()) ==
140
+ Tuple{Table (Continuous),AbstractVector{<: Multiclass }}
141
+ @test training_scitype (U2 ()) == Table (Continuous)
142
+ @test training_scitype (S2 ()) == Tuple{}
143
+ end
144
+
145
+ true
0 commit comments