Disabled // for QuoteMacroChars, since the hook will conflict with binary selector...
[cslatevm.git] / tests / matrix.slate
blob29d918c67d428c08969cb36ef971d893460baafe
1 UnitTests define: #Matrix &parents: {TestCase} &slots: {
2 "3x3 Matrices"
3 #affineScale -> (Matrix newFromArrayOfArrays: {{2 . 0 . 0} . {0 . 2 . 0} . {0 . 0 . 1}}).
4 #affineTranslate -> (Matrix newFromArrayOfArrays: {{1 . 0 . 0} . {0 . 1 . 0} . {2 . 2 . 1}}).
5 #affineRotate -> (Matrix newFromArrayOfArrays: {{2 . 2 . 0} . {-3 . 3 . 0} . {0 . 0 . 1}}).
6 #affineReflect -> (Matrix newFromArrayOfArrays: {{1 . 0 . 0} . {0 . -1 . 0} . {0 . 0 . 1}}).
7 #affineShear -> (Matrix newFromArrayOfArrays: {{1 . 2 . 0} . {0 . 1 . 0} . {0 . 0 . 1}}).
8 #affineTransform -> (UnitTests Matrix affineScale * UnitTests Matrix affineTranslate * UnitTests Matrix affineRotate * UnitTests Matrix affineReflect * UnitTests Matrix affineShear).
9 #zero -> (Matrix newRows: 3 columns: 3).
10 #identity -> (Matrix newIdentitySize: 3).
11 "2x3 Matrices"
12 "Column Vectors"
13 "Bezier Curves"
14 #bezierPoints -> (Matrix newFromArrayOfArrays: {{1} . {2} . {3} . {4}}).
15 "From wikipedia http://en.wikipedia.org/wiki/B%E9zier_curve"
16 #bezierMatrix -> (Matrix newFromArrayOfArrays: {{1 . 0 . 0 . 0} . {(1 / 2) . (1 / 2) . 0 . 0} . {(1 / 4) . (2 / 4) . (1 / 4) . 0} . {(1 / 8) . (3 / 8) . (3 / 8) . (1 / 8)}})
19 t@(UnitTests Matrix traits) testAddition
21   t assert: t affineScale + t affineRotate = (Matrix newFromArrayOfArrays: {{4 . 2 . 0} . {-3 . 5 . 0} . {0 . 0 . 2}}).
24 t@(UnitTests Matrix traits) testMultiplication
26   t assert: t bezierMatrix * t bezierPoints = (Matrix newFromArrayOfArrays: {{1} . {(3 / 2)} . {2} . {(5 / 2)}}).
29 t@(UnitTests Matrix traits) suite
30 [t suiteForSelectors: {
31   #testAddition.
32   #testMultiplication.
33 }].