check number of args to matrix functions
[pspp] / tests / language / stats / matrix.at
index d8998f6e87dfd8dddcd5048c7ad07609c9186092..bd81cd7ec99cc5dae31ce8614f7fe1eb4e716e22 100644 (file)
@@ -1434,7 +1434,7 @@ PRINT LN({1, 2; 3, 4})/FORMAT F5.2.
 PRINT LN(0).
 END MATRIX.
 ])
-AT_CHECK([pspp matrix.sps], [0], [dnl
+AT_CHECK([pspp matrix.sps], [1], [dnl
 IDENT(1)
   1
 
@@ -1480,8 +1480,8 @@ LN({1, 2; 3, 4})
    .00   .69
   1.10  1.39
 
-LN(0)
- -In
+error: Argument 1 to matrix function LN has invalid value 0.  This argument
+must be greater than 0.
 ])
 AT_CLEANUP
 
@@ -1996,6 +1996,35 @@ AT_CHECK([pspp matrix.sps], [0], [dnl
 ])
 AT_CLEANUP
 
+AT_SETUP([MATRIX - invalid number function arguments])
+AT_DATA([matrix.sps], [dnl
+MATRIX.
+COMPUTE x=ABS().
+COMPUTE x=ABS(1,2).
+COMPUTE x=KRONEKER(1,2,3).
+COMPUTE x=IDENT().
+COMPUTE x=IDENT(1,2,3).
+COMPUTE x=BLOCK().
+END MATRIX.
+])
+AT_CHECK([pspp matrix.sps], [1], [dnl
+matrix.sps:2: error: COMPUTE: Matrix function ABS requires 1 argument.
+
+matrix.sps:3: error: COMPUTE: Matrix function ABS requires 1 argument.
+
+matrix.sps:4: error: COMPUTE: Matrix function KRONEKER requires 2 arguments.
+
+matrix.sps:5: error: COMPUTE: Matrix function IDENT requires 1 or 2 arguments,
+but 0 were provided.
+
+matrix.sps:6: error: COMPUTE: Matrix function IDENT requires 1 or 2 arguments,
+but 3 were provided.
+
+matrix.sps:7: error: COMPUTE: Matrix function BLOCK requires at least one
+argument.
+])
+AT_CLEANUP
+
 AT_SETUP([MATRIX - CALL SETDIAG])
 AT_DATA([matrix.sps], [dnl
 MATRIX.