@@ -84,7 +84,7 @@ let correctnessGenericTest
8484 checkResult isEqual op zero leftMatrix rightMatrix actual
8585
8686
87- let testFixtures case =
87+ let testFixturesEWiseAdd case =
8888 [ let config = defaultConfig
8989 let wgSize = 256
9090
@@ -140,10 +140,10 @@ let tests =
140140 .CastTo< DeviceType>()
141141
142142 deviceType = DeviceType.Gpu)
143- |> List.collect testFixtures
143+ |> List.collect testFixturesEWiseAdd
144144 |> testList " Backend.Matrix.eWiseAdd tests"
145145
146- let testFixturesAtLeastOne case =
146+ let testFixturesEWiseAddAtLeastOne case =
147147 [ let config = defaultConfig
148148 let wgSize = 256
149149
@@ -203,5 +203,69 @@ let tests2 =
203203 .CastTo< DeviceType>()
204204
205205 deviceType = DeviceType.Gpu)
206- |> List.collect testFixturesAtLeastOne
206+ |> List.collect testFixturesEWiseAddAtLeastOne
207207 |> testList " Backend.Matrix.eWiseAddAtLeastOne tests"
208+
209+
210+ let testFixturesEWiseMulAtLeastOne case =
211+ [ let config = defaultConfig
212+ let wgSize = 256
213+
214+ let getCorrectnessTestName datatype =
215+ sprintf " Correctness on %s , %A " datatype case
216+
217+ let context = case.ClContext.ClContext
218+ let q = case.ClContext.Queue
219+ q.Error.Add( fun e -> failwithf " %A " e)
220+
221+ let boolMul =
222+ Matrix.eWiseAddAtLeastOne context boolMulAtLeastOne wgSize
223+
224+ let boolToCOO = Matrix.toCOO context wgSize
225+
226+ case
227+ |> correctnessGenericTest false (&&) boolMul boolToCOO (=) q
228+ |> testPropertyWithConfig config ( getCorrectnessTestName " bool" )
229+
230+ let intAdd =
231+ Matrix.eWiseAddAtLeastOne context intMulAtLeastOne wgSize
232+
233+ let intToCOO = Matrix.toCOO context wgSize
234+
235+ case
236+ |> correctnessGenericTest 0 (*) intAdd intToCOO (=) q
237+ |> testPropertyWithConfig config ( getCorrectnessTestName " int" )
238+
239+ let floatAdd =
240+ Matrix.eWiseAddAtLeastOne context floatMulAtLeastOne wgSize
241+
242+ let floatToCOO = Matrix.toCOO context wgSize
243+
244+ case
245+ |> correctnessGenericTest 0.0 (*) floatAdd floatToCOO ( fun x y -> abs ( x - y) < Accuracy.medium.absolute) q
246+ |> testPropertyWithConfig config ( getCorrectnessTestName " float" )
247+
248+ let byteAdd =
249+ Matrix.eWiseAddAtLeastOne context byteMulAtLeastOne wgSize
250+
251+ let byteToCOO = Matrix.toCOO context wgSize
252+
253+ case
254+ |> correctnessGenericTest 0 uy (*) byteAdd byteToCOO (=) q
255+ |> testPropertyWithConfig config ( getCorrectnessTestName " byte" ) ]
256+
257+ let tests3 =
258+ testCases
259+ |> List.filter
260+ ( fun case ->
261+ let mutable e = ErrorCode.Unknown
262+ let device = case.ClContext.ClContext.ClDevice.Device
263+
264+ let deviceType =
265+ Cl
266+ .GetDeviceInfo( device, DeviceInfo.Type, & e)
267+ .CastTo< DeviceType>()
268+
269+ deviceType = DeviceType.Gpu)
270+ |> List.collect testFixturesEWiseMulAtLeastOne
271+ |> testList " Backend.Matrix.eWiseMulAtLeastOne tests"
0 commit comments