@@ -5,82 +5,81 @@ open Expecto.Logging
55open Expecto.Logging .Message
66open GraphBLAS.FSharp .Backend .Common
77open Brahma.FSharp
8- open GraphBLAS.FSharp .Tests . Utils
8+ open GraphBLAS.FSharp .Tests
99open GraphBLAS.FSharp .Tests .Context
1010
1111let logger = Log.create " BitonicSort.Tests"
1212
1313let context = defaultContext.ClContext
14- let config = { defaultConfig with endSize = 1000000 }
1514
16- let wgSize = 32
15+ let config =
16+ { Utils.defaultConfig with
17+ endSize = 1000000 }
18+
19+ let wgSize = Utils.defaultWorkGroupSize
20+
1721let q = defaultContext.Queue
1822
1923let makeTest sort ( array : ( 'n * 'n * 'a ) []) =
2024 if array.Length > 0 then
21- let projection ( row : 'n ) ( col : 'n ) ( v : 'a ) = row, col
25+ let projection ( row : 'n ) ( col : 'n ) ( _ : 'a ) = row, col
2226
2327 logger.debug (
2428 eventX " Initial size is {size}"
25- >> setField " size" ( sprintf " %A " array.Length)
29+ >> setField " size" $ " %A { array.Length} "
2630 )
2731
2832 let rows , cols , vals = Array.unzip3 array
2933
3034 use clRows = context.CreateClArray rows
31- use clCols = context.CreateClArray cols
32- use clVals = context.CreateClArray vals
35+ use clColumns = context.CreateClArray cols
36+ use clValues = context.CreateClArray vals
3337
34- let actualRows , actualCols , actualVals =
35- sort q clRows clCols clVals
38+ let actualRows , actualCols , actualValues =
39+ sort q clRows clColumns clValues
3640
3741 let rows = Array.zeroCreate< 'n> clRows.Length
38- let cols = Array.zeroCreate< 'n> clCols .Length
39- let vals = Array.zeroCreate< 'a> clVals .Length
42+ let columns = Array.zeroCreate< 'n> clColumns .Length
43+ let values = Array.zeroCreate< 'a> clValues .Length
4044
4145 q.Post( Msg.CreateToHostMsg( clRows, rows))
42- q.Post( Msg.CreateToHostMsg( clCols , cols ))
46+ q.Post( Msg.CreateToHostMsg( clColumns , columns ))
4347
44- q.PostAndReply( fun ch -> Msg.CreateToHostMsg( clVals , vals , ch))
48+ q.PostAndReply( fun ch -> Msg.CreateToHostMsg( clValues , values , ch))
4549 |> ignore
4650
47- rows, cols , vals
51+ rows, columns , values
4852
49- let expectedRows , expectedCols , expectedVals =
53+ let expectedRows , expectedCols , expectedValues =
5054 ( rows, cols, vals)
5155 |||> Array.zip3
5256 |> Array.sortBy ((<|||) projection)
5357 |> Array.unzip3
5458
55- ( sprintf " Row arrays should be equal. Actual is \n %A , expected \n %A , input is \n %A " actualRows expectedRows rows)
56- |> compareArrays (=) actualRows expectedRows
59+ $ " Row arrays should be equal. Actual is \n %A {actualRows} , expected \n %A {expectedRows} , input is \n %A { rows} "
60+ |> Utils. compareArrays (=) actualRows expectedRows
5761
58- ( sprintf
59- " Column arrays should be equal. Actual is \n %A , expected \n %A , input is \n %A "
60- actualCols
61- expectedCols
62- cols)
63- |> compareArrays (=) actualCols expectedCols
62+ $" Column arrays should be equal. Actual is \n %A {actualCols}, expected \n %A {expectedCols}, input is \n %A {cols}"
63+ |> Utils.compareArrays (=) actualCols expectedCols
6464
65- ( sprintf
66- " Value arrays should be equal. Actual is \n %A , expected \n %A , input is \n %A "
67- actualVals
68- expectedVals
69- vals)
70- |> compareArrays (=) actualVals expectedVals
65+ $" Value arrays should be equal. Actual is \n %A {actualValues}, expected \n %A {expectedValues}, input is \n %A {vals}"
66+ |> Utils.compareArrays (=) actualValues expectedValues
7167
7268let testFixtures < 'a when 'a : equality > =
73- let sort =
74- BitonicSort.sortKeyValuesInplace< int, 'a> context wgSize
75-
76- makeTest sort
77- |> testPropertyWithConfig config ( sprintf " Correctness on %A " typeof< 'a>)
69+ BitonicSort.sortKeyValuesInplace< int, 'a> context wgSize
70+ |> makeTest
71+ |> testPropertyWithConfig config $" Correctness on %A {typeof<'a>}"
7872
7973let tests =
8074 q.Error.Add( fun e -> failwithf " %A " e)
8175
8276 [ testFixtures< int>
83- testFixtures< float>
77+
78+ if Utils.isFloat64Available context.ClDevice then
79+ testFixtures< float>
80+
81+ testFixtures< float32>
82+
8483 testFixtures< byte>
8584 testFixtures< bool> ]
8685 |> testList " Backend.Common.BitonicSort tests"
0 commit comments