annotate test/build_sparse_tests.sh @ 10013:25417bd9a3c7

Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
author Rik <rdrider0-list@yahoo.com>
date Sun, 20 Dec 2009 20:51:54 -0800
parents 97c84c4c2247
children fd0a3ac60b0e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1 #!/bin/sh
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
2
8920
eb63fbe60fab update copyright notices
John W. Eaton <jwe@octave.org>
parents: 8871
diff changeset
3 # Copyright (C) 2006, 2007, 2008, 2009 David Bateman
7019
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
4 #
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
5 # This file is part of Octave.
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
6 #
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
7 # Octave is free software; you can redistribute it and/or modify it
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
8 # under the terms of the GNU General Public License as published by the
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
9 # Free Software Foundation; either version 3 of the License, or (at
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
10 # your option) any later version.
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
11 #
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
12 # Octave is distributed in the hope that it will be useful, but WITHOUT
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
14 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
15 # for more details.
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
16 #
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
17 # You should have received a copy of the GNU General Public License
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
18 # along with Octave; see the file COPYING. If not, see
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
19 # <http://www.gnu.org/licenses/>.
4270ded9ddc6 [project @ 2007-10-13 01:42:20 by jwe]
jwe
parents: 5953
diff changeset
20
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
21 # Some tests are commented out because they are known to be broken!
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
22 # Search for "# fails"
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
23
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
24 # ./build_sparse_tests.sh preset
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
25 # creates test_sparse.m with preset tests.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
26 # Use "test test_sparse" from octave to run the tests.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
27 #
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
28 # ./build_sparse_tests.sh random
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
29 # Creates test_sprandom.m with randomly generated matrices.
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
30 # Use "test test_sprandom" from octave to run the tests.
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
31
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
32 # build_sparse_tests.sh generates tests for real and complex sparse matrices.
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
33 # Also, we want to run both fixed tests with known outputs (quick tests)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
34 # and longer tests with unknown outputs (thorough tests). This requires
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
35 # two sets of tests -- one which uses preset matrices and another which
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
36 # uses randomly generated matrices.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
37 #
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
38 # The tests are mostly identical for each case but the code is different,
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
39 # so it is important that the tests be run on all cases. Because our test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
40 # harness doesn't have support for looping or macros (it is only needed
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
41 # for new data types), but sh does, we use sh to generate inline versions of
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
42 # the tests for each case.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
43 #
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
44 # Our 'macros' use shared variables as parameters. This allows us to
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
45 # for example define A complex and include all the unary ops tests,
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
46 # then set A=real(A) and include all the unary ops tests. Thus the
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
47 # same tests work for real and complex. For binary tests it is even
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
48 # more complicated because we want full X sparse, sparse X full and
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
49 # sparse X sparse tested.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
50 #
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
51 # We use the following macros:
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
52 #
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
53 # gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
54 # place a separator in the test file
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
55 # gen_function
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
56 # define the function definion
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
57 # helper gen_specific
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
58 # specific tests such as error handling and null input
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
59 # helper gen_eat_zeros
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
60 # make sure sparse-scalar ops which generate 0 work
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
61 # gen_specific_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
62 # specific and eat zeros tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
63 # helper gen_ordering_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
64 # ordered comparison operators for real valued tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
65 # helper gen_sparsesparse_ordering_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
66 # ordered comparison operators for real valued sparse-sparse tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
67 # helper gen_elementop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
68 # element-wise matrix binary operators, including scalar-matrix ops.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
69 # horizontal/vertical concatenation are here as well.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
70 # helper gen_sparsesparse_elementop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
71 # element-wise matrix binary operators, for sparse-sparse ops.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
72 # horizontal/vertical concatenation are here as well.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
73 # helper gen_divop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
74 # left and right matrix division operators of rectangular matrices.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
75 # Needs QR solvers
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
76 # helper gen_square_divop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
77 # left and right matrix division operators of square matrices.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
78 # helper gen_matrixop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
79 # rectangular matrix binary operators: *
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
80 # helper gen_matrixdiag_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
81 # Tests extract of diag and creation of diagonal matrices using
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
82 # diag and spdiags functions
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
83 # helper gen_matrixreshape_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
84 # Test the reshape function on sparse matrices
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
85 # helper print_mapper_test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
86 # sub-helper function of gen_mapper_tests to print individual tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
87 # helper gen_mapper_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
88 # Tests all of the one argument mapper functions. There are a few
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
89 # specific tests that abs, real and imag return real values.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
90 # helper gen_unaryop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
91 # functions and operators which transform a single matrix
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
92 # helper gen_save_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
93 # Tests the load/save functionality for ascii/binary and hdf5 formats
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
94 # gen_scalar_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
95 # element ops for real and complex scalar and sparse
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
96 # gen_rectangular_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
97 # unary, element, and matrix tests for a and full/sparse b
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
98 # gen_square_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
99 # operations which require square matrices: lu, inv, \
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
100 # A square non-singular matrix is defined from the rectangular
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
101 # inputs A and B.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
102 # gen_assembly_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
103 # test for sparse constructors with 'sum' vs. 'unique'
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
104 # gen_select_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
105 # indexing tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
106 # gen_solver_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
107 # Tests the solve function with triangular/banded, etc matrices
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
108
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
109 case $1 in
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
110 random) preset=false ;;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
111 preset) preset=true ;;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
112 '') preset=true ;;
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
113 *) echo "build_sparse_tests.sh random|preset" && exit 1 ;;
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
114 esac
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
115
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
116 if $preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
117 TESTS=test_sparse.m
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
118 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
119 TESTS=test_sprandom.m
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
120 fi
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
121
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
122 # create initial file
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
123 cat >$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
124 ## THIS IS AN AUTOMATICALLY GENERATED FILE --- DO NOT EDIT ---
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
125 ## instead modify build_sparse_tests.sh to generate the tests that you want.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
126 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
127
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
128
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
129 # define all functions
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
130
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
131
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
132 # =======================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
133 # Section separator
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
134
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
135 gen_section() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
136 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
137
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
138 # ==============================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
139
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
140 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
141 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
142
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
143
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
144 # =======================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
145 # Specific preset tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
146
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
147 # =======================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
148 # If a sparse operation yields zeros, then those elements
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
149 # of the returned sparse matrix should be eaten.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
150 gen_eat_zeros() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
151 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
152 %% Make sure newly introduced zeros get eaten
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
153 %!assert(nnz(sparse([bf,bf,1]).^realmax),1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
154 %!assert(nnz(sparse([1,bf,bf]).^realmax),1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
155 %!assert(nnz(sparse([bf,bf,bf]).^realmax),0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
156
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
157 %!assert(nnz(sparse([bf;bf;1]).^realmax),1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
158 %!assert(nnz(sparse([1;bf;bf]).^realmax),1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
159 %!assert(nnz(sparse([0.5;bf;bf]).^realmax),0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
160
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
161 %!assert(nnz(sparse([bf,bf,1])*realmin),1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
162 %!assert(nnz(sparse([1,bf,bf])*realmin),1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
163 %!assert(nnz(sparse([bf,bf,bf])*realmin),0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
164
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
165 %!assert(nnz(sparse([bf;bf;1])*realmin),1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
166 %!assert(nnz(sparse([1;bf;bf])*realmin),1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
167 %!assert(nnz(sparse([bf;bf;bf])*realmin),0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
168
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
169 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
170 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
171
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
172 gen_specific() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
173 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
174
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
175 %!test # segfault test from edd@debian.org
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
176 %! n = 510;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
177 %! sparse(kron((1:n)', ones(n,1)), kron(ones(n,1), (1:n)'), ones(n));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
178
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
179 %% segfault tests from Fabian@isas-berlin.de
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
180 %% Note that the last four do not fail, but rather give a warning
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
181 %% of a singular matrix, which is consistent with the full matrix
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
182 %% behaviour. They are therefore disabled..
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
183 %!testif HAVE_UMFPACK
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
184 %! assert(inv(sparse([1,1;1,1+i])),sparse([1-1i,1i;1i,-1i]),10*eps);
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
185 % !error inv( sparse( [1,1;1,1] ) );
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
186 % !error inv( sparse( [0,0;0,1] ) );
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
187 % !error inv( sparse( [0,0;0,1+i] ) );
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
188 % !error inv( sparse( [0,0;0,0] ) );
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
189
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
190 %% error handling in constructor
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
191 %!error sparse(1,[2,3],[1,2,3]);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
192 %!error sparse([1,1],[1,1],[1,2],3,3,"bogus");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
193 %!error sparse([1,3],[1,-4],[3,5],2,2);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
194 %!error sparse([1,3],[1,-4],[3,5i],2,2);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
195 %!error sparse(-1,-1,1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
196 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
197 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
198
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
199
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
200 gen_specific_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
201 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
202 gen_specific
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
203 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
204 echo '%!shared bf' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
205 echo '%!test bf=realmin;' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
206 gen_eat_zeros
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
207 echo '%!test bf=realmin+realmin*1i;' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
208 gen_eat_zeros
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
209 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
210 %!assert(nnz(sparse([-1,realmin,realmin]).^1.5),1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
211 %!assert(nnz(sparse([-1,realmin,realmin,1]).^1.5),2);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
212
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
213 %!assert(nnz(sparse(1,1,0)),0); # Make sure scalar v==0 doesn't confuse matters
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
214 %!assert(nnz(sparse(eye(3))*0),0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
215 %!assert(nnz(sparse(eye(3))-sparse(eye(3))),0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
216
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
217 %!test
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5681
diff changeset
218 %! wdbz = warning ("query", "Octave:divide-by-zero");
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5681
diff changeset
219 %! warning ("off", "Octave:divide-by-zero");
8836
d79edebd8f45 fix sparse diag divide by zero test
John W. Eaton <jwe@octave.org>
parents: 8366
diff changeset
220 %! assert(full(sparse(eye(3))/0),full(eye(3)/0));
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5681
diff changeset
221 %! warning (wdbz.state, "Octave:divide-by-zero");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
222
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
223 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
224 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
225
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
226
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
227 # =======================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
228 # Main function definition
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
229
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
230 gen_function() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
231 if $preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
232 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
233 ##
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
234 ## test_sparse
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
235 ##
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
236 ## run preset sparse tests. All should pass.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
237 function [passes,tests] = test_sparse
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
238 disp("writing test output to sptest.log");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
239 test("test_sparse","normal","sptest.log");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
240 endfunction
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
241
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
242 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
243 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
244 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
245 ##
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
246 ## test_sprandom
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
247 ##
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
248 ## total_passes=0; total_tests=0;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
249 ## for i=1:10
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
250 ## [passes,tests] = sprandomtest;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
251 ## total_passes += passes;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
252 ## total_tests += tests;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
253 ## end
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
254 ## The test log is appended to sprandomtest.log
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
255 function [passes,total] = test_sprandom
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
256 warning("untested --- fix the source in build_sparse_tests.sh");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
257 disp("appending test output to sprandomtest.log");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
258 fid = fopen("sprandomtest.log","at");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
259 test("test_sprandom","normal",fid);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
260 ##[passes, total] = test("sprandomtest","normal",fid);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
261 fclose(fid);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
262 endfunction
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
263
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
264 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
265 fi
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
266
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
267 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
268
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
269
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
270 # =======================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
271 # matrix ops
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
272
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
273 # test ordered comparisons: uses as,af,bs,bf
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
274 gen_ordering_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
275 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
276 %% real values can be ordered (uses as,af)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
277 %!assert(as<=bf,sparse(af<=bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
278 %!assert(bf<=as,sparse(bf<=af))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
279
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
280 %!assert(as>=bf,sparse(af>=bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
281 %!assert(bf>=as,sparse(bf>=af))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
282
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
283 %!assert(as<bf,sparse(af<bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
284 %!assert(bf<as,sparse(bf<af))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
285
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
286 %!assert(as>bf,sparse(af>bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
287 %!assert(bf>as,sparse(bf>af))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
288
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
289 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
290 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
291
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
292 gen_sparsesparse_ordering_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
293 cat >>$TESTS <<EOF
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
294 %!assert(as<=bs,sparse(af<=bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
295 %!assert(as>=bs,sparse(af>=bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
296 %!assert(as<bs,sparse(af<bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
297 %!assert(as>bs,sparse(af>bf))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
298 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
299 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
300
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
301 # test element-wise binary operations: uses as,af,bs,bf,scalar
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
302 gen_elementop_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
303 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
304 %% Elementwise binary tests (uses as,af,bs,bf,scalar)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
305 %!assert(as==bs,sparse(af==bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
306 %!assert(bf==as,sparse(bf==af))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
307
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
308 %!assert(as!=bf,sparse(af!=bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
309 %!assert(bf!=as,sparse(bf!=af))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
310
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
311 %!assert(as+bf,af+bf)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
312 %!assert(bf+as,bf+af)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
313
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
314 %!assert(as-bf,af-bf)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
315 %!assert(bf-as,bf-af)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
316
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
317 %!assert(as.*bf,sparse(af.*bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
318 %!assert(bf.*as,sparse(bf.*af))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
319
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
320 %!assert(as./bf,sparse(af./bf),100*eps)
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
321 %!assert(bf.\as,sparse(bf.\af),100*eps)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
322
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
323 %!test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
324 %! sv = as.^bf;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
325 %! fv = af.^bf;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
326 %! idx = find(af~=0);
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
327 %! assert(sv(:)(idx),sparse(fv(:)(idx)),100*eps)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
328
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
329 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
330 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
331
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
332 gen_sparsesparse_elementop_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
333 cat >>$TESTS <<EOF
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
334 %!assert(as==bs,sparse(af==bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
335 %!assert(as!=bs,sparse(af!=bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
336 %!assert(as+bs,sparse(af+bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
337 %!assert(as-bs,sparse(af-bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
338 %!assert(as.*bs,sparse(af.*bf))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
339 %!xtest assert(as./bs,sparse(af./bf),100*eps);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
340 %!test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
341 %! sv = as.^bs;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
342 %! fv = af.^bf;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
343 %! idx = find(af~=0);
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
344 %! assert(sv(:)(idx),sparse(fv(:)(idx)),100*eps)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
345
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
346 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
347 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
348
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
349 # test matrix-matrix left and right division: uses as,af,bs,bf
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
350 gen_divop_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
351 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
352 %% Matrix-matrix operators (uses af,as,bs,bf)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
353 %!assert(as/bf,af/bf,100*eps)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
354 %!assert(af/bs,af/bf,100*eps)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
355 %!assert(as/bs,sparse(af/bf),100*eps)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
356 %!assert(bs\af',bf\af',100*eps)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
357 %!assert(bf\as',bf\af',100*eps)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
358 %!assert(bs\as',sparse(bf\af'),100*eps)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
359
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
360 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
361 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
362
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
363 # test matrix-matrix left and right division: uses as,af,bs,bf
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
364 gen_square_divop_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
365 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
366 %% Matrix-matrix operators (uses af,as,bs,bf)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
367 %!assert(as/bf,af/bf,100*eps)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
368 %!assert(af/bs,af/bf,100*eps)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
369 %!assert(as/bs,sparse(af/bf),100*eps)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
370 %!assert(bs\af',bf\af',100*eps)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
371 %!assert(bf\as',bf\af',100*eps)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
372 %!assert(bs\as',sparse(bf\af'),100*eps)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
373
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
374 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
375 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
376
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
377 # test matrix-matrix operations: uses as,af,bs,bf
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
378 gen_matrixop_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
379 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
380 %% Matrix-matrix operators (uses af,as,bs,bf)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
381 %!assert(as*bf',af*bf')
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
382 %!assert(af*bs',af*bf')
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
383 %!assert(as*bs',sparse(af*bf'))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
384
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
385 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
386 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
387
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
388 # test diagonal operations
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
389 gen_matrixdiag_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
390 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
391 %% Matrix diagonal tests (uses af,as,bf,bs)
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
392 %!assert(diag(as),sparse(diag(af)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
393 %!assert(diag(bs),sparse(diag(bf)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
394 %!assert(diag(as,1),sparse(diag(af,1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
395 %!assert(diag(bs,1),sparse(diag(bf,1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
396 %!assert(diag(as,-1),sparse(diag(af,-1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
397 %!assert(diag(bs,-1),sparse(diag(bf,-1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
398 %!assert(diag(as(:)),sparse(diag(af(:))))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
399 %!assert(diag(as(:),1),sparse(diag(af(:),1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
400 %!assert(diag(as(:),-1),sparse(diag(af(:),-1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
401 %!assert(diag(as(:)'),sparse(diag(af(:)')))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
402 %!assert(diag(as(:)',1),sparse(diag(af(:)',1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
403 %!assert(diag(as(:)',-1),sparse(diag(af(:)',-1)))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
404 %!assert(spdiags(as,[0,1]),[diag(af,0),diag(af,1)])
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
405 %!test [tb,tc]=spdiags(as);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
406 %! assert(spdiags(tb,tc,sparse(zeros(size(as)))),as)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
407 %! assert(spdiags(tb,tc,size(as,1),size(as,2)),as)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
408
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
409 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
410 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
411
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
412 # test matrix reshape operations
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
413 gen_matrixreshape_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
414 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
415 %% Matrix diagonal tests (uses af,as,bf,bs)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
416 %!assert(reshape(as,1,prod(size(as))),sparse(reshape(af,1,prod(size(af)))))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
417 %!assert(reshape(as,prod(size(as)),1),sparse(reshape(af,prod(size(af)),1)))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
418 %!assert(reshape(as,fliplr(size(as))),sparse(reshape(af,fliplr(size(af)))))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
419 %!assert(reshape(bs,1,prod(size(as))),sparse(reshape(bf,1,prod(size(af)))))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
420 %!assert(reshape(bs,prod(size(as)),1),sparse(reshape(bf,prod(size(af)),1)))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
421 %!assert(reshape(bs,fliplr(size(as))),sparse(reshape(bf,fliplr(size(af)))))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
422
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
423 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
424 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
425
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
426 # test mapper matrix operations: uses as,af
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
427 print_mapper_test() {
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
428 echo "%!assert($1(as),sparse($1(af)))" >>$TESTS
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
429 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
430
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
431 print_real_mapper_test() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
432 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
433 %!test
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5681
diff changeset
434 %! wn2s = warning ("query", "Octave:num-to-str");
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5681
diff changeset
435 %! warning ("off", "Octave:num-to-str");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
436 %! if isreal(af)
5953
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
437 %! if ($2)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
438 %! assert($1(as),sparse($1(af)))
5953
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
439 %! else
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
440 %! assert($1(as),$1(af))
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
441 %! endif
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
442 %! endif
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5681
diff changeset
443 %! warning (wn2s.state, "Octave:num-to-str");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
444
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
445 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
446 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
447
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
448 gen_mapper_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
449 echo "%% Unary matrix tests (uses af,as)">>$TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
450 print_mapper_test abs
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
451 print_mapper_test acos
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
452 print_mapper_test acosh
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
453 print_mapper_test angle
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
454 print_mapper_test arg
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
455 print_mapper_test asin
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
456 print_mapper_test asinh
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
457 print_mapper_test atan
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
458 print_mapper_test atanh
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
459 print_mapper_test ceil
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
460 print_mapper_test conj
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
461 print_mapper_test cos
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
462 print_mapper_test cosh
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
463 print_mapper_test exp
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
464 print_mapper_test finite
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
465 print_mapper_test fix
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
466 print_mapper_test floor
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
467 print_mapper_test imag
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
468 print_mapper_test isinf
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
469 print_mapper_test isna
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
470 print_mapper_test isnan
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
471 print_mapper_test log
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
472 #print_mapper_test log10 ## fails with different NaN, not a problem
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
473 print_mapper_test real
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
474 print_mapper_test round
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
475 print_mapper_test sign
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
476 print_mapper_test sin
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
477 print_mapper_test sinh
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
478 print_mapper_test sqrt
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
479 print_mapper_test tan
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
480 print_mapper_test tanh
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
481
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
482 # Specific tests for certain mapper functions
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
483 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
484 %!assert(issparse(abs(as))&&isreal(abs(as)))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
485 %!assert(issparse(real(as))&&isreal(real(as)))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
486 %!assert(issparse(imag(as))&&isreal(imag(as)))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
487
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
488 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
489 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
490
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
491 gen_real_mapper_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
492 echo "%% Unary matrix tests (uses af,as)">>$TESTS
5953
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
493 print_real_mapper_test erf 1
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
494 print_real_mapper_test erfc 1
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
495 #print_real_mapper_test gamma 1
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
496 print_real_mapper_test isalnum 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
497 print_real_mapper_test isalpha 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
498 print_real_mapper_test isascii 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
499 print_real_mapper_test iscntrl 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
500 print_real_mapper_test isdigit 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
501 print_real_mapper_test isgraph 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
502 print_real_mapper_test islower 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
503 print_real_mapper_test isprint 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
504 print_real_mapper_test ispunct 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
505 print_real_mapper_test isspace 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
506 print_real_mapper_test isupper 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
507 print_real_mapper_test isxdigit 0
164214586706 [project @ 2006-08-22 15:31:32 by jwe]
jwe
parents: 5781
diff changeset
508 #print_real_mapper_test lgamma 1
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
509
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
510 # Specific tests for certain mapper functions
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
511 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
512
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
513 %% These mapper functions always return a full matrix
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
514 %!test
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5681
diff changeset
515 %! wn2s = warning ("query", "Octave:num-to-str");
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5681
diff changeset
516 %! warning ("off", "Octave:num-to-str");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
517 %! if isreal(af)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
518 %! assert(toascii(as),toascii(af))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
519 %! assert(tolower(as),tolower(af))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
520 %! assert(toupper(as),toupper(af))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
521 %! endif
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5681
diff changeset
522 %! warning (wn2s.state, "Octave:num-to-str");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
523
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
524 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
525 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
526
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
527 # test matrix operations: uses as,af
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
528 gen_unaryop_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
529 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
530 %% Unary matrix tests (uses af,as)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
531 %!assert(issparse(as))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
532 %!assert(!issparse(af))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
533 %!assert(!(issparse(af)&&iscomplex(af)))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
534 %!assert(!(issparse(af)&&isreal(af)))
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
535 %!assert(sum(as),sparse(sum(af)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
536 %!assert(sum(as,1),sparse(sum(af,1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
537 %!assert(sum(as,2),sparse(sum(af,2)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
538 %!assert(cumsum(as),sparse(cumsum(af)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
539 %!assert(cumsum(as,1),sparse(cumsum(af,1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
540 %!assert(cumsum(as,2),sparse(cumsum(af,2)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
541 %!assert(sumsq(as),sparse(sumsq(af)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
542 %!assert(sumsq(as,1),sparse(sumsq(af,1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
543 %!assert(sumsq(as,2),sparse(sumsq(af,2)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
544 %!assert(prod(as),sparse(prod(af)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
545 %!assert(prod(as,1),sparse(prod(af,1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
546 %!assert(prod(as,2),sparse(prod(af,2)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
547 %!assert(cumprod(as),sparse(cumprod(af)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
548 %!assert(cumprod(as,1),sparse(cumprod(af,1)))
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
549 %!assert(cumprod(as,2),sparse(cumprod(af,2)))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
550
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
551 %!assert(min(as),sparse(min(af)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
552 %!assert(full(min(as(:))),min(af(:)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
553 %!assert(min(as,[],1),sparse(min(af,[],1)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
554 %!assert(min(as,[],2),sparse(min(af,[],2)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
555 %!assert(min(as,[],1),sparse(min(af,[],1)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
556 %!assert(min(as,0),sparse(min(af,0)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
557 %!assert(min(as,bs),sparse(min(af,bf)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
558 %!assert(max(as),sparse(max(af)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
559 %!assert(full(max(as(:))),max(af(:)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
560 %!assert(max(as,[],1),sparse(max(af,[],1)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
561 %!assert(max(as,[],2),sparse(max(af,[],2)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
562 %!assert(max(as,[],1),sparse(max(af,[],1)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
563 %!assert(max(as,0),sparse(max(af,0)))
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
564 %!assert(max(as,bs),sparse(max(af,bf)))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
565
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
566 %!assert(as==as)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
567 %!assert(as==af)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
568 %!assert(af==as)
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
569 %!test
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
570 %! [ii,jj,vv,nr,nc] = find(as);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
571 %! assert(af,full(sparse(ii,jj,vv,nr,nc)));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
572 %!assert(nnz(as),sum(af(:)!=0))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
573 %!assert(nnz(as),nnz(af))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
574 %!assert(issparse(as.'))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
575 %!assert(issparse(as'))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
576 %!assert(issparse(-as))
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
577 %!assert(~as,sparse(~af))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
578 %!assert(as.', sparse(af.'));
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
579 %!assert(as', sparse(af'));
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
580 %!assert(-as, sparse(-af));
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
581 %!assert(~as, sparse(~af));
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
582 %!error [i,j]=size(af);as(i-1,j+1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
583 %!error [i,j]=size(af);as(i+1,j-1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
584 %!test
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
585 %! [Is,Js,Vs] = find(as);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
586 %! [If,Jf,Vf] = find(af);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
587 %! assert(Is,If);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
588 %! assert(Js,Jf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
589 %! assert(Vs,Vf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
590 %!error as(0,1);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
591 %!error as(1,0);
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
592 %!assert(find(as),find(af))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
593 %!test
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
594 %! [i,j,v] = find(as);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
595 %! [m,n] = size(as);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
596 %! x = sparse(i,j,v,m,n);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
597 %! assert(x,as);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
598 %!test
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
599 %! [i,j,v,m,n] = find(as);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
600 %! x = sparse(i,j,v,m,n);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
601 %! assert(x,as);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
602 %!assert(issparse(horzcat(as,as)));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
603 %!assert(issparse(vertcat(as,as)));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
604 %!assert(issparse(cat(1,as,as)));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
605 %!assert(issparse(cat(2,as,as)));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
606 %!assert(issparse([as,as]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
607 %!assert(issparse([as;as]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
608 %!assert(horzcat(as,as), sparse([af,af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
609 %!assert(vertcat(as,as), sparse([af;af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
610 %!assert(horzcat(as,as,as), sparse([af,af,af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
611 %!assert(vertcat(as,as,as), sparse([af;af;af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
612 %!assert([as,as], sparse([af,af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
613 %!assert([as;as], sparse([af;af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
614 %!assert([as,as,as], sparse([af,af,af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
615 %!assert([as;as;as], sparse([af;af;af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
616 %!assert(cat(2,as,as), sparse([af,af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
617 %!assert(cat(1,as,as), sparse([af;af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
618 %!assert(cat(2,as,as,as), sparse([af,af,af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
619 %!assert(cat(1,as,as,as), sparse([af;af;af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
620 %!assert(issparse([as,af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
621 %!assert(issparse([af,as]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
622 %!assert([as,af], sparse([af,af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
623 %!assert([as;af], sparse([af;af]));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
624
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
625 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
626 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
627
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
628 # operations which require square matrices.
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
629 gen_square_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
630 # The \ and / operator tests on square matrices
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
631 gen_square_divop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
632
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
633 cat >>$TESTS <<EOF
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
634 %!testif HAVE_UMFPACK
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
635 %! assert(det(bs+speye(size(bs))),det(bf+eye(size(bf))),100*eps*abs(det(bf+eye(size(bf)))))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
636
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
637 %!testif HAVE_UMFPACK
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
638 %! [l,u]=lu(sparse([1,1;1,1]));
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
639 %! assert(l*u,[1,1;1,1],10*eps);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
640
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
641 %!testif HAVE_UMFPACK
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
642 %! [l,u]=lu(sparse([1,1;1,1+i]));
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
643 %! assert(l,sparse([1,2,2],[1,1,2],1),10*eps);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
644 %! assert(u,sparse([1,1,2],[1,2,2],[1,1,1i]),10*eps);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
645
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
646 %!testif HAVE_UMFPACK ;# permuted LU
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
647 %! [L,U] = lu(bs);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
648 %! assert(L*U,bs,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
649
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
650 %!testif HAVE_UMFPACK ;# simple LU + row permutations
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
651 %! [L,U,P] = lu(bs);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
652 %! assert(P'*L*U,bs,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
653 %! # triangularity
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
654 %! [i,j,v]=find(L);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
655 %! assert(i-j>=0);
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
656 %! [i,j,v]=find(U);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
657 %! assert(j-i>=0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
658
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
659 %!testif HAVE_UMFPACK ;# simple LU + row/col permutations
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
660 %! [L,U,P,Q] = lu(bs);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
661 %! assert(P'*L*U*Q',bs,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
662 %! # triangularity
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
663 %! [i,j,v]=find(L);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
664 %! assert(i-j>=0);
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
665 %! [i,j,v]=find(U);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
666 %! assert(j-i>=0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
667
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
668 %!testif HAVE_UMFPACK ;# LU with vector permutations
8954
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
669 %! [L,U,P,Q] = lu(bs,'vector');
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
670 %! assert(L(P,:)*U(:,Q),bs,1e-10);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
671 %! # triangularity
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
672 %! [i,j,v]=find(L);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
673 %! assert(i-j>=0);
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
674 %! [i,j,v]=find(U);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
675 %! assert(j-i>=0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
676
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
677 %!testif HAVE_UMFPACK ;# LU with scaling
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
678 %! [L,U,P,Q,R] = lu(bs);
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
679 %! assert(R*P'*L*U*Q',bs,1e-10);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
680 %! # triangularity
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
681 %! [i,j,v]=find(L);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
682 %! assert(i-j>=0);
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
683 %! [i,j,v]=find(U);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
684 %! assert(j-i>=0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
685
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
686 %!testif HAVE_UMFPACK ;# inverse
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
687 %! assert(inv(bs)*bs,sparse(eye(rows(bs))),1e-10);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
688
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
689 %!assert(bf\as',bf\af',100*eps);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
690 %!assert(bs\af',bf\af',100*eps);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
691 %!assert(bs\as',sparse(bf\af'),100*eps);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
692
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
693 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
694 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
695
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
696 # Cholesky tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
697 gen_cholesky_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
698 cat >>$TESTS <<EOF
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
699 %!testif HAVE_CHOLMOD
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
700 %! assert(chol(bs)'*chol(bs),bs,1e-10);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
701 %!testif HAVE_CHOLMOD
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
702 %! assert(chol(bs,'lower')*chol(bs,'lower')',bs,1e-10);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
703 %!testif HAVE_CHOLMOD
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
704 %! assert(chol(bs,'lower'),chol(bs)',1e-10);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
705
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
706 %!testif HAVE_CHOLMOD ;# Return Partial Cholesky factorization
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
707 %! [RS,PS] = chol(bs);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
708 %! assert(RS'*RS,bs,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
709 %! assert(PS,0);
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
710 %! [LS,PS] = chol(bs,'lower');
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
711 %! assert(LS*LS',bs,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
712 %! assert(PS,0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
713
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
714 %!testif HAVE_CHOLMOD ;# Permuted Cholesky factorization
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
715 %! [RS,PS,QS] = chol(bs);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
716 %! assert(RS'*RS,QS*bs*QS',1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
717 %! assert(PS,0);
7515
f3c00dc0912b Eliminate the rest of the dispatched sparse functions
David Bateman <dbateman@free.fr>
parents: 7505
diff changeset
718 %! [LS,PS,QS] = chol(bs,'lower');
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
719 %! assert(LS*LS',QS*bs*QS',1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
720 %! assert(PS,0);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
721
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
722 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
723 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
724
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
725 # test scalar operations: uses af and real scalar bf; modifies as,bf,bs
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
726 gen_scalar_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
727 echo '%!test as=sparse(af);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
728 echo '%!test bs=bf;' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
729 gen_elementop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
730 gen_ordering_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
731 echo '%!test bf=bf+1i;' >>$TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
732 echo '%!test bs=bf;' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
733 gen_elementop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
734 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
735
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
736 # test matrix operations: uses af and bf; modifies as,bs
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
737 gen_rectangular_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
738 echo '%!test as=sparse(af);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
739 echo '%!test bs=sparse(bf);' >>$TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
740 gen_mapper_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
741 gen_real_mapper_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
742 gen_unaryop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
743 gen_elementop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
744 gen_sparsesparse_elementop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
745 gen_matrixop_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
746 # gen_divop_tests # Disable rectangular \ and / for now
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
747 gen_matrixdiag_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
748 gen_matrixreshape_tests
8954
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
749 cat >>$TESTS <<EOF
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
750 %!testif HAVE_UMFPACK ;# permuted LU
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
751 %! [L,U] = lu(bs);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
752 %! assert(L*U,bs,1e-10);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
753
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
754 %!testif HAVE_UMFPACK ;# simple LU + row permutations
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
755 %! [L,U,P] = lu(bs);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
756 %! assert(P'*L*U,bs,1e-10);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
757 %! # triangularity
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
758 %! [i,j,v]=find(L);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
759 %! assert(i-j>=0);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
760 %! [i,j,v]=find(U);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
761 %! assert(j-i>=0);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
762
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
763 %!testif HAVE_UMFPACK ;# simple LU + row/col permutations
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
764 %! [L,U,P,Q] = lu(bs);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
765 %! assert(P'*L*U*Q',bs,1e-10);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
766 %! # triangularity
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
767 %! [i,j,v]=find(L);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
768 %! assert(i-j>=0);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
769 %! [i,j,v]=find(U);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
770 %! assert(j-i>=0);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
771
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
772 %!testif HAVE_UMFPACK ;# LU with vector permutations
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
773 %! [L,U,P,Q] = lu(bs,'vector');
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
774 %! assert(L(P,:)*U(:,Q),bs,1e-10);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
775 %! # triangularity
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
776 %! [i,j,v]=find(L);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
777 %! assert(i-j>=0);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
778 %! [i,j,v]=find(U);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
779 %! assert(j-i>=0);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
780
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
781 %!testif HAVE_UMFPACK ;# LU with scaling
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
782 %! [L,U,P,Q,R] = lu(bs);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
783 %! assert(R*P'*L*U*Q',bs,1e-10);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
784 %! # triangularity
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
785 %! [i,j,v]=find(L);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
786 %! assert(i-j>=0);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
787 %! [i,j,v]=find(U);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
788 %! assert(j-i>=0);
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
789
97c84c4c2247 Make the column permutation vector in sparse LU cols()-long.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
790 EOF
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
791 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
792
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
793
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
794 # =======================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
795 # sparse assembly tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
796
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
797 gen_assembly_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
798 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
799 %%Assembly tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
800 %!test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
801 %! m=max([m;r(:)]);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
802 %! n=max([n;c(:)]);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
803 %! funiq=fsum=zeros(m,n);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
804 %! funiq(r(:) + m*(c(:)-1) ) = ones(size(r(:)));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
805 %! funiq = sparse(funiq);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
806 %! for k=1:length(r), fsum(r(k),c(k)) += 1; end
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
807 %! fsum = sparse(fsum);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
808 %!assert(sparse(r,c,1),sparse(fsum(1:max(r),1:max(c))));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
809 %!assert(sparse(r,c,1,"sum"),sparse(fsum(1:max(r),1:max(c))));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
810 %!assert(sparse(r,c,1,"unique"),sparse(funiq(1:max(r),1:max(c))));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
811 %!assert(sparse(r,c,1,m,n),sparse(fsum));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
812 %!assert(sparse(r,c,1,m,n,"sum"),sparse(fsum));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
813 %!assert(sparse(r,c,1,m,n,"unique"),sparse(funiq));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
814
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
815 %!assert(sparse(r,c,1i),sparse(fsum(1:max(r),1:max(c))*1i));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
816 %!assert(sparse(r,c,1i,"sum"),sparse(fsum(1:max(r),1:max(c))*1i));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
817 %!assert(sparse(r,c,1i,"unique"),sparse(funiq(1:max(r),1:max(c))*1i));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
818 %!assert(sparse(r,c,1i,m,n),sparse(fsum*1i));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
819 %!assert(sparse(r,c,1i,m,n,"sum"),sparse(fsum*1i));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
820 %!assert(sparse(r,c,1i,m,n,"unique"),sparse(funiq*1i));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
821
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
822 %!test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
823 %! if (issparse(funiq))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
824 %! assert(sparse(full(1i*funiq)),sparse(1i*funiq));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
825 %! endif
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
826
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
827 %!assert(sparse(full(funiq)),funiq);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
828
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
829
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
830 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
831 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
832
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
833 # =======================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
834 # sparse selection tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
835
7326
fcc6d853df9e [project @ 2007-12-19 21:27:23 by jwe]
jwe
parents: 7322
diff changeset
836 gen_scalar_select_tests () {
fcc6d853df9e [project @ 2007-12-19 21:27:23 by jwe]
jwe
parents: 7322
diff changeset
837 cat >>$TESTS <<EOF
fcc6d853df9e [project @ 2007-12-19 21:27:23 by jwe]
jwe
parents: 7322
diff changeset
838 %!assert (sparse(42)([1,1]),sparse([42,42]))
fcc6d853df9e [project @ 2007-12-19 21:27:23 by jwe]
jwe
parents: 7322
diff changeset
839 %!assert (sparse(42*1i)([1,1]),sparse([42,42].*1i))
fcc6d853df9e [project @ 2007-12-19 21:27:23 by jwe]
jwe
parents: 7322
diff changeset
840 EOF
fcc6d853df9e [project @ 2007-12-19 21:27:23 by jwe]
jwe
parents: 7322
diff changeset
841 }
fcc6d853df9e [project @ 2007-12-19 21:27:23 by jwe]
jwe
parents: 7322
diff changeset
842
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
843 gen_select_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
844 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
845 %!test as=sparse(af);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
846
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
847 %% Point tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
848 %!test idx=ridx(:)+rows(as)*(cidx(:)-1);
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
849 %!assert(sparse(as(idx)),sparse(af(idx)));
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
850 %!assert(as(idx),sparse(af(idx)));
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
851 %!assert(as(idx'),sparse(af(idx')));
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
852 %!assert(as(flipud(idx(:))),sparse(af(flipud(idx(:)))))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
853 %!assert(as([idx,idx]),sparse(af([idx,idx])));
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
854 %!error(as(reshape([idx;idx],[1,length(idx),2])));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
855
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
856 %% Slice tests
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
857 %!assert(as(ridx,cidx), sparse(af(ridx,cidx)))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
858 %!assert(as(ridx,:), sparse(af(ridx,:)))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
859 %!assert(as(:,cidx), sparse(af(:,cidx)))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
860 %!assert(as(:,:), sparse(af(:,:)))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
861 %!assert(as((size(as,1):-1:1),:),sparse(af((size(af,1):-1:1),:)))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
862 %!assert(as(:,(size(as,2):-1:1)),sparse(af(:,(size(af,2):-1:1))))
5603
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
863
7322
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents: 7287
diff changeset
864 %% Indexing tests
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents: 7287
diff changeset
865 %!assert(full(as([1,1],:)), af([1,1],:))
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents: 7287
diff changeset
866 %!assert(full(as(:,[1,1])), af(:,[1,1]))
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents: 7287
diff changeset
867 %!test
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents: 7287
diff changeset
868 %! [i,j,v] = find (as);
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents: 7287
diff changeset
869 %! assert (as(i(1),j(1))([1,1]), sparse([v(1),v(1)]))
40a17a87155e [project @ 2007-12-18 21:32:10 by jwe]
jwe
parents: 7287
diff changeset
870
5603
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
871 %% Assignment test
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
872 %!test
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
873 %! ts=as;ts(:,:)=ts(fliplr(1:size(as,1)),:);
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
874 %! tf=af;tf(:,:)=tf(fliplr(1:size(af,1)),:);
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
875 %! assert(ts,sparse(tf));
5603
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
876 %!test
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
877 %! ts=as;ts(fliplr(1:size(as,1)),:)=ts;
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
878 %! tf=af;tf(fliplr(1:size(af,1)),:)=tf;
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
879 %! assert(ts,sparse(tf));
5603
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
880 %!test
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
881 %! ts=as;ts(:,fliplr(1:size(as,2)))=ts;
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
882 %! tf=af;tf(:,fliplr(1:size(af,2)))=tf;
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
883 %! assert(ts,sparse(tf));
5603
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
884 %!test
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
885 %! ts(fliplr(1:size(as,1)))=as(:,1);tf(fliplr(1:size(af,1)))=af(:,1);
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
886 %! assert(ts,sparse(tf));
5603
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
887
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
888 %% Deletion tests
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
889 %!test
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
890 %! ts=as;ts(1,:)=[];tf=af;tf(1,:)=[];
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
891 %! assert(ts,sparse(tf));
5603
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
892 %!test
2c66c36d2698 [project @ 2006-01-31 11:57:47 by dbateman]
dbateman
parents: 5590
diff changeset
893 %! ts=as;ts(:,1)=[];tf=af;tf(:,1)=[];
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
894 %! assert(ts,sparse(tf));
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
895
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
896 %% Test 'end' keyword
7197
e1c865f21751 [project @ 2007-11-27 01:38:48 by jwe]
jwe
parents: 7080
diff changeset
897 %!assert(full(as(end)), af(end))
e1c865f21751 [project @ 2007-11-27 01:38:48 by jwe]
jwe
parents: 7080
diff changeset
898 %!assert(full(as(1,end)), af(1,end))
e1c865f21751 [project @ 2007-11-27 01:38:48 by jwe]
jwe
parents: 7080
diff changeset
899 %!assert(full(as(end,1)), af(end,1))
e1c865f21751 [project @ 2007-11-27 01:38:48 by jwe]
jwe
parents: 7080
diff changeset
900 %!assert(full(as(end,end)), af(end,end))
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
901 %!assert(as(2:end,2:end), sparse(af(2:end,2:end)))
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
902 %!assert(as(1:end-1,1:end-1), sparse(af(1:end-1,1:end-1)))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
903 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
904 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
905
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
906 # =======================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
907 # sparse save and load tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
908
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
909 gen_save_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
910 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
911 %!test # save ascii
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
912 %! savefile= tmpnam();
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
913 %! as_save=as; save("-text",savefile,"bf","as_save","af");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
914 %! clear as_save;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
915 %! load(savefile,"as_save");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
916 %! unlink(savefile);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
917 %! assert(as_save,sparse(af));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
918 %!test # save binary
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
919 %! savefile= tmpnam();
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
920 %! as_save=as; save("-binary",savefile,"bf","as_save","af");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
921 %! clear as_save;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
922 %! load(savefile,"as_save");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
923 %! unlink(savefile);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
924 %! assert(as_save,sparse(af));
8153
ec0a13863eb7 Only run tests that depend on HDF5 and QHull if Octave was actually
Soren Hauberg <hauberg@gmail.com>
parents: 7515
diff changeset
925 %!testif HAVE_HDF5 # save hdf5
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
926 %! savefile= tmpnam();
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
927 %! as_save=as; save("-hdf5",savefile,"bf","as_save","af");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
928 %! clear as_save;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
929 %! load(savefile,"as_save");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
930 %! unlink(savefile);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
931 %! assert(as_save,sparse(af));
8871
fb1c929dbbb7 tests vs. 64-bit indexing
John W. Eaton <jwe@octave.org>
parents: 8836
diff changeset
932 ## FIXME -- we should skip (or mark as an expected failure) the test for
fb1c929dbbb7 tests vs. 64-bit indexing
John W. Eaton <jwe@octave.org>
parents: 8836
diff changeset
933 ## saving sparse matrices to MAT files when using 64-bit indexing since
fb1c929dbbb7 tests vs. 64-bit indexing
John W. Eaton <jwe@octave.org>
parents: 8836
diff changeset
934 ## that is not implemented yet.
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
935 %!test # save matlab
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
936 %! savefile= tmpnam();
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
937 %! as_save=as; save("-mat",savefile,"bf","as_save","af");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
938 %! clear as_save;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
939 %! load(savefile,"as_save");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
940 %! unlink(savefile);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
941 %! assert(as_save,sparse(af));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
942 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
943 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
944
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
945 # =============================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
946 # Specific solver tests for matrices that will test all of the solver
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
947 # code. Uses alpha and beta
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
948 gen_solver_tests() {
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
949
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
950 if $preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
951 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
952 %! n=8;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
953 %! lf=diag(1:n);lf(n-1,1)=0.5*alpha;lf(n,2)=0.25*alpha;ls=sparse(lf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
954 %! uf=diag(1:n);uf(1,n-1)=2*alpha;uf(2,n)=alpha;us=sparse(uf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
955 %! ts=spdiags(ones(n,3),-1:1,n,n)+diag(1:n); tf = full(ts);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
956 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
957 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
958 cat >>$TESTS <<EOF
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
959 %! n=floor(lognrnd(8,2)+1)'
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
960 %! ls = tril(sprandn(8,8,0.2),-1).*alpha + n*speye(8); lf = full(ls);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
961 %! us = triu(sprandn(8,8,0.2),1).*alpha + n*speye(8); uf = full(us);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
962 %! ts = spdiags(randn(8,3),-1:1,8,8).*alpha; tf = full(ts);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
963 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
964 fi
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
965
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
966 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
967 %! df = diag(1:n).* alpha; ds = sparse(df);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
968 %! pdf = df(randperm(n),randperm(n)); pds = sparse(pdf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
969 %! plf = lf(randperm(n),randperm(n)); pls = sparse(plf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
970 %! puf = uf(randperm(n),randperm(n)); pus = sparse(puf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
971 %! bs = spdiags(repmat([1:n]',1,4),-2:1,n,n).*alpha; bf = full(bs);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
972 %! cf = lf + lf'; cs = sparse(cf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
973 %! bcf = bf + bf'; bcs = sparse(bcf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
974 %! tcf = tf + tf'; tcs = sparse(tcf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
975 %! xf = diag(1:n) + fliplr(diag(1:n)).*beta; xs = sparse(xf);
7080
7e465260a48f [project @ 2007-10-30 19:52:50 by jwe]
jwe
parents: 7055
diff changeset
976 %!assert(ds\xf,df\xf,1e-10);
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
977 %!assert(ds\xs,sparse(df\xf),1e-10);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
978 %!assert(pds\xf,pdf\xf,1e-10);
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
979 %!assert(pds\xs,sparse(pdf\xf),1e-10);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
980 %!assert(ls\xf,lf\xf,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
981 %!assert(sparse(ls\xs),sparse(lf\xf),1e-10);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
982 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
983 %! assert(pls\xf,plf\xf,1e-10);
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
984 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
985 %! assert(sparse(pls\xs),sparse(plf\xf),1e-10);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
986 %!assert(us\xf,uf\xf,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
987 %!assert(sparse(us\xs),sparse(uf\xf),1e-10);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
988 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
989 %! assert(pus\xf,puf\xf,1e-10);
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
990 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
991 %! assert(sparse(pus\xs),sparse(puf\xf),1e-10);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
992 %!assert(bs\xf,bf\xf,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
993 %!assert(sparse(bs\xs),sparse(bf\xf),1e-10);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
994 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
995 %! assert(cs\xf,cf\xf,1e-10);
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
996 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
997 %! assert(sparse(cs\xs),sparse(cf\xf),1e-10);
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
998 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
999 %! assert(bcs\xf,bcf\xf,1e-10);
7254
4d716690b084 [project @ 2007-12-04 21:47:48 by jwe]
jwe
parents: 7243
diff changeset
1000 %!testif HAVE_UMFPACK
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1001 %! assert(sparse(bcs\xs),sparse(bcf\xf),1e-10);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1002 %!assert(ts\xf,tf\xf,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1003 %!assert(sparse(ts\xs),sparse(tf\xf),1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1004 %!assert(tcs\xf,tcf\xf,1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1005 %!assert(sparse(tcs\xs),sparse(tcf\xf),1e-10);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1006
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1007 EOF
5610
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1008
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1009 cat >>$TESTS <<EOF
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1010 %% QR solver tests
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1011
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1012 %!function f(a, sz, feps)
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1013 %! b = randn(sz); x = a \b;
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1014 %! assert (a * x, b, feps);
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1015 %! b = randn(sz)+1i*randn(sz); x = a \ b;
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1016 %! assert (a * x, b, feps);
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1017 %! b = sprandn(sz(1),sz(2),0.2); x = a \b;
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1018 %! assert (sparse(a * x), b, feps);
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1019 %! b = sprandn(sz(1),sz(2),0.2)+1i*sprandn(sz(1),sz(2),0.2); x = a \b;
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1020 %! assert (sparse(a * x), b, feps);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1021 %!testif HAVE_CXSPARSE
5610
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1022 %! a = alpha*sprandn(10,11,0.2)+speye(10,11); f(a,[10,2],1e-10);
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1023 %! ## Test this by forcing matrix_type, as can't get a certain
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1024 %! ## result for over-determined systems.
5610
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1025 %! a = alpha*sprandn(10,10,0.2)+speye(10,10); matrix_type(a, "Singular");
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1026 %! f(a,[10,2],1e-10);
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1027
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1028 %% Rectanguar solver tests that don't use QR
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1029
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1030 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1031 %! ds = alpha * spdiags([1:11]',0,10,11);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1032 %! df = full(ds);
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1033 %! xf = beta * ones(10,2);
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1034 %! xs = speye(10,10);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1035 %!assert(ds\xf,df\xf,100*eps)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
1036 %!assert(ds\xs,sparse(df\xs),100*eps)
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1037 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1038 %! pds = ds([2,1,3:10],:);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1039 %! pdf = full(pds);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1040 %!assert(pds\xf,pdf\xf,100*eps)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
1041 %!assert(pds\xs,sparse(pdf\xs),100*eps)
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1042 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1043 %! ds = alpha * spdiags([1:11]',0,11,10);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1044 %! df = full(ds);
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1045 %! xf = beta * ones(11,2);
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1046 %! xs = speye(11,11);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1047 %!assert(ds\xf,df\xf,100*eps)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
1048 %!assert(ds\xs,sparse(df\xs),100*eps)
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1049 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1050 %! pds = ds([2,1,3:11],:);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1051 %! pdf = full(pds);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1052 %!assert(pds\xf,pdf\xf,100*eps)
7287
3f29467c1667 [project @ 2007-12-11 17:03:32 by jwe]
jwe
parents: 7254
diff changeset
1053 %!assert(pds\xs,sparse(pdf\xs),100*eps)
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1054 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1055 %! us = alpha*[[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]];
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1056 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1057 %! assert(us*(us\xf),xf,100*eps)
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1058 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1059 %! assert(us*(us\xs),xs,100*eps)
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1060 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1061 %! pus = us(:,[2,1,3:12]);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1062 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1063 %! assert(pus*(pus\xf),xf,100*eps)
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1064 %!testif HAVE_UMFPACK
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1065 %! assert(pus*(pus\xs),xs,100*eps)
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1066 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1067 %! us = alpha*[speye(11,9),[1;sparse(8,1);1;0]];
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1068 %!testif HAVE_CXSPARSE
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
1069 %! [c,r] = qr (us, xf);
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1070 %! assert(us\xf,r\c,100*eps)
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1071 %!testif HAVE_CXSPARSE
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
1072 %! [c,r] = qr (us, xs);
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1073 %! r = matrix_type(r,"Singular"); ## Force Matrix Type
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1074 %! assert(us\xs,r\c,100*eps)
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1075 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1076 %! pus = us(:,[1:8,10,9]);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1077 %!testif HAVE_CXSPARSE
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
1078 %! [c,r] = qr (pus, xf);
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1079 %! r = matrix_type(r,"Singular"); ## Force Matrix Type
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1080 %! assert(pus\xf,r\c,100*eps)
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1081 %!testif HAVE_CXSPARSE
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
1082 %! [c,r] = qr (pus, xs);
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1083 %! r = matrix_type(r,"Singular"); ## Force Matrix Type
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1084 %! assert(pus\xs,r\c,100*eps)
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1085 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1086 %! ls = alpha*[speye(9,11);[1,sparse(1,8),1,0]];
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1087 %! xf = beta * ones(10,2);
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1088 %! xs = speye(10,10);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1089 %!assert(ls*(ls\xf),xf,100*eps)
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1090 %!assert(ls*(ls\xs),xs,100*eps)
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1091 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1092 %! pls = ls([1:8,10,9],:);
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1093 %!assert(pls*(pls\xf),xf,100*eps)
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1094 %!assert(pls*(pls\xs),xs,100*eps)
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1095 %!test
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1096 %! ls = alpha*[speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]];
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1097 %! xf = beta * ones(12,2);
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1098 %! xs = speye(12,12);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1099 %!testif HAVE_CXSPARSE
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
1100 %! [c,r] = qr (ls, xf);
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1101 %! assert(ls\xf,r\c,100*eps)
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1102 %!testif HAVE_CXSPARSE
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
1103 %! [c,r] = qr (ls, xs);
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1104 %! r = matrix_type(r,"Singular"); ## Force Matrix Type
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1105 %! assert(ls\xs,r\c,100*eps)
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1106 %!testif HAVE_CXSPARSE
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1107 %! pls = ls(:,[1:8,10,9]);
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1108 %!testif HAVE_CXSPARSE
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
1109 %! [c,r] = qr (pls, xf);
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1110 %! r = matrix_type(r,"Singular"); ## Force Matrix Type
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1111 %! assert(pls\xf,r\c,100*eps)
7243
e8d7eed42935 [project @ 2007-12-04 02:10:17 by jwe]
jwe
parents: 7197
diff changeset
1112 %!testif HAVE_CXSPARSE
7505
f5005d9510f4 Remove dispatched sparse functions and treat in the generic versions of the functions
David Bateman <dbateman@free.fr>
parents: 7326
diff changeset
1113 %! [c,r] = qr (pls, xs);
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5630
diff changeset
1114 %! r = matrix_type(r,"Singular"); ## Force Matrix Type
5630
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1115 %! assert(pls\xs,r\c,100*eps)
512d0d11ae39 [project @ 2006-02-20 22:05:30 by dbateman]
dbateman
parents: 5610
diff changeset
1116
5610
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5603
diff changeset
1117 EOF
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1118 }
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1119
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1120
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1121 # =============================================================
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1122 # Putting it all together: defining the combined tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1123
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1124
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1125 # initial function
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1126 gen_function
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1127 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1128
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1129 # specific tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1130 if $preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1131 gen_specific_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1132 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1133 fi
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1134
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1135 # scalar operations
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1136 echo '%!shared as,af,bs,bf' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1137 if $preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1138 echo '%!test af=[1+1i,2-1i,0,0;0,0,0,3+2i;0,0,0,4];' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1139 echo '%!test bf=3;' >>$TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1140 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1141 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1142 %!test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1143 %! % generate m,n from 1 to <5000
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1144 %! m=floor(lognrnd(8,2)+1);
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1145 %! n=floor(lognrnd(8,2)+1);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1146 %! as=sprandn(m,n,0.3); af = full(as+1i*sprandn(as));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1147 %! bf = randn;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1148 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1149 fi
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1150
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1151 gen_scalar_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1152 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1153
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1154 # rectangular operations
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1155 if $preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1156 echo '%!test af=[1+1i,2-1i,0,0;0,0,0,3+2i;0,0,0,4];' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1157 echo '%!test bf=[0,1-1i,0,0;2+1i,0,0,0;3-1i,2+3i,0,0];' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1158 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1159 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1160 %!test
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1161 %! m=floor(lognrnd(8,2)+1);
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1162 %! n=floor(lognrnd(8,2)+1);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1163 %! as=sprandn(m,n,0.3); af = full(as+1i*sprandn(as));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1164 %! bs=sprandn(m,n,0.3); bf = full(bs+1i*sprandn(bs));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1165 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1166 fi
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1167
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1168 gen_rectangular_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1169 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1170 gen_save_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1171 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1172 echo '%!test bf=real(bf);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1173 gen_rectangular_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1174 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1175 gen_sparsesparse_ordering_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1176 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1177 echo '%!test af=real(af);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1178 gen_rectangular_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1179 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1180 gen_save_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1181 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1182 echo '%!test bf=bf+1i*(bf~=0);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1183 gen_rectangular_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1184 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1185
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1186 # square operations
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1187 if $preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1188 echo '%!test af=[1+1i,2-1i,0,0;0,0,0,3+2i;0,0,0,4];' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1189 echo '%! as=sparse(af);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1190 echo '%!test bf=[0,1-1i,0,0;2+1i,0,0,0;3-1i,2+3i,0,0];' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1191 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1192 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1193 %!test
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1194 %! m=floor(lognrnd(8,2)+1);
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1195 %! n=floor(lognrnd(8,2)+1);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1196 %! as=sprandn(m,n,0.3); af = full(as+1i*sprandn(as));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1197 %! bs=sprandn(m,n,0.3); bf = full(bs+1i*sprandn(bs));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1198 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1199 fi
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1200
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1201 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1202 %!test ;# invertible matrix
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1203 %! bf=af'*bf+max(abs([af(:);bf(:)]))*sparse(eye(columns(as)));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1204 %! bs=sparse(bf);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1205
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1206 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1207
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1208 gen_square_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1209 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1210 echo '%!test bf=real(bf);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1211 echo '%! bs=sparse(bf);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1212 gen_square_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1213 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1214 echo '%!test af=real(af);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1215 echo '%! as=sparse(af);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1216 gen_square_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1217 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1218 echo '%!test bf=bf+1i*(bf~=0);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1219 echo '%! bs=sparse(bf);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1220 gen_square_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1221 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1222
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1223 # cholesky tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1224 if $preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1225 echo '%!test bf=[5,0,1+1i,0;0,5,0,1-2i;1-1i,0,5,0;0,1+2i,0,5];' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1226 echo '%! bs=sparse(bf);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1227 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1228 echo '# This has a small chance of failing to create a positive definite matrix' >> $TESTS
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1229 echo '%!test n=floor(lognrnd(8,2)+1)' >> $TESTS
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1230 echo '%! bs = n*speye(n,n) + sprandn(n,n,0.3); bf = full(bs);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1231 fi
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1232
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1233 gen_cholesky_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1234 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1235 echo '%!test bf=real(bf);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1236 echo '%! bs=sparse(bf);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1237 gen_cholesky_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1238 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1239
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1240 # assembly tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1241 echo '%!shared r,c,m,n,fsum,funiq' >>$TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1242 if $use_preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1243 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1244 %!test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1245 %! r=[1,1,2,1,2,3];
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1246 %! c=[2,1,1,1,2,1];
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1247 %! m=n=0;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1248 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1249 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1250 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1251 %!test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1252 %! % generate m,n from 1 to <5000
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1253 %! m=floor(lognrnd(8,2)+1);
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1254 %! n=floor(lognrnd(8,2)+1);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1255 %! nz=ceil((m+n)/2);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1256 %! r=floor(rand(5,nz)*n)+1;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1257 %! c=floor(rand(5,nn)*m)+1;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1258 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1259 fi
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1260 gen_assembly_tests #includes real and complex tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1261 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1262
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1263 # slicing tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1264 echo '%!shared ridx,cidx,idx,as,af' >>$TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1265 if $use_preset; then
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1266 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1267 %!test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1268 %! af=[1+1i,2-1i,0,0;0,0,0,3+2i;0,0,0,4];
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1269 %! ridx=[1,3]; cidx=[2,3];
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1270 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1271 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1272 cat >>$TESTS <<EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1273 %!test
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1274 %! % generate m,n from 1 to <5000
10013
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1275 %! m=floor(lognrnd(8,2)+1);
25417bd9a3c7 Use lognrnd instead of deprecated lognormal_rnd in build_sparse_tests.sh
Rik <rdrider0-list@yahoo.com>
parents: 8954
diff changeset
1276 %! n=floor(lognrnd(8,2)+1);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1277 %! as=sprandn(m,n,0.3); af = full(as+1i*sprandn(as));
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1278 %! ridx = ceil(m*rand(1,ceil(rand*m))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1279 %! cidx = ceil(n*rand(1,ceil(rand*n))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1280 EOF
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1281 fi
7326
fcc6d853df9e [project @ 2007-12-19 21:27:23 by jwe]
jwe
parents: 7322
diff changeset
1282 gen_scalar_select_tests
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1283 gen_select_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1284 echo '%!test af=real(af);' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1285 gen_select_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1286 gen_section
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1287 echo '%!shared alpha,beta,df,pdf,lf,plf,uf,puf,bf,cf,bcf,tf,tcf,xf,ds,pds,ls,pls,us,pus,bs,cs,bcs,ts,tcs,xs' >>$TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1288 echo '%!test alpha=1;beta=1;' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1289 gen_solver_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1290 echo '%!test alpha=1;beta=1i;' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1291 gen_solver_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1292 echo '%!test alpha=1i;beta=1;' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1293 gen_solver_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1294 echo '%!test alpha=1i;beta=1i;' >> $TESTS
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1295 gen_solver_tests
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
1296 gen_section