Skip to content

Commit 409cd9b

Browse files
committed
Fix tests except ewiseadd
1 parent e5345a7 commit 409cd9b

7 files changed

Lines changed: 107 additions & 141 deletions

File tree

src/GraphBLAS-sharp/Objects/Matrix.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ namespace GraphBLAS.FSharp
33
open Brahma.FSharp
44
open GraphBLAS.FSharp.Backend
55

6-
type MatrixFromat =
6+
type MatrixFormat =
77
| CSR
88
| COO
99

tests/GraphBLAS-sharp.Tests/BackendCommonTests/BitonicSortTests.fs

Lines changed: 21 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -6,47 +6,19 @@ open Expecto.Logging.Message
66
open GraphBLAS.FSharp.Backend.Common
77
open Brahma.FSharp
88
open GraphBLAS.FSharp.Tests.Utils
9-
open OpenCL.Net
109

1110
let logger = Log.create "BitonicSort.Tests"
1211

13-
let testContext =
14-
""
15-
|> avaliableContexts
16-
|> Seq.filter
17-
(fun context ->
18-
let mutable e = ErrorCode.Unknown
19-
let device = context.ClContext.ClDevice.Device
12+
let makeTest (context: ClContext) (q: MailboxProcessor<_>) sort (array: ('n * 'n * 'a) []) =
13+
if array.Length > 0 then
14+
let projection (row: 'n) (col: 'n) (v: 'a) = row, col
2015

21-
let deviceType =
22-
Cl
23-
.GetDeviceInfo(device, DeviceInfo.Type, &e)
24-
.CastTo<DeviceType>()
25-
26-
deviceType = DeviceType.Gpu)
27-
|> Seq.tryHead
28-
29-
let makeTest (context: ClContext) (q: MailboxProcessor<_>) sort (filter: 'a -> bool) (array: ('n * 'n * 'a) []) =
30-
let projection (row: 'n) (col: 'n) (v: 'a) = row, col
31-
32-
let rows, cols, vals =
33-
array
34-
|> Array.distinctBy ((<|||) projection)
35-
|> Array.filter (fun (_, _, v) -> filter v)
36-
|> Array.unzip3
37-
38-
if rows.Length > 0 then
3916
logger.debug (
4017
eventX "Initial size is {size}"
41-
>> setField "size" (sprintf "%A" rows.Length)
18+
>> setField "size" (sprintf "%A" array.Length)
4219
)
4320

44-
// logger.debug (
45-
// eventX "Initial are {rows}, {cols}, {vals}"
46-
// >> setField "rows" (sprintf "%A" rows)
47-
// >> setField "cols" (sprintf "%A" cols)
48-
// >> setField "vals" (sprintf "%A" vals)
49-
// )
21+
let rows, cols, vals = Array.unzip3 array
5022

5123
use clRows = context.CreateClArray rows
5224
use clCols = context.CreateClArray cols
@@ -67,56 +39,46 @@ let makeTest (context: ClContext) (q: MailboxProcessor<_>) sort (filter: 'a -> b
6739

6840
rows, cols, vals
6941

70-
// logger.debug (
71-
// eventX "Actual are {actualRows}, {actualCols}, {actualVals}"
72-
// >> setField "actualRows" (sprintf "%A" actualRows)
73-
// >> setField "actualCols" (sprintf "%A" actualCols)
74-
// >> setField "actualVals" (sprintf "%A" actualVals)
75-
// )
76-
7742
let expectedRows, expectedCols, expectedVals =
7843
(rows, cols, vals)
7944
|||> Array.zip3
8045
|> Array.sortBy ((<|||) projection)
8146
|> Array.unzip3
8247

8348
(sprintf "Row arrays should be equal. Actual is \n%A, expected \n%A, input is \n%A" actualRows expectedRows rows)
84-
|> Expect.sequenceEqual actualRows expectedRows
49+
|> compareArrays (=) actualRows expectedRows
8550

8651
(sprintf
8752
"Column arrays should be equal. Actual is \n%A, expected \n%A, input is \n%A"
8853
actualCols
8954
expectedCols
9055
cols)
91-
|> Expect.sequenceEqual actualCols expectedCols
56+
|> compareArrays (=) actualCols expectedCols
9257

9358
(sprintf
9459
"Value arrays should be equal. Actual is \n%A, expected \n%A, input is \n%A"
9560
actualVals
9661
expectedVals
9762
vals)
98-
|> Expect.sequenceEqual actualVals expectedVals
63+
|> compareArrays (=) actualVals expectedVals
9964

100-
let testFixtures<'a when 'a: equality> config wgSize context q filter =
65+
let testFixtures<'a when 'a: equality> config wgSize context q =
10166
let sort: MailboxProcessor<_> -> ClArray<int> -> ClArray<int> -> ClArray<'a> -> unit =
10267
BitonicSort.sortKeyValuesInplace context wgSize
10368

104-
makeTest context q sort filter
69+
makeTest context q sort
10570
|> testPropertyWithConfig config (sprintf "Correctness on %A" typeof<'a>)
10671

10772
let tests =
108-
match testContext with
109-
| Some c ->
110-
let context = c.ClContext
111-
let config = defaultConfig
112-
113-
let wgSize = 128
114-
let q = c.Queue
115-
q.Error.Add(fun e -> failwithf "%A" e)
116-
117-
[ testFixtures<int> config wgSize context q (fun _ -> true)
118-
testFixtures<float> config wgSize context q (System.Double.IsNaN >> not)
119-
testFixtures<byte> config wgSize context q (fun _ -> true)
120-
testFixtures<bool> config wgSize context q (fun _ -> true) ]
121-
| _ -> []
73+
let context = defaultContext.ClContext
74+
let config = { defaultConfig with endSize = 1000000 }
75+
76+
let wgSize = 32
77+
let q = defaultContext.Queue
78+
q.Error.Add(fun e -> failwithf "%A" e)
79+
80+
[ testFixtures<int> config wgSize context q
81+
testFixtures<float> config wgSize context q
82+
testFixtures<byte> config wgSize context q
83+
testFixtures<bool> config wgSize context q ]
12284
|> testList "Backend.Common.BitonicSort tests"

tests/GraphBLAS-sharp.Tests/BackendCommonTests/ConvertTests.fs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@ open OpenCL.Net
1212

1313
let logger = Log.create "Convert.Tests"
1414

15-
let context = defaultContext.ClContext
1615
let config = defaultConfig
17-
let wgSize = 128
16+
let wgSize = 32
1817

19-
let makeTestCSR q toCOO isZero (array: 'a [,]) =
18+
let makeTestCSR context q toCOO isZero (array: 'a [,]) =
2019
let mtx = createMatrixFromArray2D CSR array isZero
2120

2221
if mtx.NNZCount > 0 then
@@ -38,7 +37,7 @@ let makeTestCSR q toCOO isZero (array: 'a [,]) =
3837
"Matrices should be equal"
3938
|> Expect.equal actual expected
4039

41-
let makeTestCOO q toCSR isZero (array: 'a [,]) =
40+
let makeTestCOO context q toCSR isZero (array: 'a [,]) =
4241
let mtx = createMatrixFromArray2D COO array isZero
4342

4443
if mtx.NNZCount > 0 then
@@ -68,49 +67,50 @@ let testFixtures case =
6867
System.Double.IsNaN x
6968
|| abs x < Accuracy.medium.absolute
7069

71-
let q = defaultContext.Queue
70+
let context = case.ClContext.ClContext
71+
let q = case.ClContext.Queue
7272
q.Error.Add(fun e -> failwithf "%A" e)
7373

7474
match case.MatrixCase with
7575
| COO ->
7676
[ let toCSR = Matrix.toCSR context wgSize
7777

78-
makeTestCOO q toCSR ((=) 0)
78+
makeTestCOO context q toCSR ((=) 0)
7979
|> testPropertyWithConfig config (getCorrectnessTestName "int")
8080

8181
let toCSR = Matrix.toCSR context wgSize
8282

83-
makeTestCOO q toCSR filterFloat
83+
makeTestCOO context q toCSR filterFloat
8484
|> testPropertyWithConfig config (getCorrectnessTestName "float")
8585

8686
let toCSR = Matrix.toCSR context wgSize
8787

88-
makeTestCOO q toCSR ((=) 0uy)
88+
makeTestCOO context q toCSR ((=) 0uy)
8989
|> testPropertyWithConfig config (getCorrectnessTestName "byte")
9090

9191
let toCSR = Matrix.toCSR context wgSize
9292

93-
makeTestCOO q toCSR ((=) false)
93+
makeTestCOO context q toCSR ((=) false)
9494
|> testPropertyWithConfig config (getCorrectnessTestName "bool") ]
9595
| CSR ->
9696
[ let toCOO = Matrix.toCOO context wgSize
9797

98-
makeTestCSR q toCOO ((=) 0)
98+
makeTestCSR context q toCOO ((=) 0)
9999
|> testPropertyWithConfig config (getCorrectnessTestName "int")
100100

101101
let toCOO = Matrix.toCOO context wgSize
102102

103-
makeTestCSR q toCOO filterFloat
103+
makeTestCSR context q toCOO filterFloat
104104
|> testPropertyWithConfig config (getCorrectnessTestName "float")
105105

106106
let toCOO = Matrix.toCOO context wgSize
107107

108-
makeTestCSR q toCOO ((=) 0uy)
108+
makeTestCSR context q toCOO ((=) 0uy)
109109
|> testPropertyWithConfig config (getCorrectnessTestName "byte")
110110

111111
let toCOO = Matrix.toCOO context wgSize
112112

113-
makeTestCSR q toCOO ((=) false)
113+
makeTestCSR context q toCOO ((=) false)
114114
|> testPropertyWithConfig config (getCorrectnessTestName "bool") ]
115115

116116
let tests =
@@ -126,6 +126,6 @@ let tests =
126126
.CastTo<DeviceType>()
127127

128128
deviceType = DeviceType.Gpu)
129-
|> List.distinctBy (fun case -> case.MatrixCase)
129+
|> List.distinctBy (fun case -> case.ClContext.ClContext.ClDevice.DeviceType, case.MatrixCase)
130130
|> List.collect testFixtures
131131
|> testList "Convert tests"

tests/GraphBLAS-sharp.Tests/BackendCommonTests/PrefixSumTests.fs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ open GraphBLAS.FSharp.Tests.Utils
1010

1111
let logger = Log.create "PrefixSum.Tests"
1212

13-
let testContext =
14-
let contexts = "" |> avaliableContexts |> Seq.toList
15-
contexts.[0]
16-
17-
let context = testContext.ClContext
13+
let context = defaultContext.ClContext
1814

1915
let makeTest (q: MailboxProcessor<_>) scan plus zero isEqual (filter: 'a [] -> 'a []) (array: 'a []) =
2016
if array.Length > 0 then
@@ -75,7 +71,7 @@ let tests =
7571
let config = defaultConfig
7672

7773
let wgSize = 128
78-
let q = testContext.Queue
74+
let q = defaultContext.Queue
7975
q.Error.Add(fun e -> failwithf "%A" e)
8076

8177
let filterFloats =

0 commit comments

Comments
 (0)