@@ -20,7 +20,7 @@ let alwaysTrue _ = true
2020
2121let config = Utils.defaultConfig
2222
23- let notNane x = not <| Double.IsNaN x
23+ let wgSize = 32
2424
2525let checkResult isZero isComplemented ( actual : Vector < 'a >) ( vector : 'a []) ( mask : 'a []) ( value : 'a ) =
2626
@@ -96,17 +96,14 @@ let makeTest<'a when 'a: struct and 'a: equality>
9696 | ex when ex.Message = " InvalidBufferSize" -> ()
9797 | ex -> raise ex
9898
99- let testFixtures case =
99+ let testFixtures isComplemented case =
100100 let getCorrectnessTestName datatype =
101101 $" Correctness on %s {datatype}, vector: %A {case.Format}"
102102
103- let wgSize = 32
104103 let context = case.TestContext.ClContext
105104
106- let isComplemented = false
107-
108105 [ let intFill =
109- Vector.assignByMask context Mask.assign wgSize
106+ Vector.assignByMaskComplemented context Mask.assign wgSize
110107
111108 let intToCoo = Vector.toDense context wgSize
112109
@@ -116,62 +113,22 @@ let testFixtures case =
116113
117114 if Utils.isFloat64Available context.ClDevice then
118115 let floatFill =
119- Vector.assignByMask context Mask.assign wgSize
116+ Vector.assignByMaskComplemented context Mask.assign wgSize
120117
121118 let floatToCoo = Vector.toDense context wgSize
122119
123120 case
124- |> makeTest ( Utils.floatIsEqual 0.0 ) notNane floatToCoo floatFill isComplemented
121+ |> makeTest ( Utils.floatIsEqual 0.0 ) Double.IsNormal floatToCoo floatFill isComplemented
125122 |> testPropertyWithConfig config ( getCorrectnessTestName " float" )
126123
127- let byteFill =
128- Vector.assignByMask context Mask.assign wgSize
129-
130- let byteToCoo = Vector.toDense context wgSize
131-
132- case
133- |> makeTest ((=) 0 uy) alwaysTrue byteToCoo byteFill isComplemented
134- |> testPropertyWithConfig config ( getCorrectnessTestName " byte" )
135-
136- let boolFill =
137- Vector.assignByMask context Mask.assign wgSize
124+ let float32Fill =
125+ Vector.assignByMaskComplemented context Mask.assign wgSize
138126
139- let boolToCoo = Vector.toDense context wgSize
127+ let float32ToCoo = Vector.toDense context wgSize
140128
141129 case
142- |> makeTest ((=) false ) alwaysTrue boolToCoo boolFill isComplemented
143- |> testPropertyWithConfig config ( getCorrectnessTestName " bool" ) ]
144-
145- let tests =
146- operationGPUTests " Backend.Vector.assignByMask tests" testFixtures
147-
148- let testFixturesComplemented case =
149- let getCorrectnessTestName datatype =
150- $" Correctness on %s {datatype}, vector: %A {case.Format}"
151-
152- let wgSize = 32
153- let context = case.TestContext.ClContext
154-
155- let isComplemented = true
156-
157- [ let intFill =
158- Vector.assignByMaskComplemented context Mask.assign wgSize
159-
160- let intToCoo = Vector.toDense context wgSize
161-
162- case
163- |> makeTest ((=) 0 ) alwaysTrue intToCoo intFill isComplemented
164- |> testPropertyWithConfig config ( getCorrectnessTestName " int" )
165-
166- if Utils.isFloat64Available context.ClDevice then
167- let floatFill =
168- Vector.assignByMaskComplemented context Mask.assign wgSize
169-
170- let floatToCoo = Vector.toDense context wgSize
171-
172- case
173- |> makeTest ( Utils.floatIsEqual 0.0 ) notNane floatToCoo floatFill isComplemented
174- |> testPropertyWithConfig config ( getCorrectnessTestName " float" )
130+ |> makeTest ( Utils.float32IsEqual 0.0 f) Single.IsNormal float32ToCoo float32Fill isComplemented
131+ |> testPropertyWithConfig config ( getCorrectnessTestName " float32" )
175132
176133 let byteFill =
177134 Vector.assignByMaskComplemented context Mask.assign wgSize
@@ -191,5 +148,8 @@ let testFixturesComplemented case =
191148 |> makeTest ((=) false ) alwaysTrue boolToCoo boolFill isComplemented
192149 |> testPropertyWithConfig config ( getCorrectnessTestName " bool" ) ]
193150
151+ let tests =
152+ operationGPUTests " Backend.Vector.assignByMask tests" <| testFixtures false
153+
194154let complementedTests =
195- operationGPUTests " Backend.Vector.assignByMaskComplemented tests" testFixturesComplemented
155+ operationGPUTests " Backend.Vector.assignByMaskComplemented tests" <| testFixtures true
0 commit comments