Skip to content

Commit 88e1aa7

Browse files
committed
added more tests to optimizeCallback
1 parent daf597e commit 88e1aa7

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

test/unit-tests/utils/optimizeCallback.test.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,38 @@ describe('optimizeCallback', function () {
1818
})
1919

2020
const arrayOfNumbers = [1, 2, 3]
21+
const matrixOfNumbers = math.matrix(arrayOfNumbers)
22+
const sparseMatrixOfNumbers = math.matrix(arrayOfNumbers, 'sparse')
2123
const name = 'myFunction'
2224

2325
it('should find the right number of arguments for a function', function () {
2426
const optimizedUnary = optimizeCallback(unaryCallback, arrayOfNumbers, name, false)
2527
assert.strictEqual(optimizedUnary.isUnary, true)
2628
const optimizedTernary = optimizeCallback(ternaryCallback, arrayOfNumbers, name, false)
2729
assert.strictEqual(optimizedTernary.isUnary, false)
30+
const optimizedUnaryMatrix = optimizeCallback(unaryCallback, matrixOfNumbers, name, false)
31+
assert.strictEqual(optimizedUnaryMatrix.isUnary, true)
32+
const optimizedTernaryMatrix = optimizeCallback(ternaryCallback, matrixOfNumbers, name, false)
33+
assert.strictEqual(optimizedTernaryMatrix.isUnary, false)
34+
const optimizedUnarySparseMatrix = optimizeCallback(unaryCallback, sparseMatrixOfNumbers, name, false)
35+
assert.strictEqual(optimizedUnarySparseMatrix.isUnary, true)
36+
const optimizedTernarySparseMatrix = optimizeCallback(ternaryCallback, sparseMatrixOfNumbers, name, false)
37+
assert.strictEqual(optimizedTernarySparseMatrix.isUnary, false)
2838
})
2939

3040
it('should find the right number of arguments for a typed function', function () {
3141
const optimizedTypedUnary = optimizeCallback(typedUnaryCallback, arrayOfNumbers, name, false)
3242
assert.strictEqual(optimizedTypedUnary.isUnary, true)
3343
const optimizedTypedTernary = optimizeCallback(typedTernaryCallback, arrayOfNumbers, name, false)
3444
assert.strictEqual(optimizedTypedTernary.isUnary, false)
45+
const optimizedTypedUnaryMatrix = optimizeCallback(typedUnaryCallback, matrixOfNumbers, name, false)
46+
assert.strictEqual(optimizedTypedUnaryMatrix.isUnary, true)
47+
const optimizedTypedTernaryMatrix = optimizeCallback(typedTernaryCallback, matrixOfNumbers, name, false)
48+
assert.strictEqual(optimizedTypedTernaryMatrix.isUnary, false)
49+
const optimizedTypedUnarySparseMatrix = optimizeCallback(typedUnaryCallback, sparseMatrixOfNumbers, name, false)
50+
assert.strictEqual(optimizedTypedUnarySparseMatrix.isUnary, true)
51+
const optimizedTypedTernarySparseMatrix = optimizeCallback(typedTernaryCallback, sparseMatrixOfNumbers, name, false)
52+
assert.strictEqual(optimizedTypedTernarySparseMatrix.isUnary, false)
3553
})
3654

3755
it('should return unary functions as unary when isUnary is set to true', function () {
@@ -45,5 +63,28 @@ describe('optimizeCallback', function () {
4563
assert.strictEqual(optimizedTypedTernary.isUnary, true)
4664
})
4765

66+
it('should run the optimized callback', function () {
67+
const optimizedUnary = optimizeCallback(unaryCallback, arrayOfNumbers, name, false)
68+
assert.strictEqual(optimizedUnary.fn(1), 2)
69+
const optimizedTernary = optimizeCallback(ternaryCallback, arrayOfNumbers, name, false)
70+
assert.strictEqual(optimizedTernary.fn(1, 2, 3), 7)
71+
const optimizedTypedUnary = optimizeCallback(typedUnaryCallback, arrayOfNumbers, name, false)
72+
assert.strictEqual(optimizedTypedUnary.fn(1), 2)
73+
const optimizedTypedTernary = optimizeCallback(typedTernaryCallback, arrayOfNumbers, name, false)
74+
assert.strictEqual(optimizedTypedTernary.fn(1, 2, 3), 7)
75+
const optimizedUnaryMatrix = optimizeCallback(unaryCallback, matrixOfNumbers, name, false)
76+
assert.strictEqual(optimizedUnaryMatrix.fn(1), 2)
77+
const optimizedTernaryMatrix = optimizeCallback(ternaryCallback, matrixOfNumbers, name, false)
78+
assert.strictEqual(optimizedTernaryMatrix.fn(1, 2, 3), 7)
79+
const optimizedTypedUnaryMatrix = optimizeCallback(typedUnaryCallback, matrixOfNumbers, name, false)
80+
assert.strictEqual(optimizedTypedUnaryMatrix.fn(1), 2)
81+
const optimizedTypedTernaryMatrix = optimizeCallback(typedTernaryCallback, matrixOfNumbers, name, false)
82+
assert.strictEqual(optimizedTypedTernaryMatrix.fn(1, 2, 3), 7)
83+
const optimizedUnarySparseMatrix = optimizeCallback(unaryCallback, sparseMatrixOfNumbers, name, false)
84+
assert.strictEqual(optimizedUnarySparseMatrix.fn(1), 2)
85+
const optimizedTernarySparseMatrix = optimizeCallback(ternaryCallback, sparseMatrixOfNumbers, name, false)
86+
assert.strictEqual(optimizedTernarySparseMatrix.fn(1, 2, 3), 7)
87+
})
88+
4889
}
4990
)

0 commit comments

Comments
 (0)