Skip to content

Commit e0a1597

Browse files
committed
Add more primitive types to test
1 parent e7d5539 commit e0a1597

3 files changed

Lines changed: 88 additions & 0 deletions

File tree

src/GraphBLAS-sharp/Predefined/Monoids/Add.fs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,23 @@ module Add =
1717
Zero = 0.f
1818
Append = BinaryOp <@ (+) @>
1919
}
20+
21+
let sbyte: Monoid<sbyte> = {
22+
Zero = 0y
23+
Append = BinaryOp <@ (+) @>
24+
}
25+
26+
let byte: Monoid<byte> = {
27+
Zero = 0uy
28+
Append = BinaryOp <@ (+) @>
29+
}
30+
31+
let int16: Monoid<int16> = {
32+
Zero = 0s
33+
Append = BinaryOp <@ (+) @>
34+
}
35+
36+
let uint16: Monoid<uint16> = {
37+
Zero = 0us
38+
Append = BinaryOp <@ (+) @>
39+
}

src/GraphBLAS-sharp/Predefined/Semirings/AddMult.fs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,23 @@ module AddMult =
1717
PlusMonoid = Add.float32
1818
Times = BinaryOp <@ (*) @>
1919
}
20+
21+
let sbyte: Semiring<sbyte> = {
22+
PlusMonoid = Add.sbyte
23+
Times = BinaryOp <@ (*) @>
24+
}
25+
26+
let byte: Semiring<byte> = {
27+
PlusMonoid = Add.byte
28+
Times = BinaryOp <@ (*) @>
29+
}
30+
31+
let int16: Semiring<int16> = {
32+
PlusMonoid = Add.int16
33+
Times = BinaryOp <@ (*) @>
34+
}
35+
36+
let uint16: Semiring<uint16> = {
37+
PlusMonoid = Add.uint16
38+
Times = BinaryOp <@ (*) @>
39+
}

tests/GraphBLAS-sharp.Tests/OperationsTests/EWiseAddTests.fs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,38 @@ type PairOfSparseMatricesOfEqualSize =
5555
]
5656
) |> Arb.fromGen
5757

58+
static member SByteType() =
59+
Generators.pairOfMatricesOfEqualSizeGenerator (
60+
Gen.oneof [
61+
Arb.generate<sbyte>
62+
Gen.constant 0y
63+
]
64+
) |> Arb.fromGen
65+
66+
static member ByteType() =
67+
Generators.pairOfMatricesOfEqualSizeGenerator (
68+
Gen.oneof [
69+
Arb.generate<byte>
70+
Gen.constant 0uy
71+
]
72+
) |> Arb.fromGen
73+
74+
static member Int16Type() =
75+
Generators.pairOfMatricesOfEqualSizeGenerator (
76+
Gen.oneof [
77+
Arb.generate<int16>
78+
Gen.constant 0s
79+
]
80+
) |> Arb.fromGen
81+
82+
static member UInt16Type() =
83+
Generators.pairOfMatricesOfEqualSizeGenerator (
84+
Gen.oneof [
85+
Arb.generate<uint16>
86+
Gen.constant 0us
87+
]
88+
) |> Arb.fromGen
89+
5890
static member BoolType() =
5991
Generators.pairOfMatricesOfEqualSizeGenerator (
6092
Gen.oneof [
@@ -184,6 +216,22 @@ let testFixtures case = [
184216
|> checkCorrectnessGeneric<float> (+) (-) (fun x -> abs x < Accuracy.medium.absolute) AddMult.float
185217
|> testPropertyWithConfig config (sprintf "Correctness on float, %A, %A" case.MatrixCase case.MaskCase)
186218

219+
case
220+
|> checkCorrectnessGeneric<sbyte> (+) (-) ((=) 0y) AddMult.sbyte
221+
|> testPropertyWithConfig config (sprintf "Correctness on sbyte, %A, %A" case.MatrixCase case.MaskCase)
222+
223+
case
224+
|> checkCorrectnessGeneric<byte> (+) (-) ((=) 0uy) AddMult.byte
225+
|> testPropertyWithConfig config (sprintf "Correctness on byte, %A, %A" case.MatrixCase case.MaskCase)
226+
227+
case
228+
|> checkCorrectnessGeneric<int16> (+) (-) ((=) 0s) AddMult.int16
229+
|> testPropertyWithConfig config (sprintf "Correctness on int16, %A, %A" case.MatrixCase case.MaskCase)
230+
231+
case
232+
|> checkCorrectnessGeneric<uint16> (+) (-) ((=) 0us) AddMult.uint16
233+
|> testPropertyWithConfig config (sprintf "Correctness on uint16, %A, %A" case.MatrixCase case.MaskCase)
234+
187235
case
188236
|> checkCorrectnessGeneric<bool> (||) (<>) not AnyAll.bool
189237
|> testPropertyWithConfig config (sprintf "Correctness on bool, %A, %A" case.MatrixCase case.MaskCase)

0 commit comments

Comments
 (0)