Changing signature of mxRowObjective() function. See forum posts on this topic.
[openmx:openmx.git] / models / passing / TestRowObjective.R
1 #\r
2 #   Copyright 2007-2010 The OpenMx Project\r
3 #\r
4 #   Licensed under the Apache License, Version 2.0 (the "License");\r
5 #   you may not use this file except in compliance with the License.\r
6 #   You may obtain a copy of the License at\r
7\r
8 #        http://www.apache.org/licenses/LICENSE-2.0\r
9\r
10 #   Unless required by applicable law or agreed to in writing, software\r
11 #   distributed under the License is distributed on an "AS IS" BASIS,\r
12 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13 #   See the License for the specific language governing permissions and\r
14 #   limitations under the License.\r
15 \r
16 \r
17 #-----------------------------------------\r
18 # Author: Michael Hunter\r
19 # Filename: TestRowObjective.R\r
20 # Purpose: Have a very basic test of the \r
21 #  mxRowObjective function\r
22 #-----------------------------------------\r
23 \r
24 #-----------------------------------------\r
25 # Revision History\r
26 #       Date: Wed Jun 9 15:57:04 EDT 2010 - Created Test\r
27 #       Date: Fri Sep 10 14:33:13 EDT 2010\r
28 #       Date: Mon Oct 4 16:29:10 EDT 2010 - Added omxCheckCloseEnough\r
29 #                                                                               Added to models/failing\r
30 #                                                                               Added OpenMx License\r
31 #\r
32 #-----------------------------------------\r
33 \r
34 \r
35 library('OpenMx')\r
36 \r
37 set.seed(14) # Make repeatable\r
38 \r
39 xdat <- data.frame(a=rnorm(10), b=1:10) # Make data set\r
40 \r
41 # Make model\r
42 rmod <- mxModel(\r
43                 name = 'EZRowObjectiveTest',\r
44                 mxData(observed=xdat, type='raw'),\r
45                 mxAlgebra(sum(filteredDataRow), name='rowAlgebra'),\r
46                 mxAlgebra(sum(rowResults), name='reduceAlgebra'),\r
47                 mxRowObjective('rowAlgebra', 'reduceAlgebra', dimnames = c('a', 'b'))\r
48 )\r
49 #rmodns <- mxOption(rmod, 'No Sort Data', c('a', 'b'))\r
50 #rmodnsRun <- mxRun(rmodns)\r
51 rmodRun <- mxRun(rmod)\r
52 # summary(rmodRun) #So far I haven't got the summary to work\r
53 # rmod@algebras\r
54 \r
55 \r
56 #-----------------------------------------\r
57 # Check that the row algebra works\r
58 #  Row algebras are evaluated row-wise\r
59 #  Results of the row-wise evaluation are stored in the row results\r
60 \r
61 hardAdd <- mxEval(rowAlgebra, rmodRun)\r
62 # 'G' should be the same as\r
63 ezAdd <- as.matrix(xdat$a + xdat$b, ncol=1)\r
64 \r
65 omxCheckCloseEnough(hardAdd, ezAdd, 10^(-6))\r
66 \r
67 \r
68 #-----------------------------------------\r
69 # Check that the reduce algebra works\r
70 #  Reduce algebras combine the elements of the row results\r
71 \r
72 hardTotal <- mxEval(reduceAlgebra, rmodRun)\r
73 # 'R' should be the same as\r
74 ezTotal <- sum( xdat$a + xdat$b )\r
75 \r
76 omxCheckCloseEnough(hardTotal, ezTotal, 10^(-6))\r
77 \r