Mercurial > hg > octave-lyh
changeset 14131:c3309e1ec50d stable
test: Use Octave coding and spacing conventions for fixed test scripts
* build_bc_overload_tests.sh, build_bc_overloads_expected.m,
build_sparse_tests.sh, test_args.m, test_contin.m, test_diag_perm.m,
test_error.m, test_eval-catch.m, test_for.m, test_func.m, test_global.m,
test_if.m, test_index.m, test_io.m, test_logical_index.m, test_null_assign.m,
test_parser.m, test_prefer.m, test_range.m, test_recursion.m, test_return.m,
test_slice.m, test_struct.m, test_switch.m, test_system.m, test_transpose.m,
test_try.m, test_unwind.m, test_while.m:
Use Octave coding and spacing conventions for fixed test scripts.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Sun, 01 Jan 2012 20:04:52 -0800 |
parents | e13bfbc2c4c5 |
children | 09cc39ba8312 |
files | test/build_bc_overload_tests.sh test/build_bc_overloads_expected.m test/build_sparse_tests.sh test/test_args.m test/test_contin.m test/test_diag_perm.m test/test_error.m test/test_eval-catch.m test/test_for.m test/test_func.m test/test_global.m test/test_if.m test/test_index.m test/test_io.m test/test_logical_index.m test/test_null_assign.m test/test_parser.m test/test_prefer.m test/test_range.m test/test_recursion.m test/test_return.m test/test_slice.m test/test_struct.m test/test_switch.m test/test_system.m test/test_transpose.m test/test_try.m test/test_unwind.m test/test_while.m |
diffstat | 29 files changed, 1601 insertions(+), 1836 deletions(-) [+] |
line wrap: on
line diff
--- a/test/build_bc_overload_tests.sh +++ b/test/build_bc_overload_tests.sh @@ -47,14 +47,16 @@ DIR="@$class" test -d $DIR || mkdir $DIR || { echo "error: could not create $DIR"; exit; } cat > $DIR/tbcover.m << EOF -% DO NOT EDIT - generated automatically +% !!! DO NOT EDIT !!! +% generated automatically by build_bc_overload_tests.sh function s = tbcover (x, y) s = '$class'; EOF done cat > tbcover.m << EOF -% DO NOT EDIT - generated automatically +% !!! DO NOT EDIT !!! +% generated automatically by build_bc_overload_tests.sh function s = tbcover (x, y) s = 'none'; EOF @@ -64,8 +66,9 @@ fi cat > test_bc_overloads.m << EOF -## THIS IS AN AUTOMATICALLY GENERATED FILE --- DO NOT EDIT --- -## instead modify build_bc_overload_tests.sh to generate the tests that you want. +## !!! DO NOT EDIT !!! +## THIS IS AN AUTOMATICALLY GENERATED FILE +## modify build_bc_overload_tests.sh to generate the tests you need. %!shared ex %! ex.double = 1;
--- a/test/build_bc_overloads_expected.m +++ b/test/build_bc_overloads_expected.m @@ -1,7 +1,7 @@ % this script is intended to be Matlab compatible % first, run the script % -% ./build_bc_overloads_tests.sh overloads_onely +% ./build_bc_overloads_tests.sh overloads_only % % to generate the overloaded functions. %
--- a/test/build_sparse_tests.sh +++ b/test/build_sparse_tests.sh @@ -121,8 +121,9 @@ # create initial file cat >$TESTS <<EOF -## THIS IS AN AUTOMATICALLY GENERATED FILE --- DO NOT EDIT --- -## instead modify build_sparse_tests.sh to generate the tests that you want. +## !!! DO NOT EDIT !!! +## THIS IS AN AUTOMATICALLY GENERATED FILE +## modify build_sparse_tests.sh to generate the tests you need. EOF @@ -150,21 +151,21 @@ gen_eat_zeros() { cat >>$TESTS <<EOF %% Make sure newly introduced zeros get eaten -%!assert(nnz(sparse([bf,bf,1]).^realmax),1); -%!assert(nnz(sparse([1,bf,bf]).^realmax),1); -%!assert(nnz(sparse([bf,bf,bf]).^realmax),0); +%!assert (nnz (sparse ([bf,bf,1]).^realmax), 1) +%!assert (nnz (sparse ([1,bf,bf]).^realmax), 1) +%!assert (nnz (sparse ([bf,bf,bf]).^realmax), 0) -%!assert(nnz(sparse([bf;bf;1]).^realmax),1); -%!assert(nnz(sparse([1;bf;bf]).^realmax),1); -%!assert(nnz(sparse([0.5;bf;bf]).^realmax),0); +%!assert (nnz (sparse ([bf;bf;1]).^realmax), 1) +%!assert (nnz (sparse ([1;bf;bf]).^realmax), 1) +%!assert (nnz (sparse ([0.5;bf;bf]).^realmax), 0) -%!assert(nnz(sparse([bf,bf,1])*realmin),1); -%!assert(nnz(sparse([1,bf,bf])*realmin),1); -%!assert(nnz(sparse([bf,bf,bf])*realmin),0); +%!assert (nnz (sparse ([bf,bf,1])*realmin), 1) +%!assert (nnz (sparse ([1,bf,bf])*realmin), 1) +%!assert (nnz (sparse ([bf,bf,bf])*realmin), 0) -%!assert(nnz(sparse([bf;bf;1])*realmin),1); -%!assert(nnz(sparse([1;bf;bf])*realmin),1); -%!assert(nnz(sparse([bf;bf;bf])*realmin),0); +%!assert (nnz (sparse ([bf;bf;1])*realmin), 1) +%!assert (nnz (sparse ([1;bf;bf])*realmin), 1) +%!assert (nnz (sparse ([bf;bf;bf])*realmin), 0) EOF } @@ -174,25 +175,25 @@ %!test # segfault test from edd@debian.org %! n = 510; -%! sparse(kron((1:n)', ones(n,1)), kron(ones(n,1), (1:n)'), ones(n)); +%! sparse (kron ((1:n)', ones(n,1)), kron (ones(n,1), (1:n)'), ones (n)); %% segfault tests from Fabian@isas-berlin.de %% Note that the last four do not fail, but rather give a warning %% of a singular matrix, which is consistent with the full matrix -%% behaviour. They are therefore disabled.. +%% behaviour. They are therefore disabled. %!testif HAVE_UMFPACK -%! assert(inv(sparse([1,1;1,1+i])),sparse([1-1i,1i;1i,-1i]),10*eps); -% !error inv( sparse( [1,1;1,1] ) ); -% !error inv( sparse( [0,0;0,1] ) ); -% !error inv( sparse( [0,0;0,1+i] ) ); -% !error inv( sparse( [0,0;0,0] ) ); +%! assert (inv (sparse ([1,1;1,1+i])), sparse([1-1i,1i;1i,-1i]), 10*eps); +%#!error inv ( sparse ([1,1;1,1] ) ); +%#!error inv ( sparse ([0,0;0,1] ) ); +%#!error inv ( sparse ([0,0;0,1+i]) ); +%#!error inv ( sparse ([0,0;0,0] ) ); %% error handling in constructor -%!error sparse(1,[2,3],[1,2,3]); -%!error sparse([1,1],[1,1],[1,2],3,3,"bogus"); -%!error sparse([1,3],[1,-4],[3,5],2,2); -%!error sparse([1,3],[1,-4],[3,5i],2,2); -%!error sparse(-1,-1,1); +%!error sparse (1,[2,3],[1,2,3]) +%!error sparse ([1,1],[1,1],[1,2],3,3,"bogus") +%!error sparse ([1,3],[1,-4],[3,5],2,2) +%!error sparse ([1,3],[1,-4],[3,5i],2,2) +%!error sparse (-1,-1,1) EOF } @@ -207,17 +208,18 @@ echo '%!test bf=realmin+realmin*1i;' >> $TESTS gen_eat_zeros cat >>$TESTS <<EOF -%!assert(nnz(sparse([-1,realmin,realmin]).^1.5),1); -%!assert(nnz(sparse([-1,realmin,realmin,1]).^1.5),2); +%!assert (nnz (sparse ([-1,realmin,realmin]).^1.5), 1) +%!assert (nnz (sparse ([-1,realmin,realmin,1]).^1.5), 2) -%!assert(nnz(sparse(1,1,0)),0); # Make sure scalar v==0 doesn't confuse matters -%!assert(nnz(sparse(eye(3))*0),0); -%!assert(nnz(sparse(eye(3))-sparse(eye(3))),0); +## Make sure scalar v==0 doesn't confuse matters +%!assert (nnz (sparse (1,1,0)), 0) +%!assert (nnz (sparse (eye (3))*0), 0) +%!assert (nnz (sparse (eye (3))-sparse (eye (3))), 0) %!test %! wdbz = warning ("query", "Octave:divide-by-zero"); %! warning ("off", "Octave:divide-by-zero"); -%! assert(full(sparse(eye(3))/0),full(eye(3)/0)); +%! assert (full (sparse (eye (3))/0), full (eye (3)/0)); %! warning (wdbz.state, "Octave:divide-by-zero"); EOF @@ -234,9 +236,9 @@ ## test_sparse ## ## run preset sparse tests. All should pass. -function [passes,tests] = test_sparse - disp("writing test output to sptest.log"); - test("test_sparse","normal","sptest.log"); +function [passes, tests] = test_sparse + disp ("writing test output to sptest.log"); + test ("test_sparse", "normal", "sptest.log"); endfunction EOF @@ -253,12 +255,12 @@ ## end ## The test log is appended to sprandomtest.log function [passes,total] = test_sprandom - warning("untested --- fix the source in build_sparse_tests.sh"); - disp("appending test output to sprandomtest.log"); - fid = fopen("sprandomtest.log","at"); - test("test_sprandom","normal",fid); + warning ("untested --- fix the source in build_sparse_tests.sh"); + disp ("appending test output to sprandomtest.log"); + fid = fopen ("sprandomtest.log", "at"); + test ("test_sprandom", "normal", fid); ##[passes, total] = test("sprandomtest","normal",fid); - fclose(fid); + fclose (fid); endfunction EOF @@ -274,27 +276,27 @@ gen_ordering_tests() { cat >>$TESTS <<EOF %% real values can be ordered (uses as,af) -%!assert(as<=bf,sparse(af<=bf)) -%!assert(bf<=as,sparse(bf<=af)) +%!assert (as<=bf, sparse (af<=bf)) +%!assert (bf<=as, sparse (bf<=af)) -%!assert(as>=bf,sparse(af>=bf)) -%!assert(bf>=as,sparse(bf>=af)) +%!assert (as>=bf, sparse (af>=bf)) +%!assert (bf>=as, sparse (bf>=af)) -%!assert(as<bf,sparse(af<bf)) -%!assert(bf<as,sparse(bf<af)) +%!assert (as<bf, sparse (af<bf)) +%!assert (bf<as, sparse (bf<af)) -%!assert(as>bf,sparse(af>bf)) -%!assert(bf>as,sparse(bf>af)) +%!assert (as>bf, sparse (af>bf)) +%!assert (bf>as, sparse (bf>af)) EOF } gen_sparsesparse_ordering_tests() { cat >>$TESTS <<EOF -%!assert(as<=bs,sparse(af<=bf)) -%!assert(as>=bs,sparse(af>=bf)) -%!assert(as<bs,sparse(af<bf)) -%!assert(as>bs,sparse(af>bf)) +%!assert (as<=bs, sparse (af<=bf)) +%!assert (as>=bs, sparse (af>=bf)) +%!assert (as<bs, sparse (af<bf)) +%!assert (as>bs, sparse (af>bf)) EOF } @@ -302,46 +304,46 @@ gen_elementop_tests() { cat >>$TESTS <<EOF %% Elementwise binary tests (uses as,af,bs,bf,scalar) -%!assert(as==bs,sparse(af==bf)) -%!assert(bf==as,sparse(bf==af)) +%!assert (as==bs, sparse (af==bf)) +%!assert (bf==as, sparse (bf==af)) -%!assert(as!=bf,sparse(af!=bf)) -%!assert(bf!=as,sparse(bf!=af)) +%!assert (as!=bf, sparse (af!=bf)) +%!assert (bf!=as, sparse (bf!=af)) -%!assert(as+bf,af+bf) -%!assert(bf+as,bf+af) +%!assert (as+bf, af+bf) +%!assert (bf+as, bf+af) -%!assert(as-bf,af-bf) -%!assert(bf-as,bf-af) +%!assert (as-bf, af-bf) +%!assert (bf-as, bf-af) -%!assert(as.*bf,sparse(af.*bf)) -%!assert(bf.*as,sparse(bf.*af)) +%!assert (as.*bf, sparse (af.*bf)) +%!assert (bf.*as, sparse (bf.*af)) -%!assert(as./bf,sparse(af./bf),100*eps) -%!assert(bf.\as,sparse(bf.\af),100*eps) +%!assert (as./bf, sparse (af./bf), 100*eps) +%!assert (bf.\as, sparse (bf.\af), 100*eps) %!test %! sv = as.^bf; %! fv = af.^bf; -%! idx = find(af~=0); -%! assert(sv(:)(idx),sparse(fv(:)(idx)),100*eps) +%! idx = find (af~=0); +%! assert (sv(:)(idx), sparse (fv(:)(idx)), 100*eps) EOF } gen_sparsesparse_elementop_tests() { cat >>$TESTS <<EOF -%!assert(as==bs,sparse(af==bf)) -%!assert(as!=bs,sparse(af!=bf)) -%!assert(as+bs,sparse(af+bf)) -%!assert(as-bs,sparse(af-bf)) -%!assert(as.*bs,sparse(af.*bf)) -%!xtest assert(as./bs,sparse(af./bf),100*eps); +%!assert (as==bs, sparse (af==bf)) +%!assert (as!=bs, sparse (af!=bf)) +%!assert (as+bs, sparse (af+bf)) +%!assert (as-bs, sparse (af-bf)) +%!assert (as.*bs, sparse (af.*bf)) +%!xtest assert (as./bs, sparse (af./bf), 100*eps) %!test %! sv = as.^bs; %! fv = af.^bf; -%! idx = find(af~=0); -%! assert(sv(:)(idx),sparse(fv(:)(idx)),100*eps) +%! idx = find (af~=0); +%! assert(sv(:)(idx), sparse (fv(:)(idx)), 100*eps) EOF } @@ -350,12 +352,12 @@ gen_divop_tests() { cat >>$TESTS <<EOF %% Matrix-matrix operators (uses af,as,bs,bf) -%!assert(as/bf,af/bf,100*eps) -%!assert(af/bs,af/bf,100*eps) -%!assert(as/bs,sparse(af/bf),100*eps) -%!assert(bs\af',bf\af',100*eps) -%!assert(bf\as',bf\af',100*eps) -%!assert(bs\as',sparse(bf\af'),100*eps) +%!assert (as/bf, af/bf, 100*eps) +%!assert (af/bs, af/bf, 100*eps) +%!assert (as/bs, sparse (af/bf), 100*eps) +%!assert (bs\af', bf\af', 100*eps) +%!assert (bf\as', bf\af', 100*eps) +%!assert (bs\as', sparse (bf\af'), 100*eps) EOF } @@ -364,12 +366,12 @@ gen_square_divop_tests() { cat >>$TESTS <<EOF %% Matrix-matrix operators (uses af,as,bs,bf) -%!assert(as/bf,af/bf,100*eps) -%!assert(af/bs,af/bf,100*eps) -%!assert(as/bs,sparse(af/bf),100*eps) -%!assert(bs\af',bf\af',100*eps) -%!assert(bf\as',bf\af',100*eps) -%!assert(bs\as',sparse(bf\af'),100*eps) +%!assert (as/bf, af/bf, 100*eps) +%!assert (af/bs, af/bf, 100*eps) +%!assert (as/bs, sparse (af/bf), 100*eps) +%!assert (bs\af', bf\af', 100*eps) +%!assert (bf\as', bf\af', 100*eps) +%!assert (bs\as', sparse (bf\af'), 100*eps) EOF } @@ -378,9 +380,9 @@ gen_matrixop_tests() { cat >>$TESTS <<EOF %% Matrix-matrix operators (uses af,as,bs,bf) -%!assert(as*bf',af*bf') -%!assert(af*bs',af*bf') -%!assert(as*bs',sparse(af*bf')) +%!assert (as*bf', af*bf') +%!assert (af*bs', af*bf') +%!assert (as*bs', sparse (af*bf')) EOF } @@ -389,22 +391,23 @@ gen_matrixdiag_tests() { cat >>$TESTS <<EOF %% Matrix diagonal tests (uses af,as,bf,bs) -%!assert(diag(as),sparse(diag(af))) -%!assert(diag(bs),sparse(diag(bf))) -%!assert(diag(as,1),sparse(diag(af,1))) -%!assert(diag(bs,1),sparse(diag(bf,1))) -%!assert(diag(as,-1),sparse(diag(af,-1))) -%!assert(diag(bs,-1),sparse(diag(bf,-1))) -%!assert(diag(as(:)),sparse(diag(af(:)))) -%!assert(diag(as(:),1),sparse(diag(af(:),1))) -%!assert(diag(as(:),-1),sparse(diag(af(:),-1))) -%!assert(diag(as(:)'),sparse(diag(af(:)'))) -%!assert(diag(as(:)',1),sparse(diag(af(:)',1))) -%!assert(diag(as(:)',-1),sparse(diag(af(:)',-1))) -%!assert(spdiags(as,[0,1]),[diag(af,0),diag(af,1)]) -%!test [tb,tc]=spdiags(as); -%! assert(spdiags(tb,tc,sparse(zeros(size(as)))),as) -%! assert(spdiags(tb,tc,size(as,1),size(as,2)),as) +%!assert (diag (as), sparse (diag (af))) +%!assert (diag (bs), sparse (diag (bf))) +%!assert (diag (as,1), sparse (diag (af,1))) +%!assert (diag (bs,1), sparse (diag (bf,1))) +%!assert (diag (as,-1), sparse (diag (af,-1))) +%!assert (diag (bs,-1), sparse (diag (bf,-1))) +%!assert (diag (as(:)), sparse (diag (af(:)))) +%!assert (diag (as(:),1), sparse (diag (af(:),1))) +%!assert (diag (as(:),-1), sparse (diag (af(:),-1))) +%!assert (diag (as(:)'), sparse (diag (af(:)'))) +%!assert (diag (as(:)',1), sparse (diag (af(:)',1))) +%!assert (diag (as(:)',-1), sparse (diag (af(:)',-1))) +%!assert (spdiags (as,[0,1]), [diag(af,0), diag(af,1)]) +%!test +%! [tb,tc]=spdiags(as); +%! assert (spdiags (tb,tc,sparse (zeros (size (as)))), as); +%! assert (spdiags (tb,tc,size (as,1),size (as,2)), as); EOF } @@ -425,7 +428,7 @@ # test mapper matrix operations: uses as,af print_mapper_test() { -echo "%!assert($1(as),sparse($1(af)))" >>$TESTS +echo "%!assert ($1(as), sparse ($1(af)))" >>$TESTS } print_real_mapper_test() { @@ -433,11 +436,11 @@ %!test %! wn2s = warning ("query", "Octave:num-to-str"); %! warning ("off", "Octave:num-to-str"); -%! if isreal(af) +%! if (isreal (af)) %! if ($2) -%! assert($1(as),sparse($1(af))) +%! assert ($1(as), sparse ($1(af))); %! else -%! assert($1(as),$1(af)) +%! assert ($1(as), $1(af)); %! endif %! endif %! warning (wn2s.state, "Octave:num-to-str"); @@ -481,9 +484,9 @@ # Specific tests for certain mapper functions cat >>$TESTS <<EOF -%!assert(issparse(abs(as))&&isreal(abs(as))) -%!assert(issparse(real(as))&&isreal(real(as))) -%!assert(issparse(imag(as))&&isreal(imag(as))) +%!assert (issparse (abs (as)) && isreal (abs (as))) +%!assert (issparse (real (as)) && isreal (real (as))) +%!assert (issparse (imag (as)) && isreal (imag (as))) EOF } @@ -514,10 +517,10 @@ %!test %! wn2s = warning ("query", "Octave:num-to-str"); %! warning ("off", "Octave:num-to-str"); -%! if isreal(af) -%! assert(toascii(as),toascii(af)) -%! assert(tolower(as),tolower(af)) -%! assert(toupper(as),toupper(af)) +%! if (isreal (af)) +%! assert (toascii (as), toascii (af)); +%! assert (tolower (as), tolower (af)); +%! assert (toupper (as), toupper (af)); %! endif %! warning (wn2s.state, "Octave:num-to-str"); @@ -528,99 +531,99 @@ gen_unaryop_tests() { cat >>$TESTS <<EOF %% Unary matrix tests (uses af,as) -%!assert(issparse(as)) -%!assert(!issparse(af)) -%!assert(!(issparse(af)&&iscomplex(af))) -%!assert(!(issparse(af)&&isreal(af))) -%!assert(sum(as),sparse(sum(af))) -%!assert(sum(as,1),sparse(sum(af,1))) -%!assert(sum(as,2),sparse(sum(af,2))) -%!assert(cumsum(as),sparse(cumsum(af))) -%!assert(cumsum(as,1),sparse(cumsum(af,1))) -%!assert(cumsum(as,2),sparse(cumsum(af,2))) -%!assert(sumsq(as),sparse(sumsq(af))) -%!assert(sumsq(as,1),sparse(sumsq(af,1))) -%!assert(sumsq(as,2),sparse(sumsq(af,2))) -%!assert(prod(as),sparse(prod(af))) -%!assert(prod(as,1),sparse(prod(af,1))) -%!assert(prod(as,2),sparse(prod(af,2))) -%!assert(cumprod(as),sparse(cumprod(af))) -%!assert(cumprod(as,1),sparse(cumprod(af,1))) -%!assert(cumprod(as,2),sparse(cumprod(af,2))) +%!assert (issparse (as)) +%!assert (!issparse (af)) +%!assert (! (issparse (af) && iscomplex (af))) +%!assert (! (issparse (af) && isreal (af))) +%!assert (sum (as), sparse (sum (af))) +%!assert (sum (as,1), sparse (sum (af,1))) +%!assert (sum (as,2), sparse (sum (af,2))) +%!assert (cumsum (as), sparse (cumsum (af))) +%!assert (cumsum (as,1), sparse (cumsum (af,1))) +%!assert (cumsum (as,2), sparse (cumsum (af,2))) +%!assert (sumsq (as), sparse (sumsq (af))) +%!assert (sumsq (as,1), sparse (sumsq (af,1))) +%!assert (sumsq (as,2), sparse (sumsq (af,2))) +%!assert (prod (as), sparse (prod (af))) +%!assert (prod (as,1), sparse (prod (af,1))) +%!assert (prod (as,2), sparse (prod (af,2))) +%!assert (cumprod (as), sparse (cumprod (af))) +%!assert (cumprod (as,1), sparse (cumprod (af,1))) +%!assert (cumprod (as,2), sparse (cumprod (af,2))) -%!assert(min(as),sparse(min(af))) -%!assert(full(min(as(:))),min(af(:))) -%!assert(min(as,[],1),sparse(min(af,[],1))) -%!assert(min(as,[],2),sparse(min(af,[],2))) -%!assert(min(as,[],1),sparse(min(af,[],1))) -%!assert(min(as,0),sparse(min(af,0))) -%!assert(min(as,bs),sparse(min(af,bf))) -%!assert(max(as),sparse(max(af))) -%!assert(full(max(as(:))),max(af(:))) -%!assert(max(as,[],1),sparse(max(af,[],1))) -%!assert(max(as,[],2),sparse(max(af,[],2))) -%!assert(max(as,[],1),sparse(max(af,[],1))) -%!assert(max(as,0),sparse(max(af,0))) -%!assert(max(as,bs),sparse(max(af,bf))) +%!assert (min (as), sparse (min (af))) +%!assert (full (min (as(:))),min (af(:))) +%!assert (min (as,[],1), sparse (min (af,[],1))) +%!assert (min (as,[],2), sparse (min (af,[],2))) +%!assert (min (as,[],1), sparse (min (af,[],1))) +%!assert (min (as,0), sparse (min (af,0))) +%!assert (min (as,bs), sparse (min (af,bf))) +%!assert (max (as), sparse (max (af))) +%!assert (full (max (as(:))), max (af(:))) +%!assert (max (as,[],1), sparse (max (af,[],1))) +%!assert (max (as,[],2), sparse (max (af,[],2))) +%!assert (max (as,[],1), sparse (max (af,[],1))) +%!assert (max (as,0), sparse (max (af,0))) +%!assert (max (as,bs), sparse (max (af,bf))) -%!assert(as==as) -%!assert(as==af) -%!assert(af==as) +%!assert (as==as) +%!assert (as==af) +%!assert (af==as) %!test -%! [ii,jj,vv,nr,nc] = find(as); -%! assert(af,full(sparse(ii,jj,vv,nr,nc))); -%!assert(nnz(as),sum(af(:)!=0)) -%!assert(nnz(as),nnz(af)) -%!assert(issparse(as.')) -%!assert(issparse(as')) -%!assert(issparse(-as)) -%!assert(~as,sparse(~af)) -%!assert(as.', sparse(af.')); -%!assert(as', sparse(af')); -%!assert(-as, sparse(-af)); -%!assert(~as, sparse(~af)); -%!error [i,j]=size(af);as(i-1,j+1); -%!error [i,j]=size(af);as(i+1,j-1); +%! [ii,jj,vv,nr,nc] = find (as); +%! assert (af, full (sparse (ii,jj,vv,nr,nc))); +%!assert (nnz (as), sum (af(:)!=0)) +%!assert (nnz (as), nnz (af)) +%!assert (issparse (as.')) +%!assert (issparse (as')) +%!assert (issparse (-as)) +%!assert (~as, sparse (~af)) +%!assert (as.', sparse (af.')); +%!assert (as', sparse (af')); +%!assert (-as, sparse (-af)); +%!assert (~as, sparse (~af)); +%!error [i,j]=size (af);as(i-1,j+1); +%!error [i,j]=size (af);as(i+1,j-1); %!test -%! [Is,Js,Vs] = find(as); -%! [If,Jf,Vf] = find(af); -%! assert(Is,If); -%! assert(Js,Jf); -%! assert(Vs,Vf); +%! [Is,Js,Vs] = find (as); +%! [If,Jf,Vf] = find (af); +%! assert (Is, If); +%! assert (Js, Jf); +%! assert (Vs, Vf); %!error as(0,1); %!error as(1,0); -%!assert(find(as),find(af)) +%!assert (find (as), find (af)) %!test -%! [i,j,v] = find(as); -%! [m,n] = size(as); -%! x = sparse(i,j,v,m,n); -%! assert(x,as); +%! [i,j,v] = find (as); +%! [m,n] = size (as); +%! x = sparse (i,j,v,m,n); +%! assert (x, as); %!test -%! [i,j,v,m,n] = find(as); -%! x = sparse(i,j,v,m,n); -%! assert(x,as); -%!assert(issparse(horzcat(as,as))); -%!assert(issparse(vertcat(as,as))); -%!assert(issparse(cat(1,as,as))); -%!assert(issparse(cat(2,as,as))); -%!assert(issparse([as,as])); -%!assert(issparse([as;as])); -%!assert(horzcat(as,as), sparse([af,af])); -%!assert(vertcat(as,as), sparse([af;af])); -%!assert(horzcat(as,as,as), sparse([af,af,af])); -%!assert(vertcat(as,as,as), sparse([af;af;af])); -%!assert([as,as], sparse([af,af])); -%!assert([as;as], sparse([af;af])); -%!assert([as,as,as], sparse([af,af,af])); -%!assert([as;as;as], sparse([af;af;af])); -%!assert(cat(2,as,as), sparse([af,af])); -%!assert(cat(1,as,as), sparse([af;af])); -%!assert(cat(2,as,as,as), sparse([af,af,af])); -%!assert(cat(1,as,as,as), sparse([af;af;af])); -%!assert(issparse([as,af])); -%!assert(issparse([af,as])); -%!assert([as,af], sparse([af,af])); -%!assert([as;af], sparse([af;af])); +%! [i,j,v,m,n] = find (as); +%! x = sparse (i,j,v,m,n); +%! assert (x, as); +%!assert (issparse (horzcat (as,as))); +%!assert (issparse (vertcat (as,as))); +%!assert (issparse (cat (1,as,as))); +%!assert (issparse (cat (2,as,as))); +%!assert (issparse ([as,as])); +%!assert (issparse ([as;as])); +%!assert (horzcat (as,as), sparse ([af,af])); +%!assert (vertcat (as,as), sparse ([af;af])); +%!assert (horzcat (as,as,as), sparse ([af,af,af])); +%!assert (vertcat (as,as,as), sparse ([af;af;af])); +%!assert ([as,as], sparse ([af,af])); +%!assert ([as;as], sparse ([af;af])); +%!assert ([as,as,as], sparse ([af,af,af])); +%!assert ([as;as;as], sparse ([af;af;af])); +%!assert (cat (2,as,as), sparse ([af,af])); +%!assert (cat (1,as,as), sparse ([af;af])); +%!assert (cat (2,as,as,as), sparse ([af,af,af])); +%!assert (cat (1,as,as,as), sparse ([af;af;af])); +%!assert (issparse ([as,af])); +%!assert (issparse ([af,as])); +%!assert ([as,af], sparse ([af,af])); +%!assert ([as;af], sparse ([af;af])); EOF } @@ -635,60 +638,60 @@ %! assert(det(bs+speye(size(bs))),det(bf+eye(size(bf))),100*eps*abs(det(bf+eye(size(bf))))) %!testif HAVE_UMFPACK -%! [l,u]=lu(sparse([1,1;1,1])); -%! assert(l*u,[1,1;1,1],10*eps); +%! [l,u] = lu (sparse ([1,1;1,1])); +%! assert (l*u, [1,1;1,1], 10*eps); %!testif HAVE_UMFPACK -%! [l,u]=lu(sparse([1,1;1,1+i])); -%! assert(l,sparse([1,2,2],[1,1,2],1),10*eps); -%! assert(u,sparse([1,1,2],[1,2,2],[1,1,1i]),10*eps); +%! [l,u] = lu (sparse ([1,1;1,1+i])); +%! assert (l, sparse ([1,2,2],[1,1,2],1), 10*eps); +%! assert (u, sparse ([1,1,2],[1,2,2],[1,1,1i]), 10*eps); %!testif HAVE_UMFPACK ;# permuted LU -%! [L,U] = lu(bs); -%! assert(L*U,bs,1e-10); +%! [L,U] = lu (bs); +%! assert (L*U, bs, 1e-10); %!testif HAVE_UMFPACK ;# simple LU + row permutations -%! [L,U,P] = lu(bs); -%! assert(P'*L*U,bs,1e-10); +%! [L,U,P] = lu (bs); +%! assert (P'*L*U, bs, 1e-10); %! # triangularity -%! [i,j,v]=find(L); -%! assert(i-j>=0); -%! [i,j,v]=find(U); -%! assert(j-i>=0); +%! [i,j,v] = find (L); +%! assert (i-j>=0); +%! [i,j,v] = find (U); +%! assert (j-i>=0); %!testif HAVE_UMFPACK ;# simple LU + row/col permutations -%! [L,U,P,Q] = lu(bs); -%! assert(P'*L*U*Q',bs,1e-10); +%! [L,U,P,Q] = lu (bs); +%! assert (P'*L*U*Q', bs, 1e-10); %! # triangularity -%! [i,j,v]=find(L); -%! assert(i-j>=0); -%! [i,j,v]=find(U); -%! assert(j-i>=0); +%! [i,j,v] = find (L); +%! assert (i-j>=0); +%! [i,j,v] = find (U); +%! assert (j-i>=0); %!testif HAVE_UMFPACK ;# LU with vector permutations -%! [L,U,P,Q] = lu(bs,'vector'); -%! assert(L(P,:)*U(:,Q),bs,1e-10); +%! [L,U,P,Q] = lu (bs,'vector'); +%! assert (L(P,:)*U(:,Q), bs, 1e-10); %! # triangularity -%! [i,j,v]=find(L); -%! assert(i-j>=0); -%! [i,j,v]=find(U); -%! assert(j-i>=0); +%! [i,j,v] = find (L); +%! assert (i-j>=0); +%! [i,j,v] = find (U); +%! assert (j-i>=0); %!testif HAVE_UMFPACK ;# LU with scaling -%! [L,U,P,Q,R] = lu(bs); -%! assert(R*P'*L*U*Q',bs,1e-10); +%! [L,U,P,Q,R] = lu (bs); +%! assert (R*P'*L*U*Q', bs, 1e-10); %! # triangularity -%! [i,j,v]=find(L); -%! assert(i-j>=0); -%! [i,j,v]=find(U); -%! assert(j-i>=0); +%! [i,j,v] = find (L); +%! assert (i-j>=0); +%! [i,j,v] = find (U); +%! assert (j-i>=0); %!testif HAVE_UMFPACK ;# inverse -%! assert(inv(bs)*bs,sparse(eye(rows(bs))),1e-10); +%! assert (inv (bs)*bs, sparse (eye (rows (bs))), 1e-10); -%!assert(bf\as',bf\af',100*eps); -%!assert(bs\af',bf\af',100*eps); -%!assert(bs\as',sparse(bf\af'),100*eps); +%!assert (bf\as', bf\af', 100*eps); +%!assert (bs\af', bf\af', 100*eps); +%!assert (bs\as', sparse (bf\af'), 100*eps); EOF } @@ -697,27 +700,27 @@ gen_cholesky_tests() { cat >>$TESTS <<EOF %!testif HAVE_CHOLMOD -%! assert(chol(bs)'*chol(bs),bs,1e-10); +%! assert (chol (bs)'*chol (bs), bs, 1e-10); %!testif HAVE_CHOLMOD -%! assert(chol(bs,'lower')*chol(bs,'lower')',bs,1e-10); +%! assert (chol (bs,'lower')*chol (bs,'lower')', bs, 1e-10); %!testif HAVE_CHOLMOD -%! assert(chol(bs,'lower'),chol(bs)',1e-10); +%! assert (chol (bs,'lower'), chol (bs)', 1e-10); %!testif HAVE_CHOLMOD ;# Return Partial Cholesky factorization -%! [RS,PS] = chol(bs); -%! assert(RS'*RS,bs,1e-10); -%! assert(PS,0); -%! [LS,PS] = chol(bs,'lower'); -%! assert(LS*LS',bs,1e-10); -%! assert(PS,0); +%! [RS,PS] = chol (bs); +%! assert (RS'*RS, bs, 1e-10); +%! assert (PS, 0); +%! [LS,PS] = chol (bs,'lower'); +%! assert (LS*LS', bs, 1e-10); +%! assert (PS, 0); %!testif HAVE_CHOLMOD ;# Permuted Cholesky factorization -%! [RS,PS,QS] = chol(bs); -%! assert(RS'*RS,QS*bs*QS',1e-10); -%! assert(PS,0); -%! [LS,PS,QS] = chol(bs,'lower'); -%! assert(LS*LS',QS*bs*QS',1e-10); -%! assert(PS,0); +%! [RS,PS,QS] = chol (bs); +%! assert (RS'*RS, QS*bs*QS', 1e-10); +%! assert (PS, 0); +%! [LS,PS,QS] = chol (bs,'lower'); +%! assert (LS*LS', QS*bs*QS', 1e-10); +%! assert (PS, 0); EOF } @@ -748,44 +751,44 @@ gen_matrixreshape_tests cat >>$TESTS <<EOF %!testif HAVE_UMFPACK ;# permuted LU -%! [L,U] = lu(bs); -%! assert(L*U,bs,1e-10); +%! [L,U] = lu (bs); +%! assert (L*U, bs, 1e-10); %!testif HAVE_UMFPACK ;# simple LU + row permutations -%! [L,U,P] = lu(bs); -%! assert(P'*L*U,bs,1e-10); +%! [L,U,P] = lu (bs); +%! assert (P'*L*U, bs, 1e-10); %! # triangularity -%! [i,j,v]=find(L); -%! assert(i-j>=0); -%! [i,j,v]=find(U); -%! assert(j-i>=0); +%! [i,j,v] = find (L); +%! assert (i-j>=0); +%! [i,j,v] = find (U); +%! assert (j-i>=0); %!testif HAVE_UMFPACK ;# simple LU + row/col permutations -%! [L,U,P,Q] = lu(bs); -%! assert(P'*L*U*Q',bs,1e-10); +%! [L,U,P,Q] = lu (bs); +%! assert (P'*L*U*Q', bs, 1e-10); %! # triangularity -%! [i,j,v]=find(L); -%! assert(i-j>=0); -%! [i,j,v]=find(U); -%! assert(j-i>=0); +%! [i,j,v] = find (L); +%! assert (i-j>=0); +%! [i,j,v] = find (U); +%! assert (j-i>=0); %!testif HAVE_UMFPACK ;# LU with vector permutations -%! [L,U,P,Q] = lu(bs,'vector'); -%! assert(L(P,:)*U(:,Q),bs,1e-10); +%! [L,U,P,Q] = lu (bs,'vector'); +%! assert (L (P,:)*U (:,Q), bs, 1e-10); %! # triangularity -%! [i,j,v]=find(L); -%! assert(i-j>=0); -%! [i,j,v]=find(U); -%! assert(j-i>=0); +%! [i,j,v] = find (L); +%! assert (i-j>=0); +%! [i,j,v] = find (U); +%! assert (j-i>=0); %!testif HAVE_UMFPACK ;# LU with scaling -%! [L,U,P,Q,R] = lu(bs); -%! assert(R*P'*L*U*Q',bs,1e-10); +%! [L,U,P,Q,R] = lu (bs); +%! assert (R*P'*L*U*Q', bs, 1e-10); %! # triangularity -%! [i,j,v]=find(L); -%! assert(i-j>=0); -%! [i,j,v]=find(U); -%! assert(j-i>=0); +%! [i,j,v] = find (L); +%! assert (i-j>=0); +%! [i,j,v] = find (U); +%! assert (j-i>=0); EOF } @@ -798,33 +801,35 @@ cat >>$TESTS <<EOF %%Assembly tests %!test -%! m=max([m;r(:)]); -%! n=max([n;c(:)]); -%! funiq=fsum=zeros(m,n); -%! funiq(r(:) + m*(c(:)-1) ) = ones(size(r(:))); -%! funiq = sparse(funiq); -%! for k=1:length(r), fsum(r(k),c(k)) += 1; end -%! fsum = sparse(fsum); -%!assert(sparse(r,c,1),sparse(fsum(1:max(r),1:max(c)))); -%!assert(sparse(r,c,1,"sum"),sparse(fsum(1:max(r),1:max(c)))); -%!assert(sparse(r,c,1,"unique"),sparse(funiq(1:max(r),1:max(c)))); -%!assert(sparse(r,c,1,m,n),sparse(fsum)); -%!assert(sparse(r,c,1,m,n,"sum"),sparse(fsum)); -%!assert(sparse(r,c,1,m,n,"unique"),sparse(funiq)); +%! m = max ([m;r(:)]); +%! n = max ([n;c(:)]); +%! funiq = fsum = zeros (m,n); +%! funiq(r(:) + m*(c(:)-1) ) = ones (size (r(:))); +%! funiq = sparse (funiq); +%! for k=1:length(r) +%! fsum(r(k),c(k)) += 1; +%! endfor +%! fsum = sparse (fsum); +%!assert (sparse (r,c,1), sparse (fsum(1:max(r), 1:max(c)))) +%!assert (sparse (r,c,1,"sum"), sparse (fsum(1:max (r),1:max (c)))) +%!assert (sparse (r,c,1,"unique"), sparse (funiq(1:max (r),1:max (c)))) +%!assert (sparse (r,c,1,m,n), sparse (fsum)) +%!assert (sparse (r,c,1,m,n,"sum"), sparse (fsum)) +%!assert (sparse (r,c,1,m,n,"unique"), sparse (funiq)) -%!assert(sparse(r,c,1i),sparse(fsum(1:max(r),1:max(c))*1i)); -%!assert(sparse(r,c,1i,"sum"),sparse(fsum(1:max(r),1:max(c))*1i)); -%!assert(sparse(r,c,1i,"unique"),sparse(funiq(1:max(r),1:max(c))*1i)); -%!assert(sparse(r,c,1i,m,n),sparse(fsum*1i)); -%!assert(sparse(r,c,1i,m,n,"sum"),sparse(fsum*1i)); -%!assert(sparse(r,c,1i,m,n,"unique"),sparse(funiq*1i)); +%!assert (sparse (r,c,1i), sparse (fsum(1:max (r),1:max (c))*1i)) +%!assert (sparse (r,c,1i,"sum"), sparse (fsum(1:max (r),1:max (c))*1i)) +%!assert (sparse (r,c,1i,"unique"), sparse (funiq(1:max (r),1:max (c))*1i)) +%!assert (sparse (r,c,1i,m,n), sparse (fsum*1i)) +%!assert (sparse (r,c,1i,m,n,"sum"), sparse (fsum*1i)) +%!assert (sparse (r,c,1i,m,n,"unique"), sparse (funiq*1i)) %!test -%! if (issparse(funiq)) -%! assert(sparse(full(1i*funiq)),sparse(1i*funiq)); +%! if (issparse (funiq)) +%! assert (sparse (full (1i*funiq)), sparse (1i*funiq)); %! endif -%!assert(sparse(full(funiq)),funiq); +%!assert (sparse (full (funiq)), funiq) EOF @@ -835,8 +840,8 @@ gen_scalar_select_tests () { cat >>$TESTS <<EOF -%!assert (sparse(42)([1,1]),sparse([42,42])) -%!assert (sparse(42*1i)([1,1]),sparse([42,42].*1i)) +%!assert (sparse (42)([1,1]), sparse ([42,42])) +%!assert (sparse (42*1i)([1,1]), sparse ([42,42].*1i)) EOF } @@ -845,61 +850,62 @@ %!test as=sparse(af); %% Point tests -%!test idx=ridx(:)+rows(as)*(cidx(:)-1); -%!assert(sparse(as(idx)),sparse(af(idx))); -%!assert(as(idx),sparse(af(idx))); -%!assert(as(idx'),sparse(af(idx'))); -%!assert(as(flipud(idx(:))),sparse(af(flipud(idx(:))))) -%!assert(as([idx,idx]),sparse(af([idx,idx]))); -%!error(as(reshape([idx;idx],[1,length(idx),2]))); +%!test idx = ridx(:) + rows (as) * (cidx (:)-1); +%!assert (sparse (as(idx)), sparse (af(idx))) +%!assert (as(idx), sparse (af(idx))); +%!assert (as(idx'), sparse (af(idx'))); +%!assert (as(flipud (idx(:))), sparse (af(flipud (idx(:))))) +%!assert (as([idx,idx]), sparse (af([idx,idx]))) +%!error (as(reshape ([idx;idx], [1,length(idx),2]))) %% Slice tests -%!assert(as(ridx,cidx), sparse(af(ridx,cidx))) -%!assert(as(ridx,:), sparse(af(ridx,:))) -%!assert(as(:,cidx), sparse(af(:,cidx))) -%!assert(as(:,:), sparse(af(:,:))) -%!assert(as((size(as,1):-1:1),:),sparse(af((size(af,1):-1:1),:))) -%!assert(as(:,(size(as,2):-1:1)),sparse(af(:,(size(af,2):-1:1)))) +%!assert (as(ridx,cidx), sparse (af(ridx,cidx))) +%!assert (as(ridx,:), sparse (af(ridx,:))) +%!assert (as(:,cidx), sparse (af(:,cidx))) +%!assert (as(:,:), sparse (af(:,:))) +%!assert (as((size (as,1):-1:1),:), sparse (af((size (af,1):-1:1),:))) +%!assert (as(:,(size (as,2):-1:1)), sparse (af(:, (size (af,2):-1:1)))) %% Indexing tests -%!assert(full(as([1,1],:)), af([1,1],:)) -%!assert(full(as(:,[1,1])), af(:,[1,1])) +%!assert (full (as([1,1],:)), af([1,1],:)) +%!assert (full (as(:,[1,1])), af(:,[1,1])) %!test %! [i,j,v] = find (as); -%! assert (as(i(1),j(1))([1,1]), sparse([v(1),v(1)])) +%! assert (as(i(1),j(1))([1,1]), sparse ([v(1), v(1)])) %% Assignment test %!test -%! ts=as;ts(:,:)=ts(fliplr(1:size(as,1)),:); -%! tf=af;tf(:,:)=tf(fliplr(1:size(af,1)),:); -%! assert(ts,sparse(tf)); +%! ts=as; ts(:,:) = ts(fliplr (1:size (as,1)),:); +%! tf=af; tf(:,:) = tf(fliplr (1:size (af,1)),:); +%! assert (ts, sparse (tf)); +%!test +%! ts=as; ts(fliplr (1:size (as,1)),:) = ts; +%! tf=af; tf(fliplr (1:size (af,1)),:) = tf; +%! assert (ts, sparse (tf)); %!test -%! ts=as;ts(fliplr(1:size(as,1)),:)=ts; -%! tf=af;tf(fliplr(1:size(af,1)),:)=tf; -%! assert(ts,sparse(tf)); +%! ts=as; ts(:,fliplr (1:size (as,2))) = ts; +%! tf=af; tf(:,fliplr (1:size (af,2))) = tf; +%! assert (ts, sparse (tf)); %!test -%! ts=as;ts(:,fliplr(1:size(as,2)))=ts; -%! tf=af;tf(:,fliplr(1:size(af,2)))=tf; -%! assert(ts,sparse(tf)); -%!test -%! ts(fliplr(1:size(as,1)))=as(:,1);tf(fliplr(1:size(af,1)))=af(:,1); -%! assert(ts,sparse(tf)); +%! ts(fliplr (1:size (as,1))) = as(:,1); +%! tf(fliplr (1:size (af,1))) = af(:,1); +%! assert (ts, sparse (tf)); %% Deletion tests %!test -%! ts=as;ts(1,:)=[];tf=af;tf(1,:)=[]; -%! assert(ts,sparse(tf)); +%! ts=as; ts(1,:)=[]; tf=af; tf(1,:)=[]; +%! assert (ts, sparse (tf)); %!test -%! ts=as;ts(:,1)=[];tf=af;tf(:,1)=[]; -%! assert(ts,sparse(tf)); +%! ts=as; ts(:,1)=[]; tf=af; tf(:,1)=[]; +%! assert (ts, sparse (tf)); -%% Test 'end' keyword -%!assert(full(as(end)), af(end)) -%!assert(full(as(1,end)), af(1,end)) -%!assert(full(as(end,1)), af(end,1)) -%!assert(full(as(end,end)), af(end,end)) -%!assert(as(2:end,2:end), sparse(af(2:end,2:end))) -%!assert(as(1:end-1,1:end-1), sparse(af(1:end-1,1:end-1))) +%% Test "end" keyword +%!assert (full (as(end)), af(end)) +%!assert (full (as(1,end)), af(1,end)) +%!assert (full (as(end,1)), af(end,1)) +%!assert (full (as(end,end)), af(end,end)) +%!assert (as(2:end,2:end), sparse (af(2:end,2:end))) +%!assert (as(1:end-1,1:end-1), sparse (af(1:end-1,1:end-1))) EOF } @@ -909,36 +915,40 @@ gen_save_tests() { cat >>$TESTS <<EOF %!test # save ascii -%! savefile= tmpnam(); -%! as_save=as; save("-text",savefile,"bf","as_save","af"); +%! savefile = tmpnam (); +%! as_save = as; +%! save ("-text", savefile, "bf", "as_save", "af"); %! clear as_save; -%! load(savefile,"as_save"); -%! unlink(savefile); -%! assert(as_save,sparse(af)); +%! load (savefile, "as_save"); +%! unlink (savefile); +%! assert (as_save, sparse(af)); %!test # save binary -%! savefile= tmpnam(); -%! as_save=as; save("-binary",savefile,"bf","as_save","af"); +%! savefile = tmpnam (); +%! as_save = as; +%! save ("-binary", savefile, "bf", "as_save", "af"); %! clear as_save; -%! load(savefile,"as_save"); -%! unlink(savefile); -%! assert(as_save,sparse(af)); +%! load (savefile, "as_save"); +%! unlink (savefile); +%! assert (as_save, sparse(af)); %!testif HAVE_HDF5 # save hdf5 -%! savefile= tmpnam(); -%! as_save=as; save("-hdf5",savefile,"bf","as_save","af"); +%! savefile = tmpnam (); +%! as_save = as; +%! save ("-hdf5", savefile, "bf", "as_save", "af"); %! clear as_save; -%! load(savefile,"as_save"); -%! unlink(savefile); -%! assert(as_save,sparse(af)); -## FIXME -- we should skip (or mark as an expected failure) the test for +%! load (savefile, "as_save"); +%! unlink (savefile); +%! assert (as_save, sparse(af)); +## FIXME: We should skip (or mark as an expected failure) the test for ## saving sparse matrices to MAT files when using 64-bit indexing since ## that is not implemented yet. %!test # save matlab -%! savefile= tmpnam(); -%! as_save=as; save("-mat",savefile,"bf","as_save","af"); +%! savefile = tmpnam (); +%! as_save = as; +%! save ("-mat", savefile, "bf", "as_save", "af"); %! clear as_save; -%! load(savefile,"as_save"); -%! unlink(savefile); -%! assert(as_save,sparse(af)); +%! load (savefile, "as_save"); +%! unlink (savefile); +%! assert (as_save, sparse(af)); EOF } @@ -950,59 +960,64 @@ if $preset; then cat >>$TESTS <<EOF %! n=8; -%! lf=diag(1:n);lf(n-1,1)=0.5*alpha;lf(n,2)=0.25*alpha;ls=sparse(lf); -%! uf=diag(1:n);uf(1,n-1)=2*alpha;uf(2,n)=alpha;us=sparse(uf); -%! ts=spdiags(ones(n,3),-1:1,n,n)+diag(1:n); tf = full(ts); +%! lf=diag (1:n); lf(n-1,1)=0.5*alpha; lf(n,2)=0.25*alpha; ls=sparse (lf); +%! uf=diag (1:n); uf(1,n-1)=2*alpha; uf(2,n)=alpha; us=sparse (uf); +%! ts=spdiags (ones (n,3),-1:1,n,n) + diag (1:n); tf = full (ts); EOF else cat >>$TESTS <<EOF -%! n=floor(lognrnd(8,2)+1)' -%! ls = tril(sprandn(8,8,0.2),-1).*alpha + n*speye(8); lf = full(ls); -%! us = triu(sprandn(8,8,0.2),1).*alpha + n*speye(8); uf = full(us); -%! ts = spdiags(randn(8,3),-1:1,8,8).*alpha; tf = full(ts); +%! n = floor (lognrnd (8,2)+1)'; +%! ls = tril (sprandn (8,8,0.2),-1).*alpha + n*speye (8); lf = full (ls); +%! us = triu (sprandn (8,8,0.2),1).*alpha + n*speye (8); uf = full (us); +%! ts = spdiags (randn (8,3),-1:1,8,8).*alpha; tf = full (ts); EOF fi cat >>$TESTS <<EOF -%! df = diag(1:n).* alpha; ds = sparse(df); -%! pdf = df(randperm(n),randperm(n)); pds = sparse(pdf); -%! plf = lf(randperm(n),randperm(n)); pls = sparse(plf); -%! puf = uf(randperm(n),randperm(n)); pus = sparse(puf); -%! bs = spdiags(repmat([1:n]',1,4),-2:1,n,n).*alpha; bf = full(bs); -%! cf = lf + lf'; cs = sparse(cf); -%! bcf = bf + bf'; bcs = sparse(bcf); -%! tcf = tf + tf'; tcs = sparse(tcf); -%! xf = diag(1:n) + fliplr(diag(1:n)).*beta; xs = sparse(xf); -%!assert(ds\xf,df\xf,1e-10); -%!assert(ds\xs,sparse(df\xf),1e-10); -%!assert(pds\xf,pdf\xf,1e-10); -%!assert(pds\xs,sparse(pdf\xf),1e-10); -%!assert(ls\xf,lf\xf,1e-10); -%!assert(sparse(ls\xs),sparse(lf\xf),1e-10); -%!testif HAVE_UMFPACK -%! assert(pls\xf,plf\xf,1e-10); +%! df = diag (1:n).* alpha; ds = sparse (df); +%! pdf = df(randperm (n),randperm (n)); +%! pds = sparse (pdf); +%! plf = lf(randperm (n),randperm (n)); +%! pls = sparse (plf); +%! puf = uf(randperm (n),randperm (n)); +%! pus = sparse (puf); +%! bs = spdiags (repmat ([1:n]',1,4),-2:1,n,n).*alpha; +%! bf = full (bs); +%! cf = lf + lf'; cs = sparse (cf); +%! bcf = bf + bf'; bcs = sparse (bcf); +%! tcf = tf + tf'; tcs = sparse (tcf); +%! xf = diag (1:n) + fliplr (diag (1:n)).*beta; +%! xs = sparse (xf); +%!assert (ds\xf, df\xf, 1e-10); +%!assert (ds\xs, sparse (df\xf), 1e-10); +%!assert (pds\xf, pdf\xf, 1e-10); +%!assert (pds\xs, sparse (pdf\xf), 1e-10); +%!assert (ls\xf, lf\xf, 1e-10); +%!assert (sparse (ls\xs), sparse (lf\xf), 1e-10); %!testif HAVE_UMFPACK -%! assert(sparse(pls\xs),sparse(plf\xf),1e-10); -%!assert(us\xf,uf\xf,1e-10); -%!assert(sparse(us\xs),sparse(uf\xf),1e-10); +%! assert (pls\xf, plf\xf, 1e-10); +%!testif HAVE_UMFPACK +%! assert (sparse (pls\xs), sparse (plf\xf), 1e-10); +%!assert (us\xf, uf\xf, 1e-10); +%!assert (sparse (us\xs), sparse (uf\xf), 1e-10); %!testif HAVE_UMFPACK -%! assert(pus\xf,puf\xf,1e-10); +%! assert (pus\xf, puf\xf, 1e-10); %!testif HAVE_UMFPACK -%! assert(sparse(pus\xs),sparse(puf\xf),1e-10); -%!assert(bs\xf,bf\xf,1e-10); -%!assert(sparse(bs\xs),sparse(bf\xf),1e-10); +%! assert (sparse (pus\xs), sparse (puf\xf), 1e-10); +%!assert (bs\xf, bf\xf, 1e-10); +%!assert (sparse (bs\xs), sparse (bf\xf), 1e-10); %!testif HAVE_UMFPACK -%! assert(cs\xf,cf\xf,1e-10); +%! assert (cs\xf, cf\xf, 1e-10); %!testif HAVE_UMFPACK -%! assert(sparse(cs\xs),sparse(cf\xf),1e-10); +%! assert (sparse (cs\xs), sparse (cf\xf), 1e-10); %!testif HAVE_UMFPACK -%! assert(bcs\xf,bcf\xf,1e-10); +%! assert (bcs\xf, bcf\xf, 1e-10); %!testif HAVE_UMFPACK -%! assert(sparse(bcs\xs),sparse(bcf\xf),1e-10); -%!assert(ts\xf,tf\xf,1e-10); -%!assert(sparse(ts\xs),sparse(tf\xf),1e-10); -%!assert(tcs\xf,tcf\xf,1e-10); -%!assert(sparse(tcs\xs),sparse(tcf\xf),1e-10); +%! assert (sparse (bcs\xs), sparse (bcf\xf), 1e-10); +%!assert (ts\xf, tf\xf, 1e-10); +%!assert (sparse (ts\xs), sparse (tf\xf), 1e-10); +%!assert (tcs\xf, tcf\xf, 1e-10); +%!assert (sparse (tcs\xs), sparse (tcf\xf), 1e-10); EOF @@ -1010,109 +1025,116 @@ %% QR solver tests %!function f(a, sz, feps) -%! b = randn(sz); x = a \b; +%! b = randn (sz); +%! x = a \ b; %! assert (a * x, b, feps); -%! b = randn(sz)+1i*randn(sz); x = a \ b; +%! b = randn (sz) + 1i*randn (sz); +%! x = a \ b; %! assert (a * x, b, feps); -%! b = sprandn(sz(1),sz(2),0.2); x = a \b; -%! assert (sparse(a * x), b, feps); -%! b = sprandn(sz(1),sz(2),0.2)+1i*sprandn(sz(1),sz(2),0.2); x = a \b; -%! assert (sparse(a * x), b, feps); +%! b = sprandn (sz(1),sz(2),0.2); +%! x = a \ b; +%! assert (sparse (a * x), b, feps); +%! b = sprandn (sz(1),sz(2),0.2) + 1i*sprandn (sz(1),sz(2),0.2); +%! x = a \ b; +%! assert (sparse (a * x), b, feps); +%!endfunction %!testif HAVE_UMFPACK -%! a = alpha*sprandn(10,11,0.2)+speye(10,11); f(a,[10,2],1e-10); +%! a = alpha*sprandn (10,11,0.2) + speye (10,11); +%! f(a,[10,2],1e-10); %! ## Test this by forcing matrix_type, as can't get a certain %! ## result for over-determined systems. -%! a = alpha*sprandn(10,10,0.2)+speye(10,10); matrix_type(a, "Singular"); +%! a = alpha*sprandn(10,10,0.2) + speye(10,10); +%! matrix_type (a, "Singular"); %! f(a,[10,2],1e-10); %% Rectanguar solver tests that don't use QR %!test -%! ds = alpha * spdiags([1:11]',0,10,11); -%! df = full(ds); -%! xf = beta * ones(10,2); -%! xs = speye(10,10); -%!assert(ds\xf,df\xf,100*eps) -%!assert(ds\xs,sparse(df\xs),100*eps) +%! ds = alpha * spdiags ([1:11]',0,10,11); +%! df = full (ds); +%! xf = beta * ones (10,2); +%! xs = speye (10,10); +%!assert (ds\xf, df\xf, 100*eps) +%!assert (ds\xs, sparse (df\xs), 100*eps) %!test %! pds = ds([2,1,3:10],:); -%! pdf = full(pds); -%!assert(pds\xf,pdf\xf,100*eps) -%!assert(pds\xs,sparse(pdf\xs),100*eps) +%! pdf = full (pds); +%!assert (pds\xf, pdf\xf, 100*eps) +%!assert (pds\xs, sparse (pdf\xs), 100*eps) %!test -%! ds = alpha * spdiags([1:11]',0,11,10); -%! df = full(ds); -%! xf = beta * ones(11,2); -%! xs = speye(11,11); -%!assert(ds\xf,df\xf,100*eps) -%!assert(ds\xs,sparse(df\xs),100*eps) +%! ds = alpha * spdiags ([1:11]',0,11,10); +%! df = full (ds); +%! xf = beta * ones (11,2); +%! xs = speye (11,11); +%!assert (ds\xf, df\xf, 100*eps) +%!assert (ds\xs, sparse (df\xs), 100*eps) %!test %! pds = ds([2,1,3:11],:); -%! pdf = full(pds); -%!assert(pds\xf,pdf\xf,100*eps) -%!assert(pds\xs,sparse(pdf\xs),100*eps) +%! pdf = full (pds); +%!assert (pds\xf, pdf\xf, 100*eps) +%!assert (pds\xs, sparse (pdf\xs), 100*eps) %!test %! us = alpha*[[speye(10,10);sparse(1,10)],[[1,1];sparse(9,2);[1,1]]]; %!testif HAVE_UMFPACK -%! assert(us*(us\xf),xf,100*eps) +%! assert (us*(us\xf), xf, 100*eps) %!testif HAVE_UMFPACK -%! assert(us*(us\xs),xs,100*eps) +%! assert (us*(us\xs), xs, 100*eps) %!test %! pus = us(:,[2,1,3:12]); %!testif HAVE_UMFPACK -%! assert(pus*(pus\xf),xf,100*eps) +%! assert (pus*(pus\xf), xf, 100*eps) %!testif HAVE_UMFPACK -%! assert(pus*(pus\xs),xs,100*eps) +%! assert (pus*(pus\xs), xs, 100*eps) %!test %! us = alpha*[speye(11,9),[1;sparse(8,1);1;0]]; %!testif HAVE_CXSPARSE %! [c,r] = qr (us, xf); -%! assert(us\xf,r\c,100*eps) +%! assert (us\xf, r\c, 100*eps) %!testif HAVE_UMFPACK %! [c,r] = qr (us, xs); -%! r = matrix_type(r,"Singular"); ## Force Matrix Type -%! assert(us\xs,r\c,100*eps) +%! r = matrix_type (r, "Singular"); ## Force Matrix Type +%! assert (us\xs, r\c, 100*eps) %!test %! pus = us(:,[1:8,10,9]); %!testif HAVE_UMFPACK %! [c,r] = qr (pus, xf); -%! r = matrix_type(r,"Singular"); ## Force Matrix Type -%! assert(pus\xf,r\c,100*eps) +%! r = matrix_type (r, "Singular"); ## Force Matrix Type +%! assert (pus\xf, r\c, 100*eps) %!testif HAVE_UMFPACK %! [c,r] = qr (pus, xs); -%! r = matrix_type(r,"Singular"); ## Force Matrix Type -%! assert(pus\xs,r\c,100*eps) +%! r = matrix_type (r, "Singular"); ## Force Matrix Type +%! assert (pus\xs, r\c, 100*eps) %!test -%! ls = alpha*[speye(9,11);[1,sparse(1,8),1,0]]; -%! xf = beta * ones(10,2); -%! xs = speye(10,10); -%!assert(ls*(ls\xf),xf,100*eps) -%!assert(ls*(ls\xs),xs,100*eps) +%! ls = alpha*[speye(9,11);[1, sparse(1,8),1,0]]; +%! xf = beta * ones (10,2); +%! xs = speye (10,10); +%!assert (ls*(ls\xf), xf, 100*eps) +%!assert (ls*(ls\xs), xs, 100*eps) %!test %! pls = ls([1:8,10,9],:); -%!assert(pls*(pls\xf),xf,100*eps) -%!assert(pls*(pls\xs),xs,100*eps) +%!assert (pls*(pls\xf), xf, 100*eps) +%!assert (pls*(pls\xs), xs, 100*eps) %!test -%! ls = alpha*[speye(10,10),sparse(10,1);[1;1],sparse(2,9),[1;1]]; -%! xf = beta * ones(12,2); -%! xs = speye(12,12); +%! ls = alpha*[speye(10,10), sparse(10,1);[1;1], sparse(2,9),[1;1]]; +%! xf = beta * ones (12,2); +%! xs = speye (12,12); %!testif HAVE_UMFPACK %! [c,r] = qr (ls, xf); -%! assert(ls\xf,r\c,100*eps) +%! assert (ls\xf, r\c, 100*eps) %!testif HAVE_UMFPACK %! [c,r] = qr (ls, xs); -%! r = matrix_type(r,"Singular"); ## Force Matrix Type -%! assert(ls\xs,r\c,100*eps) +%! r = matrix_type (r, "Singular"); ## Force Matrix Type +%! assert (ls\xs, r\c, 100*eps) %!testif HAVE_CXSPARSE %! pls = ls(:,[1:8,10,9]); %!testif HAVE_UMFPACK %! [c,r] = qr (pls, xf); -%! r = matrix_type(r,"Singular"); ## Force Matrix Type -%! assert(pls\xf,r\c,100*eps) +%! r = matrix_type (r, "Singular"); ## Force Matrix Type +%! assert (pls\xf, r\c, 100*eps) %!testif HAVE_UMFPACK %! [c,r] = qr (pls, xs); -%! r = matrix_type(r,"Singular"); ## Force Matrix Type -%! assert(pls\xs,r\c,100*eps) +%! r = matrix_type (r, "Singular"); ## Force Matrix Type +%! assert (pls\xs, r\c, 100*eps) EOF } @@ -1141,9 +1163,10 @@ cat >>$TESTS <<EOF %!test %! % generate m,n from 1 to <5000 -%! m=floor(lognrnd(8,2)+1); -%! n=floor(lognrnd(8,2)+1); -%! as=sprandn(m,n,0.3); af = full(as+1i*sprandn(as)); +%! m = floor (lognrnd (8,2)+1); +%! n = floor (lognrnd (8,2)+1); +%! as = sprandn (m,n,0.3); +%! af = full (as + 1i*sprandn (as)); %! bf = randn; EOF fi @@ -1158,10 +1181,12 @@ else cat >>$TESTS <<EOF %!test -%! m=floor(lognrnd(8,2)+1); -%! n=floor(lognrnd(8,2)+1); -%! as=sprandn(m,n,0.3); af = full(as+1i*sprandn(as)); -%! bs=sprandn(m,n,0.3); bf = full(bs+1i*sprandn(bs)); +%! m = floor (lognrnd (8,2)+1); +%! n = floor (lognrnd (8,2)+1); +%! as = sprandn (m,n,0.3); +%! af = full (as + 1i*sprandn (as)); +%! bs = sprandn (m,n,0.3); +%! bf = full (bs + 1i*sprandn (bs)); EOF fi @@ -1191,17 +1216,19 @@ else cat >>$TESTS <<EOF %!test -%! m=floor(lognrnd(8,2)+1); -%! n=floor(lognrnd(8,2)+1); -%! as=sprandn(m,n,0.3); af = full(as+1i*sprandn(as)); -%! bs=sprandn(m,n,0.3); bf = full(bs+1i*sprandn(bs)); +%! m = floor (lognrnd (8,2)+1); +%! n = floor (lognrnd (8,2)+1); +%! as = sprandn (m,n,0.3); +%! af = full (as + 1i*sprandn (as)); +%! bs = sprandn (m,n,0.3); +%! bf = full (bs + 1i*sprandn (bs)); EOF fi cat >>$TESTS <<EOF %!test ;# invertible matrix -%! bf=af'*bf+max(abs([af(:);bf(:)]))*sparse(eye(columns(as))); -%! bs=sparse(bf); +%! bf = af'*bf+max (abs ([af(:);bf(:)]))*sparse (eye (columns (as))); +%! bs = sparse (bf); EOF @@ -1226,8 +1253,9 @@ echo '%! bs=sparse(bf);' >> $TESTS else echo '# This has a small chance of failing to create a positive definite matrix' >> $TESTS - echo '%!test n=floor(lognrnd(8,2)+1)' >> $TESTS - echo '%! bs = n*speye(n,n) + sprandn(n,n,0.3); bf = full(bs);' >> $TESTS + echo '%!test n=floor (lognrnd (8,2)+1)' >> $TESTS + echo '%! bs = n*speye (n,n) + sprandn (n,n,0.3);' >> $TESTS + echo '%! bf = full (bs);' >> $TESTS fi gen_cholesky_tests @@ -1242,19 +1270,19 @@ if $use_preset; then cat >>$TESTS <<EOF %!test -%! r=[1,1,2,1,2,3]; -%! c=[2,1,1,1,2,1]; -%! m=n=0; +%! r = [1,1,2,1,2,3]; +%! c = [2,1,1,1,2,1]; +%! m = n = 0; EOF else cat >>$TESTS <<EOF %!test %! % generate m,n from 1 to <5000 -%! m=floor(lognrnd(8,2)+1); -%! n=floor(lognrnd(8,2)+1); -%! nz=ceil((m+n)/2); -%! r=floor(rand(5,nz)*n)+1; -%! c=floor(rand(5,nn)*m)+1; +%! m = floor (lognrnd (8,2)+1); +%! n = floor (lognrnd (8,2)+1); +%! nz = ceil ((m+n)/2); +%! r = floor (rand (5,nz)*n)+1; +%! c = floor (rand (5,nn)*m)+1; EOF fi gen_assembly_tests #includes real and complex tests @@ -1265,18 +1293,20 @@ if $use_preset; then cat >>$TESTS <<EOF %!test -%! af=[1+1i,2-1i,0,0;0,0,0,3+2i;0,0,0,4]; -%! ridx=[1,3]; cidx=[2,3]; +%! af = [1+1i,2-1i,0,0;0,0,0,3+2i;0,0,0,4]; +%! ridx = [1,3]; +%! cidx = [2,3]; EOF else cat >>$TESTS <<EOF %!test %! % generate m,n from 1 to <5000 -%! m=floor(lognrnd(8,2)+1); -%! n=floor(lognrnd(8,2)+1); -%! as=sprandn(m,n,0.3); af = full(as+1i*sprandn(as)); -%! ridx = ceil(m*rand(1,ceil(rand*m)) -%! cidx = ceil(n*rand(1,ceil(rand*n)) +%! m = floor (lognrnd (8,2)+1); +%! n = floor (lognrnd (8,2)+1); +%! as = sprandn (m,n,0.3); +%! af = full (as + 1i*sprandn (as)); +%! ridx = ceil (m*rand (1,ceil (rand*m)); +%! cidx = ceil (n*rand (1,ceil (rand*n)); EOF fi gen_scalar_select_tests
--- a/test/test_args.m +++ b/test/test_args.m @@ -23,6 +23,7 @@ %!function f () %! assert (nargin, 0); %! assert (nargout, 0); +%!endfunction %!test %! f; @@ -30,6 +31,7 @@ %!function f (x, y) %! assert (nargin, 1); %! assert (nargout, 0); +%!endfunction %!test %! f (1); @@ -38,6 +40,7 @@ %! assert (nargin, 0); %! assert (nargout, 1); %! x = 2; +%!endfunction %!test %! assert (f (), 2); @@ -46,6 +49,7 @@ %! assert (nargin, 1); %! assert (nargout, 1); %! x = a; +%!endfunction %!test %! assert (f (1), 1); @@ -56,6 +60,7 @@ %!function [varargout] = f (varargin) %! assert (nargin, 0); %! assert (nargout, 0); +%!endfunction %!test %! f; @@ -63,6 +68,7 @@ %!function [varargout] = f (x, varargin) %! assert (nargin, 1); %! assert (nargout, 0); +%!endfunction %!test %! f (1); @@ -71,6 +77,7 @@ %! assert (nargin, 0); %! assert (nargout, 1); %! x = 2; +%!endfunction %!test %! assert (f (), 2); @@ -79,6 +86,7 @@ %! assert (nargin, 1); %! assert (nargout, 1); %! varargout{1} = varargin{1}; +%!endfunction %!test %! assert (f (1), 1); @@ -91,9 +99,10 @@ %! assert (nargout, 2); %! x = a; %! y = b; +%!endfunction %!test %! [s, t] = f (1, 2, 3, 4); -%! assert([s t], [1 2]); +%! assert ([s t], [1 2]); ## Fully used varargin and varargout %!function [varargout] = f (varargin) @@ -103,92 +112,107 @@ %! varargout{2} = varargin{2}; %! varargout{3} = varargin{3}; %! varargout{4} = 4; +%!endfunction %!test %! [s, t, u, v] = f (1, 2, 3); -%! assert([s t u v], [1 2 3 4]); +%! assert ([s t u v], [1 2 3 4]); ## Test default arguments ## numeric %!function f (x = 0) -%! assert (x, 0) +%! assert (x, 0); +%!endfunction %!test %! f() ## numeric vector (spaces) %!function f (x = [0 1 2]) -%! assert (x, [0 1 2]) +%! assert (x, [0 1 2]); +%!endfunction %!test %! f() ## numeric vector (range) %!function f (x = 1:3) -%! assert (x, 1:3) +%! assert (x, 1:3); +%!endfunction %!test %! f() ## numeric vector (commas) %!function f (x = [0,1,2]) -%! assert (x, [0 1 2]) +%! assert (x, [0 1 2]); +%!endfunction %!test %! f() ## numeric vector (commas and spaces) %!function f (x = [0, 1, 2]) -%! assert (x, [0 1 2]) +%! assert (x, [0 1 2]); +%!endfunction %!test %! f() ## numeric matrix %!function f (x = [0, 1, 2;3, 4, 5]) -%! assert (x, [0 1 2;3 4 5]) +%! assert (x, [0 1 2;3 4 5]); +%!endfunction %!test %! f() ## empty cell %!function f (x = {}) -%! assert (x, {}) +%! assert (x, {}); +%!endfunction %!test %! f() ## full cell %!function f (x = {1}) -%! assert (x, {1}) +%! assert (x, {1}); +%!endfunction %!test %! f() ## many cells %!function f (x = {1 'a' "b" 2.0 struct("a", 3)}) -%! assert (x, {1 'a' "b" 2.0 struct("a", 3)}) +%! assert (x, {1 'a' "b" 2.0 struct("a", 3)}); +%!endfunction %!test %! f() ## struct %!function f (x = struct("a", 3)) -%! assert (x, struct ("a", 3)) +%! assert (x, struct ("a", 3)); +%!endfunction %!test %! f() ## char (double quotes) %!function f (x = "a") -%! assert (x, "a") +%! assert (x, "a"); +%!endfunction %!test %! f() ## char (single quotes) %!function f (x = 'a') -%! assert (x, "a") +%! assert (x, "a"); +%!endfunction %!test %! f() ## char (string, double quotes) %!function f (x = "abc123") -%! assert (x, "abc123") +%! assert (x, "abc123"); +%!endfunction %!test %! f() ## char (string, double quotes, punctuation) %!function f (x = "abc123`1234567890-=~!@#$%^&*()_+[]{}|;':\",./<>?\\") -%! assert (x, "abc123`1234567890-=~!@#$%^&*()_+[]{}|;':\",./<>?\\") +%! assert (x, "abc123`1234567890-=~!@#$%^&*()_+[]{}|;':\",./<>?\\"); +%!endfunction %!test %! f() @@ -197,6 +221,7 @@ %! finfo = functions (x); %! fname = finfo.function; %! assert (isa (x, "function_handle") && strcmp (fname, "sin")); +%!endfunction %!test %! f() @@ -205,5 +230,7 @@ %! finfo = functions (x); %! ftype = finfo.type; %! assert (isa (x, "function_handle") && strcmp (ftype, "anonymous")); +%!endfunction %!test %! f() +
--- a/test/test_contin.m +++ b/test/test_contin.m @@ -16,100 +16,29 @@ ## along with Octave; see the file COPYING. If not, see ## <http://www.gnu.org/licenses/>. -%% test/octave.test/contin/contin-1.m -%!test -%! x = [1,2]; -%! a = 1; -%! b = 2; -%! y = [a... # comments here ok -%! b]; -%! assert(all (y == x)); - -%% test/octave.test/contin/contin-2.m -%!test -%! x = [1,2]; -%! a = 1; -%! b = 2; -%! y = [a... # comments here ok -%! b]; -%! assert(all (y == x)); - -%% test/octave.test/contin/contin-3.m -%!test +%!shared x, a, b %! x = [1,2]; %! a = 1; %! b = 2; + +%!test %! y = [a... # comments here ok %! b]; -%! assert(all (y == x)); - -%% test/octave.test/contin/contin-4.m -%!test -%! x = [1,2]; -%! a = 1; -%! b = 2; -%! y = [a... # comments ok here -%! b]; -%! assert(all (y == x)); +%! assert (y, x); -%% test/octave.test/contin/contin-5.m -%!test -%! x = [1,2]; -%! a = 1; -%! b = 2; -%! y = [a... # comments here ok -%! b]; -%! assert(all (y == x)); - -%% test/octave.test/contin/contin-6.m -%!test -%! x = [1,2]; -%! a = 1; -%! b = 2; -%! y = [a... # comments here ok -%! b]; -%! assert(all (y == x)); - -%% test/octave.test/contin/contin-7.m %!test %! x = [1;2]; -%! a = 1; -%! b = 2; %! y = [a... # comments here ok %! ;\ %! %! b]; -%! assert(all (y == x)); - -%% test/octave.test/contin/contin-8.m -%!test -%! x = [1;2]; -%! a = 1; -%! b = 2; -%! y = [a... # comments here ok -%! ;\ -%! -%! b]; -%! assert(all (y == x)); +%! assert (y, x); -%% test/octave.test/contin/contin-9.m -%!test -%! x = [1;2]; -%! a = 1; -%! b = 2; -%! y = [a... # comments here ok -%! ;\ -%! -%! b]; -%! assert(all (y == x)); - -%% test/octave.test/contin/contin-10.m -%!assert(1 + ... +%!assert (1 + ... %! 2 - \# comments here ok %! 3 / ... # comments here ok %! -1,6); -%% test/octave.test/contin/contin-11.m %!function y = f (a,... %! b, ... %! c, ... % comments ok @@ -118,16 +47,15 @@ %! z) %! %! y = 1; -%!test -%! assert(f (),1); +%!endfunction +%! +%!assert (f (), 1) -%% test/octave.test/contin/contin-12.m %!test -%!assert(1 == 1 +%!assert (1 == 1 %! && 2 == 2 %! || 3 == 5); -%% test/octave.test/contin/contin-13.m %!test %! x = [1, ... %! @@ -135,29 +63,18 @@ %! %! 2]; %! y = [1;2]; -%! assert(all (y == x)); +%! assert (y, x); -%% test/octave.test/contin/contin-14.m %!test -%! x = [1, ... -%! -%! ... -%! -%! 2]; -%! y = [1;2]; -%! assert(all (y == x)); - -%% test/octave.test/contin/contin-15.m -%!test -%! x = [1,... +%! x = [1 ,... %! 2]; %! y = [1,2]; -%! assert(all (y == x)); +%! assert (y, x); -%% test/octave.test/contin/contin-16.m +%% test/oc tave.test/contin/contin-16.m %!test %! x = [ 1 , ... %! 2]; %! y = [1,2]; -%! assert(all (y == x)); +%! assert (y, x);
--- a/test/test_diag_perm.m +++ b/test/test_diag_perm.m @@ -219,7 +219,7 @@ %! A = sprand (n, n, .5); %! scalefact = rand (n-2, 1); %! Dr = diag (scalefact, n, n-2); -%! assert (full (Dr \ A), Dr \ full(A)) +%! assert (full (Dr \ A), Dr \ full(A)); ## sparse inverse column scaling with a zero factor %!test @@ -229,7 +229,7 @@ %! Dc = diag (scalefact); %! scalefact(n-1) = Inf; %! Dc(n-1, n-1) = 0; -%! assert (full (A / Dc), full(A) / Dc) +%! assert (full (A / Dc), full(A) / Dc); ## short sparse inverse column scaling %!test @@ -237,29 +237,29 @@ %! A = sprand (n, n, .5); %! scalefact = rand (1, n-2) + I () * rand(1, n-2); %! Dc = diag (scalefact, n-2, n); -%! assert (full (A / Dc), full(A) / Dc) +%! assert (full (A / Dc), full(A) / Dc); ## adding sparse and diagonal stays sparse %!test %! n = 9; %! A = sprand (n, n, .5); %! D = 2 * eye (n); -%! assert (typeinfo (A + D), "sparse matrix") -%! assert (typeinfo (A - D), "sparse matrix") +%! assert (typeinfo (A + D), "sparse matrix"); +%! assert (typeinfo (A - D), "sparse matrix"); %! D = D * I () + D; -%! assert (typeinfo (A - D), "sparse complex matrix") +%! assert (typeinfo (A - D), "sparse complex matrix"); %! A = A * I () + A; -%! assert (typeinfo (D - A), "sparse complex matrix") +%! assert (typeinfo (D - A), "sparse complex matrix"); ## adding sparse and diagonal stays sparse %!test %! n = 9; %! A = sprand (n, n, .5); %! D = 2 * eye (n); -%! assert (full (A + D), full (A) + D) -%! assert (full (A - D), full (A) - D) +%! assert (full (A + D), full (A) + D); +%! assert (full (A - D), full (A) - D); %! D = D * I () + D; -%! assert (full (D + A), D + full (A)) +%! assert (full (D + A), D + full (A)); %! A = A * I () + A; %! A(6, 4) = nan (); -%! assert (full (D - A), D - full (A)) +%! assert (full (D - A), D - full (A));
--- a/test/test_error.m +++ b/test/test_error.m @@ -16,68 +16,78 @@ ## along with Octave; see the file COPYING. If not, see ## <http://www.gnu.org/licenses/>. +## Test %!error usage + %% test/octave.test/error/error-1.m %!function g () -%! error ("foo"); +%! error ("foo"); +%!endfunction %!function f () -%! g (); -%!error <foo> f (); +%! g (); +%!endfunction +%!error <foo> f () %% test/octave.test/error/error-2.m %!function g () -%! error ("foo\n"); +%! error ("foo\n"); +%!endfunction %!function f () -%! g -%!error <foo> f (); +%! g +%!endfunction +%!error <foo> f () %% test/octave.test/error/error-3.m -%!error error (); +%!error error () %% test/octave.test/error/error-4.m -%!error <foo> error ("foo\n"); +%!error <foo> error ("foo\n") -%% FIXME Why can't I use %!warning <foo> f; +## Test %!warning usage + %% test/octave.test/error/warning-1.m %!function g () -%! warning ("foo"); +%! warning ("foo"); +%!endfunction %!function f () -%! g; -%!test -%! fail("f","warning","foo"); +%! g; +%!endfunction +%!warning <foo> f () %% test/octave.test/error/warning-2.m %!test %! st.identifier = "backtrace"; -%! ws = warning ("query","backtrace"); -%! warning ("on","backtrace"); +%! ws = warning ("query", "backtrace"); +%! warning ("on", "backtrace"); %! st.state = "on"; -%! assert(warning ("query","backtrace"),st); -%! warning ("off","backtrace"); +%! assert(warning ("query", "backtrace"), st); +%! warning ("off", "backtrace"); %! st.state = "off"; -%! assert(warning ("query","backtrace"),st); -%! warning (ws.state,"backtrace"); +%! assert(warning ("query", "backtrace"), st); +%! warning (ws.state, "backtrace"); -%% FIXME This test no longer makes sense with new warning syntax -%% test/octave.test/error/warning-3.m -%!#warning <foo> warning ("foo", 1); +## Test usage() function %% test/octave.test/error/usage-1.m %!function g () -%! usage ("foo"); +%! usage ("foo"); +%!endfunction %!function f () -%! g (); -%!error <foo> f (); +%! g (); +%!endfunction +%!error <foo> f () %% test/octave.test/error/usage-2.m %!function g () -%! usage ("foo"); +%! usage ("foo"); +%!endfunction %!function f () -%! g -%!error <foo> f (); +%! g +%!endfunction +%!error <foo> f () %% test/octave.test/error/usage-3.m -%!error usage (); +%!error usage () %% test/octave.test/error/usage-4.m -%!error <foo> usage ("foo\n"); +%!error <foo> usage ("foo\n")
--- a/test/test_eval-catch.m +++ b/test/test_eval-catch.m @@ -22,53 +22,52 @@ %% test/octave.test/eval-catch/eval-catch-2.m %!test -%! eval ("", "error('Shouldn't get here');"); +%! eval ("", "error ('Should not get here');"); %% test/octave.test/eval-catch/eval-catch-3.m %!test %! eval ("clear a; a; x = 0;", "x = 1;"); %! assert (x, 1); -%% FIXME This is redundant with the changes to the above -%% test/octave.test/eval-catch/eval-catch-4.m - %% test/octave.test/eval-catch/eval-catch-5.m %!test %! eval ("clear a; a; str = '';", "str=lasterr;"); -%! assert(lasterr()(1:13),"`a' undefined"); -%! assert(str(1:13),"`a' undefined"); +%! assert (lasterr()(1:13), "`a' undefined"); +%! assert (str(1:13), "`a' undefined"); %% test/octave.test/eval-catch/eval-catch-6.m %!test -%! eval ("error (\"user-defined error\"); str = '';", "str = lasterr;"); -%! assert(lasterr()(1:18),"user-defined error"); -%! assert(str(1:18),"user-defined error"); +%! eval ("error ('user-defined error'); str = '';", "str = lasterr;"); +%! assert (lasterr()(1:18), "user-defined error"); +%! assert (str(1:18), "user-defined error"); %% test/octave.test/eval-catch/eval-catch-7.m %!function ms = mangle (s) %! ## Wrap angle brackets around S. %! ms = cstrcat ("<", s, ">"); +%!endfunction %!test %! eval ("clear a; a; str='';", "str = mangle (lasterr);"); -%! assert(mangle(lasterr)(1:14),"<`a' undefined"); -%! assert(str(1:14),"<`a' undefined"); +%! assert (mangle(lasterr)(1:14), "<`a' undefined"); +%! assert (str(1:14), "<`a' undefined"); %% test/octave.test/eval-catch/eval-catch-8.m %!test %! eval ("eval (\"clear a; a;str1='';\", \"str1=lasterr;\"); clear b; b; str2='';", %! "str2 = lasterr;"); -%! assert(str1(1:13),"`a' undefined"); -%! assert(str2(1:13),"`b' undefined"); +%! assert (str1(1:13), "`a' undefined"); +%! assert (str2(1:13), "`b' undefined"); %% test/octave.test/eval-catch/eval-catch-9.m %!test %! eval ("clear a; a; str1='';", %! "eval (\"clear b; b; str2='';\", \"str2=lasterr;\"); str1=lasterr;"); -%! assert(str1(1:13),"`b' undefined"); -%! assert(str2(1:13),"`b' undefined"); +%! assert (str1(1:13), "`b' undefined"); +%! assert (str2(1:13), "`b' undefined"); %% test/octave.test/eval-catch/eval-catch-10.m %!test %! eval ("eval (\"clear a; a; str='';\",\"error (cstrcat (\\\"rethrow: \\\", lasterr));str='';\");", %! "str=lasterr;"); -%! assert(str(1:22),"rethrow: `a' undefined"); +%! assert (str(1:22), "rethrow: `a' undefined"); +
--- a/test/test_for.m +++ b/test/test_for.m @@ -19,82 +19,82 @@ %% test/octave.test/for/for-1.m %!test %! for i = 1 -%! printf_assert ("%d", i); +%! printf_assert ("%d", i); %! end %! printf_assert ("\n"); -%! assert(prog_output_assert("1")); +%! assert (prog_output_assert ("1")); %% test/octave.test/for/for-2.m %!test %! for i = 1:4 -%! printf_assert ("%d", i); +%! printf_assert ("%d", i); %! endfor %! printf_assert ("\n"); -%! assert(prog_output_assert("1234")); +%! assert (prog_output_assert ("1234")); %% test/octave.test/for/for-3.m %!test %! for i = [1,2,3,4] -%! printf_assert ("%d", i); +%! printf_assert ("%d", i); %! endfor %! printf_assert ("\n"); -%! assert(prog_output_assert("1234")); +%! assert (prog_output_assert ("1234")); %% test/octave.test/for/for-4.m %!test %! for i = [1,2;3,4] -%! printf_assert ("%d", i(1,1)); -%! printf_assert ("%d", i(2,1)); +%! printf_assert ("%d", i(1,1)); +%! printf_assert ("%d", i(2,1)); %! endfor %! printf_assert ("\n"); -%! assert(prog_output_assert("1324")); +%! assert (prog_output_assert ("1324")); %% test/octave.test/for/for-5.m %!test %! for i = I -%! printf_assert ("%d", imag (i)); +%! printf_assert ("%d", imag (i)); %! endfor %! printf_assert ("\n"); -%! assert(prog_output_assert("1")); +%! assert (prog_output_assert ("1")); %% test/octave.test/for/for-6.m %!test %! for i = [1,2,3,4]*I -%! printf_assert ("%d", imag (i)); +%! printf_assert ("%d", imag (i)); %! endfor %! printf_assert ("\n"); -%! assert(prog_output_assert("1234")); +%! assert (prog_output_assert ("1234")); %% test/octave.test/for/for-7.m %!test %! for i = [1,2;3,4]*I -%! printf_assert ("%d", imag (i(1,1))); -%! printf_assert ("%d", imag (i(2,1))); +%! printf_assert ("%d", imag (i(1,1))); +%! printf_assert ("%d", imag (i(2,1))); %! endfor %! printf_assert ("\n"); -%! assert(prog_output_assert("1324")); +%! assert (prog_output_assert ("1324")); %% test/octave.test/for/for-8.m %!test %! for i = [1,2,3,4] -%! if (i > 2) -%! break; -%! endif -%! printf_assert ("%d", i); +%! if (i > 2) +%! break; +%! endif +%! printf_assert ("%d", i); %! endfor %! printf_assert ("\n"); -%! assert(prog_output_assert("12")); +%! assert (prog_output_assert ("12")); %% test/octave.test/for/for-9.m %!test %! for i = [1,2,3,4] -%! if (i < 3) -%! continue; -%! endif -%! printf_assert ("%d", i); +%! if (i < 3) +%! continue; +%! endif +%! printf_assert ("%d", i); %! endfor %! printf_assert ("\n"); -%! assert(prog_output_assert("34")); +%! assert (prog_output_assert ("34")); %!test %! a = [1,3;2,4]; @@ -106,6 +106,6 @@ %!test %! a = {1,3;2,4}; %! j = 0; -%! for i = cat (3, a, cellfun(@(x) 4 + x, a, 'UniformOutput', 0)) +%! for i = cat (3, a, cellfun(@(x) 4 + x, a, "UniformOutput", 0)) %! assert (i, {1 + 2*j; 2 + 2*j++}) %! endfor
--- a/test/test_func.m +++ b/test/test_func.m @@ -23,10 +23,10 @@ ## just that the results are consistent for all types. %!function __fntestfunc__ (fn, mn, varargin) -%! typ = {'double', 'complex', 'logical', 'sparse', 'complex sparse', ... -%! 'logical sparse', 'int8', 'int16', 'int32', 'int64', 'uint8', ... -%! 'uint16', 'uint32', 'uint64', 'char', 'cell', 'struct', ... -%! 'single', 'single complex'}; +%! typ = {"double", "complex", "logical", "sparse", "complex sparse", ... +%! "logical sparse", "int8", "int16", "int32", "int64", "uint8", ... +%! "uint16", "uint32", "uint64", "char", "cell", "struct", ... +%! "single", "single complex"}; %! %! cmplx = [2, 5, 18]; %! nlogical = [3, 6]; @@ -39,7 +39,7 @@ %! varargin(1) = []; %! endif %! -%! for i = 1 : length(typ) +%! for i = 1 : length (typ) %! if (any (strcmp (skip, typ {i}))) %! continue; %! endif @@ -48,7 +48,7 @@ %! if (any (nsparse == i)) %! if (ndims (m) > 2) %! sz = size (m); -%! m = reshape (m, [sz(1), prod(sz (2:end))]); +%! m = reshape (m, [sz(1), prod(sz(2:end))]); %! endif %! if (any (cmplx == i)) %! m = sparse ((1 + 1i) * m); @@ -61,30 +61,30 @@ %! endif %! endif %! if (any (nlogical == i)) -%! m = cast (m, 'logical'); +%! m = cast (m, "logical"); %! endif %! if (any (ninteger == i)) %! m = cast (m, typ{i}); %! endif -%! if (strcmp (typ{i}, 'cell')) +%! if (strcmp (typ{i}, "cell")) %! m = num2cell (m); -%! elseif (strcmp (typ{i}, 'struct')) -%! m = struct ('fld', num2cell (m)); +%! elseif (strcmp (typ{i}, "struct")) +%! m = struct ("fld", num2cell (m)); %! endif %! %! y = feval (fn, m, varargin{:}); %! y2 = feval (fn, reshape (mn, size (m)), varargin{:}); %! if (!strcmp (class (y), class (m)) || %! issparse (y) != issparse (m) || !size_equal (y, y2)) -%! error ('failed for type %s\n', typ{i}); +%! error ("failed for type %s\n", typ{i}); %! endif -%! if (!(strcmp (typ{i}, 'cell') || strcmp (typ{i}, 'struct')) && -%! any (vec (cast (real (y), 'double')) != -%! vec (feval (fn , cast (real (m), 'double'), varargin{:})))) -%! error ('failed for type %s\n', typ{i}); +%! if (!(strcmp (typ{i}, "cell") || strcmp (typ{i}, "struct")) && +%! any (vec (cast (real (y), "double")) != +%! vec (feval (fn , cast (real (m), "double"), varargin{:})))) +%! error ("failed for type %s\n", typ{i}); %! endif %! endfor -%! endfunction +%!endfunction %!shared m0, m1, m2, m3 %! m0 = [1:5]; @@ -93,100 +93,100 @@ %! m3 = []; %!test -%! __fntestfunc__('triu', m1, {'struct'}); +%! __fntestfunc__("triu", m1, {"struct"}); %!test -%! __fntestfunc__ ('triu', m1, {'struct'}, -1); +%! __fntestfunc__ ("triu", m1, {"struct"}, -1); %!test -%! __fntestfunc__ ('triu', m1, {'struct'}, 1); +%! __fntestfunc__ ("triu", m1, {"struct"}, 1); %!test -%! __fntestfunc__('triu', m3, {'struct'}); +%! __fntestfunc__("triu", m3, {"struct"}); %!test -%! __fntestfunc__ ('tril', m1, {'struct'}); +%! __fntestfunc__ ("tril", m1, {"struct"}); %!test -%! __fntestfunc__ ('tril', m1, {'struct'}, -1); +%! __fntestfunc__ ("tril", m1, {"struct"}, -1); %!test -%! __fntestfunc__ ('tril', m1, {'struct'}, 1); +%! __fntestfunc__ ("tril", m1, {"struct"}, 1); %!test -%! __fntestfunc__('tril', m3, {'struct'}); +%! __fntestfunc__("tril", m3, {"struct"}); %!test -%! __fntestfunc__ ('squeeze', m2); +%! __fntestfunc__ ("squeeze", m2); %!test -%! __fntestfunc__ ('squeeze', m3); +%! __fntestfunc__ ("squeeze", m3); %!test -%! __fntestfunc__ ('permute', m1, [2, 1]); +%! __fntestfunc__ ("permute", m1, [2, 1]); %!test -%! __fntestfunc__ ('permute', m2, {'sparse', 'logical sparse', 'complex sparse'}, [3, 1, 2]); +%! __fntestfunc__ ("permute", m2, {"sparse", "logical sparse", "complex sparse"}, [3, 1, 2]); %!test -%! __fntestfunc__ ('permute', m3, [2, 1]); +%! __fntestfunc__ ("permute", m3, [2, 1]); %!test -%! __fntestfunc__ ('ipermute', m1, [2, 1]); +%! __fntestfunc__ ("ipermute", m1, [2, 1]); %!test -%! __fntestfunc__ ('ipermute', m2, {'sparse', 'logical sparse', 'complex sparse'}, [3, 1, 2]); +%! __fntestfunc__ ("ipermute", m2, {"sparse", "logical sparse", "complex sparse"}, [3, 1, 2]); %!test -%! __fntestfunc__ ('ipermute', m3, [2, 1]); +%! __fntestfunc__ ("ipermute", m3, [2, 1]); %!test -%! __fntestfunc__ ('shiftdim', m2, 1); +%! __fntestfunc__ ("shiftdim", m2, 1); %!test -%! __fntestfunc__ ('shiftdim', m2, {'sparse', 'logical sparse', 'complex sparse'}, -1); +%! __fntestfunc__ ("shiftdim", m2, {"sparse", "logical sparse", "complex sparse"}, -1); %!test -%! __fntestfunc__ ('shiftdim', m3, 1); +%! __fntestfunc__ ("shiftdim", m3, 1); %!test -%! __fntestfunc__ ('circshift', m2, 1); +%! __fntestfunc__ ("circshift", m2, 1); %!test -%! __fntestfunc__ ('circshift', m2, [1, -1]); +%! __fntestfunc__ ("circshift", m2, [1, -1]); %!test -%! __fntestfunc__ ('circshift', m3, 1); +%! __fntestfunc__ ("circshift", m3, 1); %!test -%! __fntestfunc__ ('reshape', m2, [6, 5]); +%! __fntestfunc__ ("reshape", m2, [6, 5]); %!test -%! __fntestfunc__ ('reshape', m3, [1, 0]); +%! __fntestfunc__ ("reshape", m3, [1, 0]); %!test -%! __fntestfunc__ ('diag', m0, {'struct'}); +%! __fntestfunc__ ("diag", m0, {"struct"}); %!test -%! __fntestfunc__ ('diag', m0, {'struct'}, 1); +%! __fntestfunc__ ("diag", m0, {"struct"}, 1); %!test -%! __fntestfunc__ ('diag', m0, {'struct'}, -1); +%! __fntestfunc__ ("diag", m0, {"struct"}, -1); %!test -%! __fntestfunc__ ('diag', m1, {'struct'}); +%! __fntestfunc__ ("diag", m1, {"struct"}); %!test -%! __fntestfunc__ ('diag', m1, {'struct'}, 1); +%! __fntestfunc__ ("diag", m1, {"struct"}, 1); %!test -%! __fntestfunc__ ('diag', m1, {'struct'}, -1); +%! __fntestfunc__ ("diag", m1, {"struct"}, -1); %!test -%! __fntestfunc__ ('diag', m3, {'struct'}); +%! __fntestfunc__ ("diag", m3, {"struct"}); %!test -%! __fntestfunc__ ('fliplr', m1); +%! __fntestfunc__ ("fliplr", m1); %!test -%! __fntestfunc__ ('fliplr', m3); +%! __fntestfunc__ ("fliplr", m3); %!test -%! __fntestfunc__ ('flipud', m1); +%! __fntestfunc__ ("flipud", m1); %!test -%! __fntestfunc__ ('flipud', m3); +%! __fntestfunc__ ("flipud", m3); %!test -%! __fntestfunc__ ('flipdim', m1, 2); +%! __fntestfunc__ ("flipdim", m1, 2); %!test -%! __fntestfunc__ ('flipdim', m3, 2); +%! __fntestfunc__ ("flipdim", m3, 2); %!test -%! __fntestfunc__ ('transpose', m1); +%! __fntestfunc__ ("transpose", m1); %!test -%! __fntestfunc__ ('transpose', m3); +%! __fntestfunc__ ("transpose", m3); %!test -%! __fntestfunc__ ('ctranspose', m1); +%! __fntestfunc__ ("ctranspose", m1); %!test -%! __fntestfunc__ ('ctranspose', m3); +%! __fntestfunc__ ("ctranspose", m3); %!test -%! __fntestfunc__ ('rot90', m1); +%! __fntestfunc__ ("rot90", m1); %!test -%! __fntestfunc__ ('rot90', m1, 2); +%! __fntestfunc__ ("rot90", m1, 2); %!test -%! __fntestfunc__ ('rot90', m1, -1); +%! __fntestfunc__ ("rot90", m1, -1); %!test -%! __fntestfunc__ ('rot90', m3); +%! __fntestfunc__ ("rot90", m3); %!test -%! __fntestfunc__ ('rotdim', m2, 1, [1, 2]); +%! __fntestfunc__ ("rotdim", m2, 1, [1, 2]); %!test -%! __fntestfunc__ ('rotdim', m2, 2, [1, 2]); +%! __fntestfunc__ ("rotdim", m2, 2, [1, 2]); %!test -%! __fntestfunc__ ('rotdim', m2, -1, [1, 2]); +%! __fntestfunc__ ("rotdim", m2, -1, [1, 2]); %!test -%! __fntestfunc__ ('rotdim', m3, 1, [1, 2]); +%! __fntestfunc__ ("rotdim", m3, 1, [1, 2]);
--- a/test/test_global.m +++ b/test/test_global.m @@ -19,19 +19,21 @@ %% test/octave.test/global/global-1.m %!test %! global G = 1; -%! assert(G,1) +%! assert (G,1); %% test/octave.test/global/global-2.m %!function f () %! global G; -%! assert(G,1); +%! assert (G,1); +%!endfunction %!test %! global G = 1; %! f; %% test/octave.test/global/global-3.m %!function f () -%! fail("G"); +%! fail ("G"); +%!endfunction %!test %! global G = 1; %! f(); @@ -39,25 +41,29 @@ %% test/octave.test/global/global-4.m %!function f () %! global H = 1; +%!endfunction %!test %! f; -%! fail("H"); +%! fail ("H"); %% test/octave.test/global/global-5.m %!function f () %! global H = 1; +%!endfunction %!test %!function g () -%! fail("H"); +%! fail ("H"); %!test %! g(); %% test/octave.test/global/global-6.m %!function f () %! global H = 1; +%!endfunction %!function g () %! global H; -%! assert(H,1); +%! assert (H,1); +%!endfunction %!test %! f(); %! g(); @@ -66,17 +72,20 @@ %!test %!function f () %! global H = 1; +%!endfunction %!test -%! fail("H"); +%! fail ("H"); %% test/octave.test/global/global-8.m %!function f () %! global H = 1; +%!endfunction %!function g () %! global H; -%! assert(H,1) +%! assert (H,1); +%!endfunction %!test %! f; -%! clear H +%! clear H; %! g;
--- a/test/test_if.m +++ b/test/test_if.m @@ -20,68 +20,68 @@ %!test %! i = 0; %! if (i == 0) -%! i++; -%! printf_assert ("%d\n", i); +%! i++; +%! printf_assert ("%d\n", i); %! endif -%! assert(prog_output_assert("1")); +%! assert (prog_output_assert ("1")); %% test/octave.test/if/if-2.m %!test %! if (eye (2)) -%! printf_assert ("fail\n"); +%! printf_assert ("fail\n"); %! else -%! printf_assert ("pass\n"); +%! printf_assert ("pass\n"); %! end -%! assert(prog_output_assert("pass")); +%! assert (prog_output_assert ("pass")); %% test/octave.test/if/if-3.m %!test %! x = 2; %! if (eye (2)) -%! printf_assert ("fail\n"); +%! printf_assert ("fail\n"); %! elseif (x) -%! printf_assert ("pass\n"); +%! printf_assert ("pass\n"); %! endif -%! assert(prog_output_assert("pass")); +%! assert (prog_output_assert ("pass")); %% test/octave.test/if/if-4.m %!test %! x = 0; %! y = -2; %! if (eye (2)) -%! printf_assert ("fail\n"); +%! printf_assert ("fail\n"); %! elseif (x) -%! printf_assert ("fail\n"); +%! printf_assert ("fail\n"); %! elseif (y) -%! printf_assert ("pass\n"); +%! printf_assert ("pass\n"); %! end -%! assert(prog_output_assert("pass")); +%! assert (prog_output_assert ("pass")); %% test/octave.test/if/if-5.m %!test %! x = 0; %! y = -2; %! if (eye (2)) -%! printf_assert ("fail\n"); +%! printf_assert ("fail\n"); %! elseif (x) -%! printf_assert ("fail\n"); +%! printf_assert ("fail\n"); %! elseif (x) -%! printf_assert ("fail\n"); +%! printf_assert ("fail\n"); %! else -%! printf_assert ("pass\n"); +%! printf_assert ("pass\n"); %! endif -%! assert(prog_output_assert("pass")); +%! assert (prog_output_assert ("pass")); %% test/octave.test/if/if-6.m %!test %! x = 0; %! y = -2; %! if (y) -%! printf_assert ("pass\n"); +%! printf_assert ("pass\n"); %! elseif (x) -%! printf_assert ("fail\n"); +%! printf_assert ("fail\n"); %! elseif (x) -%! printf_assert ("fail\n"); +%! printf_assert ("fail\n"); %! end -%! assert(prog_output_assert("pass")); +%! assert (prog_output_assert ("pass"));
--- a/test/test_index.m +++ b/test/test_index.m @@ -18,265 +18,120 @@ %!test %! a = []; -%! assert(isempty (a)); - -%!test -%! a = 1; -%! assert(a(1),1); - -%!test -%! a = 1; -%! assert(a(:),1); - -%!test -%! a = 1; -%! assert(a(:,:),1); - -%!test -%! a = 1; -%! assert(a(1,:),1); +%! assert (isempty (a)); -%!test -%! a = 1; -%! assert(a(:,1),1); - -%!test -%! a = 1; -%! assert(isempty (a(logical (0)))); - -%!test -%! a = 1; -%! fail("a(-1)"); - -%!test -%! a = 1; -%! fail("a(2);"); - -%!test -%! a = 1; -%! fail("a(2,:);"); - -%!test +%!shared a %! a = 1; -%! fail("a(:,2);"); - -%!test -%! a = 1; -%! fail("a(-1,:);"); - -%!test -%! a = 1; -%! fail("a(:,-1);"); - -%!test -%! a = 1; -%! fail("a([1,2,3]);"); - -%!test -%! a = 1; -%! fail("a([1;2;3]);"); +%!assert (a(1), 1) +%!assert (a(:), 1) +%!assert (a(:,:), 1) +%!assert (a(1,:), 1) +%!assert (a(:,1),1) +%!assert (isempty (a(logical (0)))) +%!error a(-1) +%!error a(2) +%!error a(2,:) +%!error a(:,2) +%!error a(-1,:) +%!error a(:,-1) +%!error a([1,2,3]) +%!error a([1;2;3]) +%!error a([1,2;3,4]) +%!error a([0,1]) +%!error a([0;1]) +%!error a([-1,0]) +%!error a([-1;0]) -%!test -%! a = 1; -%! fail("a([1,2;3,4]);"); - -%!test -%! a = 1; -%! fail("a([0,1]);"); - -%!test -%! a = 1; -%! fail("a([0;1]);"); - -%!test -%! a = 1; -%! fail("a([-1,0]);"); - -%!test -%! a = 1; -%! fail("a([-1;0]);"); - -%!test +%!shared a, a_prime, mid_a %! a = [4,3,2,1]; %! a_prime = [4;3;2;1]; %! mid_a = [3,2]; -%! assert(a(1),4); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(a(2),3); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(all (a(:) == a_prime)); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(all (a(1,:) == a)); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(a(:,3),2); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(all (a(:,:) == a)); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(all (a(logical ([0,1,1,0])) == mid_a)); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! fail("a(0);"); -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! fail("a(5);"); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! fail("a(0,1);"); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(isempty (a(logical (0),:))); +%!assert (a(1),4) +%!assert (a(2),3) +%!assert (all (a(:) == a_prime)) +%!assert (all (a(1,:) == a)) +%!assert (a(:,3),2) +%!assert (all (a(:,:) == a)) +%!assert (all (a(logical ([0,1,1,0])) == mid_a)) +%!error a(0) +%!error a(5) +%!error a(0,1) +%!assert (isempty (a(logical (0),:))) +%!error a(:,0) +%!assert (isempty (a([]))) +%!assert (isempty (a([],:))) +%!assert (isempty (a(:,[]))) -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! fail("a(:,0);"); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(isempty (a([]))); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(isempty (a([],:))); - -%!test -%! a = [4,3,2,1]; -%! a_prime = [4;3;2;1]; -%! mid_a = [3,2]; -%! assert(isempty (a(:,[]))); - -%!test +%!shared a, a_fvec, a_col_1, a_col_2, a_row_1, a_row_2 %! a = [1,2;3,4]; %! a_fvec = [1;3;2;4]; %! a_col_1 = [1;3]; %! a_col_2 = [2;4]; %! a_row_1 = [1,2]; %! a_row_2 = [3,4]; -%! assert(all (all (a(:,:) == a))); -%!test -%! a = [1,2;3,4]; -%! a_fvec = [1;3;2;4]; -%! a_col_1 = [1;3]; -%! a_col_2 = [2;4]; -%! a_row_1 = [1,2]; -%! a_row_2 = [3,4]; -%! assert(all (a(:) == a_fvec)); - -%!test -%! a = [1,2;3,4]; -%! a_fvec = [1;3;2;4]; -%! a_col_1 = [1;3]; -%! a_col_2 = [2;4]; -%! a_row_1 = [1,2]; -%! a_row_2 = [3,4]; -%! fail("a(0);"); - -%!test -%! a = [1,2;3,4]; -%! a_fvec = [1;3;2;4]; -%! a_col_1 = [1;3]; -%! a_col_2 = [2;4]; -%! a_row_1 = [1,2]; -%! a_row_2 = [3,4]; -%! assert(a(2),3); +%!assert (all (all (a(:,:) == a))) +%!assert (all (a(:) == a_fvec)) +%!error a(0) +%!assert (a(2), 3) %% Additional tests + %!shared a, b %! a = [1,2;3,4]; %! b = a; %! b(:,:,2) = [5,6;7,8]; -%!assert (a(:), [1;3;2;4]); -%!assert (a(1:2), [1,3]); -%!assert (a(:,:), [1,2;3,4]); -%!assert (a(:,1), [1;3]); -%!assert (a(1,1), 1); -%!assert (a(1:2,1), [1;3]); -%!assert (a(:,:,1), [1,2;3,4]); +%!assert (a(:), [1;3;2;4]) +%!assert (a(1:2), [1,3]) +%!assert (a(:,:), [1,2;3,4]) +%!assert (a(:,1), [1;3]) +%!assert (a(1,1), 1) +%!assert (a(1:2,1), [1;3]) +%!assert (a(:,:,1), [1,2;3,4]) %!test %! c(:,:,1) = [1,2;3,4]; %! c(:,:,2) = [1,2;3,4]; -%! assert (a(:,:,[1,1]),c) +%! assert (a(:,:,[1,1]), c) %!test %! c(:,:,1,1) = [1,2;3,4]; %! c(:,:,1,2) = [1,2;3,4]; -%! assert (a(:,:,1,[1,1]),c) +%! assert (a(:,:,1,[1,1]), c) %!test %! c(:,:,1,1) = [1,2;3,4]; %! c(:,:,2,1) = [1,2;3,4]; %! c(:,:,1,2) = [1,2;3,4]; %! c(:,:,2,2) = [1,2;3,4]; -%! assert (a(:,:,[1,1],[1,1]),c) +%! assert (a(:,:,[1,1],[1,1]), c) -%!assert (a(1,[]), zeros(1,0)); -%!assert (a(1,[],[1,1]), zeros(1,0,2)); -%!assert (a(1,1,[]), zeros(1,1,0)); +%!assert (a(1,[]), zeros (1,0)) +%!assert (a(1,[],[1,1]), zeros (1,0,2)) +%!assert (a(1,1,[]), zeros (1,1,0)) %!test %! c (1:10,1) = 1:10; %! assert (c, [1:10]'); -%!assert (b(:), [1; 3; 2; 4; 5; 7; 6; 8]); -%!assert (b(:,:), [1, 2, 5, 6; 3, 4, 7, 8]); -%!assert (b(:,1), [1;3]); -%!assert (b(:,:,:), reshape ([1,3,2,4,5,7,6,8],[2,2,2])); -%!assert (b(:,1,1), [1;3]); -%!assert (b(:,1,1,[1,1]),reshape([1,3,1,3],[2,1,1,2])); -%!assert (b(1,3), 5); -%!assert (b(1,[3,4]), [5,6]); -%!assert (b(1,1:4), [1,2,5,6]); -%!assert (b(1,[],:), zeros (1,0,2)); -%!assert (b(1,[]), zeros(1,0)); +%!assert (b(:), [1; 3; 2; 4; 5; 7; 6; 8]) +%!assert (b(:,:), [1, 2, 5, 6; 3, 4, 7, 8]) +%!assert (b(:,1), [1;3]) +%!assert (b(:,:,:), reshape ([1,3,2,4,5,7,6,8],[2,2,2])) +%!assert (b(:,1,1), [1;3]) +%!assert (b(:,1,1,[1,1]),reshape ([1,3,1,3],[2,1,1,2])) +%!assert (b(1,3), 5) +%!assert (b(1,[3,4]), [5,6]) +%!assert (b(1,1:4), [1,2,5,6]) +%!assert (b(1,[],:), zeros (1,0,2)) +%!assert (b(1,[]), zeros(1,0)) %!assert (b(:,3), [5;7]) %!assert (b([1,2],3), [5;7]) %!assert (b(true(2,1),3), [5;7]) %!assert (b(false(2,1),3), zeros(0,1)) -%!assert (b([],3), zeros(0,1)); +%!assert (b([],3), zeros(0,1)) %!shared x %! # Dummy shared block to clear any previous definitions @@ -317,7 +172,7 @@ %! assert (a, [1:4]'); %!test -%! a(:,:,1) = reshape(1:4,[1,1,4]); +%! a(:,:,1) = reshape (1:4,[1,1,4]); %! assert (a, [1:4]'); %!test @@ -329,7 +184,7 @@ %! assert (a, [1:4]'); %!test -%! a(:,1,:) = reshape(1:4,[1,1,4]);; +%! a(:,1,:) = reshape (1:4,[1,1,4]);; %! assert (a, [1:4]'); %!test @@ -341,11 +196,11 @@ %! assert (a, [1:4]); %!test -%! a(1,:,:) = reshape(1:4,[1,1,4]); +%! a(1,:,:) = reshape (1:4,[1,1,4]); %! assert (a, [1:4]); %!test -%! a(1,:,:,:) = reshape(1:4,[1,1,4]); +%! a(1,:,:,:) = reshape (1:4,[1,1,4]); %! assert (a, reshape (1:4,[1,1,1,4])); %!error (a(1:2,1:2) = 1:4)
--- a/test/test_io.m +++ b/test/test_io.m @@ -43,7 +43,7 @@ %! ## bool %! persistent a5 = (1 == 1); %! ## bool matrix -%! persistent a6 = ([ones(1,5), zeros(1,5)] == ones(1,10)); +%! persistent a6 = ([ones(1,5), zeros(1,5)] == ones (1,10)); %! ## range %! persistent a7 = 1:10; %! ## structure @@ -53,25 +53,25 @@ %! ## string %! persistent a10 = ["test"; "strings"]; %! ## int8 array -%! persistent a11 = int8(floor(256*rand(2,2))); +%! persistent a11 = int8 (floor (256*rand (2,2))); %! ## int16 array -%! persistent a12 = int16(floor(65536*rand(2,2))); +%! persistent a12 = int16 (floor (65536*rand (2,2))); %! ## int32 array -%! persistent a13 = int32(floor(1e6*rand(2,2))); +%! persistent a13 = int32 (floor (1e6*rand (2,2))); %! ## int64 array -%! persistent a14 = int64(floor(10*rand(2,2))); +%! persistent a14 = int64 (floor (10*rand (2,2))); %! ## uint8 array -%! persistent a15 = uint8(floor(256*rand(2,2))); +%! persistent a15 = uint8 (floor (256*rand (2,2))); %! ## uint16 array -%! persistent a16 = uint16(floor(65536*rand(2,2))); +%! persistent a16 = uint16 (floor (65536*rand (2,2))); %! ## int32 array -%! persistent a17 = uint32(floor(1e6*rand(2,2))); +%! persistent a17 = uint32 (floor (1e6*rand (2,2))); %! ## uint64 array -%! persistent a18 = uint64(floor(10*rand(2,2))); +%! persistent a18 = uint64 (floor (10*rand (2,2))); %! ## sparse -%! persistent a19 = sprandn(100,100,0.01); +%! persistent a19 = sprandn (100,100,0.01); %! ## complex sparse -%! persistent a20 = sprandn(100,100,0.01) + 1i * sprandn(100,100,0.01); +%! persistent a20 = sprandn (100,100,0.01) + 1i * sprandn (100,100,0.01); %! %! ret = 0; %! @@ -177,7 +177,8 @@ %! endif %! %! ret = 1; -%! +%!endfunction + %!test %! %! [save_status, save_files] = testls (0); @@ -187,8 +188,8 @@ %! unlink (f{1}); %! endfor %! -%! assert(save_status && load_status); -%! +%! assert (save_status && load_status); + %!test %! %! STR.scalar_fld = 1; @@ -200,52 +201,52 @@ %! save struct.dat -struct STR; %! STR = load ("struct.dat"); %! -%! assert(STR.scalar_fld == 1 && ... -%! STR.matrix_fld == [1.1,2;3,4] && ... -%! STR.string_fld == "Octave" && ... -%! STR.struct_fld.x == 0 && ... -%! STR.struct_fld.y == 1 ); +%! assert (STR.scalar_fld == 1 && ... +%! STR.matrix_fld == [1.1,2;3,4] && ... +%! STR.string_fld == "Octave" && ... +%! STR.struct_fld.x == 0 && ... +%! STR.struct_fld.y == 1 ); %! %! %! save -binary struct.dat -struct STR matrix_fld str*_fld; %! STR = load ("struct.dat"); %! -%! assert(!isfield(STR,"scalar_fld") && ... -%! STR.matrix_fld == [1.1,2;3,4] && ... -%! STR.string_fld == "Octave" && ... -%! STR.struct_fld.x == 0 && ... -%! STR.struct_fld.y == 1); +%! assert (!isfield(STR,"scalar_fld") && ... +%! STR.matrix_fld == [1.1,2;3,4] && ... +%! STR.string_fld == "Octave" && ... +%! STR.struct_fld.x == 0 && ... +%! STR.struct_fld.y == 1); %! %! delete struct.dat; -%! + %!test -%! matrix1 = rand(100, 2); +%! matrix1 = rand (100, 2); %! save -ascii matrix.ascii matrix1 %! matrix2 = load ("matrix.ascii"); %! assert (matrix1, matrix2, 1e-9) %! %! delete matrix.ascii; -%% FIXME Disable this test as it writes to stdout and there is no easy -%% way to recover output. Need to spawn new octave process and pipe stdout -%% somewhere to treat this case +%% FIXME: This test is disabled as it writes to stdout and there is no easy +%% way to recover output. Need to spawn new octave process and pipe stdout +%% somewhere to treat this case. %% test/octave.test/io/puts-1.m %!#test %! puts ("foo\n"); %% test/octave.test/io/puts-2.m -%!assert(puts (1),-1); +%!assert (puts (1),-1) %% test/octave.test/io/puts-3.m -%!error <Invalid call to puts> puts (); +%!error <Invalid call to puts> puts () %% test/octave.test/io/puts-4.m -%!error <Invalid call to puts> puts (1, 2); +%!error <Invalid call to puts> puts (1, 2) %!assert (sscanf ('123456', '%10c'), '123456') %!assert (sscanf ('123456', '%10s'), '123456') -%!assert (sscanf (['ab'; 'cd'], '%s'), 'acbd'); +%!assert (sscanf (['ab'; 'cd'], '%s'), 'acbd') %!test %! [val, count, msg, pos] = sscanf ("3I2", "%f"); @@ -274,28 +275,28 @@ %! [v1, c1, m1] = sscanf ("1 2 3 4 5 6", "%d"); %! [v2, c2, m2] = sscanf ("1 2 bar 3 4 5 6", "%d"); %! -%! assert((a == 1.2 && b == 3 && c == "foo" +%! assert ((a == 1.2 && b == 3 && c == "foo" %! && v1 == [1; 2; 3; 4; 5; 6] && c1 == 6 && ischar (m1) %! && v2 == [1; 2] && c2 == 2 && ischar (m2))); %% test/octave.test/io/sscanf-2.m -%!error <Invalid call to sscanf> sscanf (); +%!error <Invalid call to sscanf> sscanf () %% test/octave.test/io/sscanf-3.m -%!error sscanf (1, 2); +%!error sscanf (1, 2) %% test/octave.test/io/sscanf-4.m -%!error <Invalid call to sscanf> sscanf ("foo", "bar", "C", 1); +%!error <Invalid call to sscanf> sscanf ("foo", "bar", "C", 1) %% test/octave.test/io/sscanf-5.m %!test -%! [x, n] = sscanf(" 0.024000 0.200 0.200 2.000 1987 5 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 4 5 1 2 2 5 5 8 2 8 12 6 15 18 28 26 47 88 118 162 192 130 88 56 27 23 14 9 6 3 4 1 0 2 3 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.026000 0.250 0.250 2.100 3115 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 3 2 0 5 15 25 44 66 145 179 193 172 104 57 17 11 12 2 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.028000 0.300 0.300 2.200 4929 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 2 2 3 2 3 14 21 49 80 148 184 218 159 124 63 37 13 12 3 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.030000 0.350 0.350 2.300 7051 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 2 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 2 0 0 0 1 5 6 14 28 51 88 154 177 208 169 124 65 39 15 5 3 3 2 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.032000 0.400 0.400 2.400 9113 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 2 0 1 0 0 1 1 0 2 3 5 3 17 30 60 117 156 189 209 129 102 64 56 16 11 4 2 2 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.034000 0.450 0.450 2.500 11811 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 0 5 5 15 21 57 99 149 190 195 159 130 69 41 16 10 2 5 3 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.036000 0.500 0.500 2.600 14985 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 2 2 6 10 34 60 95 126 177 194 155 99 71 44 17 6 7 2 0 0 0 3 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.038000 0.550 0.550 2.700 18391 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 2 0 0 1 1 0 1 2 1 0 0 0 1 0 1 3 6 19 27 52 95 161 154 169 134 94 64 37 19 9 6 0 2 1 0 0 0 0 1 2 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 2 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.040000 0.600 0.600 2.800 22933 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 2 0 3 4 7 18 27 47 82 134 163 133 138 101 58 34 26 10 5 2 1 2 1 1 0 2 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.042000 0.650 0.650 2.900 27719 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 2 8 16 37 51 87 128 153 146 123 105 62 35 24 8 3 5 0 1 2 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.044000 0.700 0.700 3.000 32922 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 2 0 0 0 0 0 0 0 0 2 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 4 3 5 5 15 35 54 88 132 168 149 105 92 62 30 16 17 4 5 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.046000 0.750 0.750 3.100 38973 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 4 3 5 20 37 56 94 110 135 149 124 84 58 36 17 14 7 1 0 2 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.048000 0.800 0.800 3.200 45376 5 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 2 1 1 2 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 3 18 34 55 82 104 135 116 99 79 60 51 29 10 4 3 1 1 1 0 0 1 0 0 0 1 0 0 3 1 2 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.050000 0.850 0.850 3.300 52060 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 2 2 1 3 12 24 40 39 107 121 127 138 100 86 68 44 23 15 7 3 1 1 0 1 1 0 0 2 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.052000 0.900 0.900 3.400 59454 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 2 0 2 1 0 0 0 1 0 0 1 0 0 0 0 0 3 3 6 21 32 68 90 132 111 122 107 73 57 47 24 11 7 4 2 2 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 2 0 1 1 0 0 1 0 0 0 0 0 3 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.054000 0.950 0.950 3.500 67013 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 2 4 3 7 9 28 31 71 94 115 96 108 78 82 60 38 17 12 11 4 3 1 1 0 2 1 0 0 0 2 1 3 0 0 0 0 3 0 0 1 0 0 0 0 0 0 0 2 0 0 0 1 0 2 0 1 0 2 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.056000 1.000 1.000 3.600 75475 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 3 0 0 1 1 2 0 1 4 0 1 8 6 7 17 41 56 71 109 113 84 103 72 54 35 22 6 9 1 7 5 4 0 0 1 0 0 0 0 0 0 1 0 0 2 1 0 0 0 0 2 0 0 1 0 0 1 0 0 0 0 0 0 1 0 2 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 3 0 0 0 1 0 0 0 0 0 0 1 1 0 0 2 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.058000 1.050 1.050 3.700 83558 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 2 0 0 2 0 0 1 0 3 2 3 6 15 27 41 77 73 94 94 92 76 61 56 42 23 13 11 6 2 1 2 0 1 2 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 2 0 0 0 0 0 1 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.060000 1.100 1.100 3.800 93087 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 2 2 0 0 0 1 0 1 1 0 0 0 1 1 0 4 0 0 1 2 0 3 1 3 5 13 33 31 65 75 77 96 97 80 59 45 36 32 18 2 5 0 1 0 0 1 0 0 3 0 0 0 0 1 0 0 0 0 0 1 0 0 1 2 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 2 0 0 2 0 1 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.062000 1.150 1.150 3.900 102829 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 2 0 2 1 2 0 0 2 4 3 5 11 9 23 43 53 68 65 87 83 77 59 49 34 18 15 9 4 2 3 2 0 0 0 4 0 1 1 0 0 2 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 2 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.064000 1.200 1.200 4.000 113442 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 2 0 0 0 2 0 4 5 11 13 29 39 61 68 61 75 76 74 73 44 37 29 19 6 3 3 2 0 1 2 1 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 2 0 2 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.066000 1.250 1.250 4.100 126668 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 2 3 0 2 1 2 0 1 0 3 0 0 0 1 0 1 1 3 0 0 1 3 0 2 4 3 12 12 30 48 56 66 77 78 71 82 52 31 32 19 20 16 8 2 1 3 0 0 2 1 0 1 0 1 0 0 0 1 3 1 0 1 0 1 1 1 0 0 0 0 0 2 0 2 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 2 0 3 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.068000 1.300 1.300 4.200 138042 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 2 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 3 0 0 1 0 0 1 2 0 0 0 3 0 1 0 0 3 0 1 0 1 1 3 1 4 7 11 14 27 36 44 68 72 70 71 45 44 46 29 13 16 11 5 2 0 3 0 0 0 0 1 1 2 0 0 1 1 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 2 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.070000 1.350 1.350 4.300 152335 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 2 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 2 0 0 0 0 0 2 0 1 7 14 19 34 35 54 72 68 72 68 58 48 36 37 27 25 17 1 4 1 0 0 0 1 2 2 0 0 1 1 1 2 1 0 3 1 0 1 0 2 1 0 0 0 1 1 1 2 0 0 0 0 1 1 0 1 1 0 2 1 1 1 1 0 0 0 1 1 0 0 2 0 0 1 0 0 0 1 1 0 2 1 1 0 0 0 0 2 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.072000 1.400 1.400 4.400 166280 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 3 4 2 2 0 0 0 0 0 1 1 3 1 0 3 2 2 1 2 2 0 2 2 1 8 14 26 24 29 47 47 68 65 63 55 42 41 26 29 17 8 4 4 1 0 1 2 0 0 0 1 1 2 0 1 2 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 2 1 2 1 0 0 0 0 0 1 1 2 0 2 2 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.074000 1.450 1.450 4.500 179484 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 0 1 0 0 1 0 1 2 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 2 0 0 1 1 2 1 0 1 1 2 2 0 1 5 6 10 20 43 50 57 62 53 62 66 45 42 33 27 26 23 14 3 0 2 0 1 0 0 1 1 0 0 2 1 1 0 0 3 0 1 1 1 0 1 1 0 1 0 1 2 1 0 0 1 2 0 2 0 0 0 0 1 1 3 1 0 0 2 1 1 1 0 0 0 0 0 0 1 2 0 1 0 0 0 0 0 1 1 0 2 0 0 0 0 0 1 0 2 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.076000 1.500 1.500 4.600 197657 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 2 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 2 0 0 0 2 1 1 0 1 1 0 1 1 3 2 1 1 2 1 0 1 0 0 0 0 0 1 1 1 0 5 3 7 12 24 38 32 41 48 54 66 71 49 46 31 38 25 15 8 6 6 5 0 1 3 0 1 1 1 1 1 0 1 2 0 1 0 0 0 1 0 2 1 2 0 0 0 0 1 3 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 4 1 1 1 0 3 0 0 0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.078000 1.550 1.550 4.700 212054 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 2 0 0 0 1 0 0 1 0 1 1 0 1 3 1 0 0 1 2 0 0 0 1 0 0 0 0 0 2 1 2 1 1 1 0 0 1 5 1 1 2 3 5 7 9 11 22 31 37 48 50 52 54 57 37 38 38 33 24 11 19 11 3 1 2 0 3 3 2 1 0 1 3 0 1 1 1 1 1 2 0 0 0 1 1 2 0 1 1 3 0 1 1 0 0 1 0 2 0 1 0 0 1 3 0 2 0 1 0 1 2 0 1 1 1 1 1 0 3 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0.080000 1.600 1.600 4.800 231971 3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 2 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 2 1 0 1 1 1 0 1 0 0 1 0 1 3 0 0 0 1 0 0 0 1 1 1 0 0 4 1 1 0 2 0 1 1 1 2 0 0 0 1 0 1 2 1 2 3 2 0 1 0 4 3 1 1 1 1 3 1 0 0 0 2 1 0 2 7 17 13 29 47 58 59 52 38 51 51 38 34 35 21 14 13 4 1 0 1 1 1 0 2 2 4 1 0 1 1 4 0 0 0 2 0 2 2 2 0 0 1 3 2 1 1 2 2 2 2 1 0 3 0 2 1 2 1 2 2 0 0 1 1 0 2 0 2 2 0 1 0 2 2 3 1 2 3 1 1 0 1 0 2 0 1 2 1 2 0 2 1 0 0 3 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0.082000 1.650 1.650 4.900 252503 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 2 0 0 1 0 1 2 2 2 1 0 2 0 1 0 1 1 2 2 0 3 0 0 4 1 0 0 3 0 0 1 2 0 1 1 1 3 0 1 0 2 9 11 25 27 34 53 41 49 43 47 36 31 38 22 30 22 18 9 5 9 2 2 1 2 2 3 1 4 1 1 0 0 1 2 0 2 1 0 0 1 3 2 2 1 0 0 0 1 2 1 0 0 0 2 1 1 0 2 0 0 1 0 0 2 1 3 1 1 1 0 2 1 1 0 2 1 0 1 3 0 0 0 0 2 0 0 1 0 0 0 0 0 1 2 1 1 1 0 2 1 0 0 0 2 0 1 0 0 0 0 1 0 0 0 0 1 0 0 2 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0.084000 1.700 1.700 5.000 267889 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 3 0 1 1 1 0 1 2 1 0 2 0 2 4 0 1 0 0 0 1 1 0 1 3 2 0 2 0 4 0 0 2 0 1 4 2 4 3 3 6 10 14 28 37 54 36 40 52 40 50 46 40 32 26 29 12 18 5 2 0 2 4 1 2 1 0 2 1 2 2 1 0 1 0 2 1 2 4 1 1 5 1 0 2 0 1 2 3 2 2 1 2 1 0 2 1 2 1 1 4 1 2 1 4 0 2 2 0 0 3 1 0 2 0 0 1 1 1 0 0 2 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.086000 1.750 1.750 5.100 290294 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 2 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 3 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 2 1 0 1 0 1 0 0 2 2 0 1 2 2 0 2 0 2 0 1 0 0 1 1 1 3 1 1 1 1 3 4 1 1 2 2 2 1 0 3 0 0 0 2 4 5 6 16 18 20 31 40 54 55 46 41 52 35 27 21 28 27 20 15 8 6 7 1 0 0 3 0 0 2 2 0 3 1 3 1 1 2 0 0 1 2 1 3 2 0 1 2 1 3 1 1 1 1 1 2 0 2 1 0 1 1 1 3 1 1 2 0 1 0 1 0 2 1 1 0 0 1 2 0 3 1 1 0 0 0 1 3 1 1 1 0 0 1 2 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 2 0 1 0 0 0 2 1 0 2 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0.088000 1.800 1.800 5.200 312476 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 2 0 0 0 1 0 1 0 0 0 0 0 0 2 1 0 0 1 0 0 1 1 1 1 4 2 0 1 0 0 3 0 0 0 0 0 1 1 4 0 0 0 0 1 1 2 1 0 3 0 0 2 2 4 0 3 1 6 9 10 13 21 24 32 43 33 41 43 49 50 32 26 31 27 12 16 17 3 3 3 5 0 3 0 2 1 3 3 2 1 2 3 1 2 1 1 1 2 0 1 1 0 2 0 3 0 0 2 0 0 0 0 1 0 1 1 3 3 0 1 1 1 1 1 1 2 2 2 0 3 1 0 2 2 2 0 0 0 0 3 1 2 5 1 1 2 0 0 3 3 0 2 2 0 0 0 0 1 2 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.090000 1.850 1.850 5.300 337348 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 2 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 2 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 2 0 0 0 1 3 2 0 0 2 2 3 3 2 2 2 0 0 1 1 3 1 3 0 0 0 0 0 0 1 2 1 2 1 2 2 2 0 1 1 0 4 2 2 7 6 15 22 21 39 37 50 31 51 30 33 34 34 26 21 14 13 10 9 4 3 3 4 2 2 0 1 2 3 3 0 1 3 2 5 3 2 2 4 0 2 3 0 4 2 1 2 2 2 4 2 1 3 1 3 2 1 3 1 2 4 1 1 1 1 2 4 1 3 3 3 1 0 4 1 0 1 1 1 1 2 3 0 3 0 0 4 1 1 1 0 2 2 2 1 2 2 0 1 1 0 0 0 2 0 1 0 1 0 0 1 0 0 0 1 3 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0.092000 1.900 1.900 5.400 357303 3 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 3 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 2 2 0 0 2 2 1 1 1 1 1 1 0 1 0 0 1 1 1 3 1 1 1 1 1 0 1 4 0 1 1 1 3 0 1 1 2 2 2 0 2 3 2 2 2 2 1 2 1 3 8 22 14 32 36 46 39 42 39 29 36 38 26 24 26 18 16 19 10 9 3 6 5 0 3 2 1 1 1 2 0 2 1 1 0 1 1 3 1 0 2 4 2 2 1 4 1 2 2 1 1 0 1 2 0 2 2 2 4 2 1 1 0 2 1 3 1 2 3 4 2 3 2 3 0 1 2 1 0 0 0 4 1 1 1 2 1 3 1 0 5 1 0 0 0 0 0 0 1 0 2 0 1 2 1 0 1 0 0 0 0 0 1 1 0 1 0 1 4 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0.094000 1.950 1.950 5.500 383138 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 2 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 2 1 1 1 1 2 1 0 2 0 1 0 3 2 1 3 0 1 3 1 1 0 5 0 1 0 1 2 0 0 1 1 2 0 0 6 1 0 3 2 2 3 4 5 0 4 2 1 5 4 11 15 22 27 28 57 38 38 40 38 39 38 27 26 30 18 14 10 10 4 4 4 3 3 2 2 2 2 1 1 1 1 2 2 3 4 1 2 3 1 2 1 2 2 2 1 3 2 1 5 0 1 1 1 3 2 2 2 1 3 1 1 0 3 2 2 0 0 2 2 2 0 0 0 2 0 1 3 1 2 3 2 1 1 0 1 1 1 0 3 2 2 1 0 0 1 3 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 3 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0.096000 2.000 2.000 5.600 409868 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 2 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 2 0 1 0 0 2 0 2 0 0 0 0 1 0 0 2 1 2 2 2 1 2 1 1 1 1 1 2 0 0 1 1 0 1 0 2 1 2 0 2 0 3 1 2 1 3 1 5 0 2 2 1 2 4 1 2 0 3 1 4 7 5 9 13 22 19 31 27 28 41 34 39 37 22 23 21 22 17 23 15 8 9 3 8 0 3 1 2 2 2 3 1 0 4 2 4 2 2 2 2 4 2 1 1 0 2 0 3 0 3 2 2 1 2 2 1 4 1 2 2 1 1 5 2 1 2 1 2 2 1 0 2 4 3 2 1 2 2 3 2 3 1 2 1 1 1 1 2 1 1 2 2 1 2 3 2 1 1 0 2 2 4 0 1 1 1 1 1 0 0 1 1 3 0 0 0 0 0 1 0 0 2 0 1 2 0 1 1 1 0 1 0 1 0 0 0.098000 2.050 2.050 5.700 439102 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 2 0 0 1 1 1 1 2 0 1 1 0 0 0 0 1 1 1 0 4 0 0 0 2 1 1 0 3 4 0 1 2 2 1 0 3 0 3 2 0 0 2 0 1 0 0 1 0 1 3 1 3 5 0 2 2 3 5 2 2 2 0 3 2 3 6 5 16 21 19 23 28 29 35 42 42 44 39 33 23 30 18 25 24 15 13 5 4 2 2 0 3 3 0 0 1 3 0 1 1 3 2 4 3 4 2 1 1 1 3 1 0 0 2 2 4 2 2 1 4 2 4 2 2 2 1 2 2 1 2 0 4 2 2 3 1 2 1 1 2 2 1 2 4 2 1 4 1 2 2 2 2 0 2 0 3 0 1 0 2 1 0 4 2 1 3 2 1 0 2 1 1 1 1 0 1 1 2 1 1 1 2 0 1 0 2 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0.100000 2.100 2.100 5.800 467340 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 0 0 1 2 0 0 0 0 0 1 0 2 0 0 2 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 2 0 2 2 4 1 0 1 1 2 3 4 1 4 1 5 1 2 1 0 2 2 2 1 5 4 1 5 4 0 1 2 4 2 2 0 2 1 2 5 4 1 1 1 2 5 7 9 16 23 31 15 22 36 36 44 42 29 31 28 28 18 35 12 10 13 8 4 3 2 2 5 1 2 3 3 1 3 3 5 2 0 3 4 1 2 2 3 0 0 5 2 3 6 2 1 2 5 3 4 3 1 1 1 1 2 2 4 0 2 3 1 2 1 2 4 5 4 3 5 2 1 2 0 5 0 2 2 4 1 0 4 1 0 2 1 2 0 0 1 3 2 4 3 0 2 3 3 3 4 2 2 0 0 0 0 1 1 0 3 2 0 1 2 0 4 2 1 1 1 2 0 0 0 0 0 0 0 0 0 0 0.102000 2.150 2.150 5.900 497495 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 2 1 0 0 0 0 1 0 1 0 0 0 0 1 2 0 0 0 0 0 2 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 2 0 0 1 0 0 0 1 0 2 2 1 0 0 0 2 0 2 1 1 1 6 3 2 0 3 2 2 2 1 1 3 4 1 0 1 2 4 2 3 3 1 1 1 1 3 3 1 4 1 3 4 3 2 3 1 2 2 5 11 11 14 26 27 28 28 28 36 39 42 29 33 24 20 29 18 13 17 13 6 10 4 3 3 6 1 0 1 0 2 1 3 2 3 1 2 3 1 2 1 2 0 2 2 3 1 3 1 1 2 4 4 1 4 3 2 2 3 5 5 3 0 2 5 3 5 1 4 1 1 3 4 2 2 2 2 1 3 0 1 1 2 2 4 2 1 3 2 0 1 2 1 0 2 3 1 2 0 0 0 2 0 0 1 3 0 0 1 2 0 3 1 0 3 1 2 2 1 1 2 0 0 0 0 2 0 0 1 0 0 0 0 0 0.104000 2.200 2.200 6.000 529288 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 3 0 2 0 2 0 0 3 2 2 0 4 0 3 2 2 1 3 1 7 3 1 1 0 4 3 2 1 0 0 3 2 3 5 2 1 4 1 5 1 0 3 2 3 0 1 2 4 7 3 7 8 12 15 20 24 34 39 34 35 27 36 34 23 22 26 15 24 12 12 14 5 3 0 7 1 1 3 5 1 2 2 2 4 3 1 2 5 2 2 3 1 1 4 2 1 3 0 4 5 4 6 4 5 3 3 3 3 1 1 5 0 6 1 2 4 2 3 2 1 3 2 0 0 0 1 3 3 0 1 4 0 3 2 3 0 3 3 0 2 3 4 3 1 1 1 2 5 3 1 2 1 1 2 4 1 0 2 4 1 3 0 0 3 0 1 3 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0.106000 2.250 2.250 6.100 560628 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 2 0 0 0 0 2 0 3 1 1 0 0 2 2 2 0 5 2 1 1 1 1 3 1 2 3 0 1 0 0 0 0 1 0 2 2 1 2 1 0 4 3 2 1 2 1 0 4 2 2 0 2 1 1 2 3 1 2 1 2 4 4 11 12 17 19 19 29 30 24 30 35 51 32 36 34 31 19 22 17 11 19 11 7 6 6 3 4 0 3 3 2 0 2 2 2 3 1 5 3 2 3 5 1 0 2 2 5 4 2 3 2 0 1 6 1 2 2 2 2 1 1 2 2 1 4 3 2 2 1 2 5 2 0 2 0 2 5 4 5 2 1 3 6 1 3 4 4 0 0 6 0 2 6 1 2 2 2 0 1 3 1 3 4 2 1 4 2 1 2 3 3 0 3 1 0 2 0 2 1 0 2 1 2 0 0 1 1 0 2 0 0 0 0 0 0 0 0.108000 2.300 2.300 6.200 593293 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 2 0 2 2 1 0 0 2 0 1 0 1 0 0 1 2 2 1 0 0 1 0 2 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 2 2 1 0 1 1 0 1 5 0 2 4 1 0 1 4 2 1 3 2 2 3 2 3 2 0 0 3 4 3 1 3 2 2 0 3 0 2 4 0 3 2 5 1 2 1 4 6 1 2 4 0 3 6 1 7 6 4 5 4 10 16 24 22 20 40 37 44 34 29 21 28 36 36 27 23 24 14 10 4 5 2 5 3 6 2 3 3 1 4 2 1 5 1 3 5 3 2 1 2 2 6 2 3 1 1 0 5 3 3 3 4 5 2 2 3 3 5 5 1 6 2 3 2 6 0 5 2 4 3 5 1 2 2 5 1 2 3 1 2 2 2 4 2 5 5 2 2 2 5 0 1 2 5 2 3 2 3 1 1 2 4 0 2 1 4 2 1 1 1 0 1 2 0 0 1 3 1 0 2 1 1 3 3 2 0 0 0 1 2 0 0 0 0 0.110000 2.350 2.350 6.300 636559 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 1 0 0 0 1 1 2 0 0 1 0 0 0 0 0 0 0 1 2 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 2 0 1 0 1 0 1 0 0 1 1 3 0 1 2 2 0 2 1 1 1 1 0 1 0 1 3 0 3 2 3 4 3 3 4 3 3 2 6 3 1 1 1 2 4 2 3 1 5 1 3 1 4 5 3 3 2 1 3 7 4 3 10 19 17 19 23 27 28 33 39 36 23 23 32 32 16 19 35 23 12 11 12 8 4 5 7 1 2 2 1 2 3 5 4 2 3 2 6 4 4 2 4 1 2 2 1 2 3 0 4 2 1 2 6 2 2 1 3 3 1 6 4 8 5 2 3 5 2 3 0 3 2 3 1 2 2 3 4 3 8 6 2 1 4 6 3 1 2 0 2 0 2 5 0 3 3 3 3 1 3 3 2 5 4 2 1 4 2 2 4 4 1 3 2 5 2 3 1 2 0 4 0 1 0 6 3 1 2 0 2 0 1 0 0 0 0 0.112000 2.400 2.400 6.400 670484 3 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 2 0 1 1 1 3 0 0 0 2 1 3 0 1 1 1 0 1 1 1 0 0 1 2 0 1 3 1 5 2 3 0 4 0 2 0 0 1 2 1 0 1 0 0 1 0 2 2 3 2 3 2 2 2 3 4 4 2 3 5 3 3 2 3 3 4 2 4 0 3 2 4 4 1 3 1 3 4 2 2 5 2 8 6 12 17 14 22 27 26 29 39 30 24 36 22 22 20 9 19 15 5 12 16 4 7 5 7 5 5 1 4 5 5 4 4 1 4 4 3 3 3 4 2 2 4 2 4 4 4 4 0 2 3 2 1 4 3 6 1 3 3 3 4 5 4 2 2 2 5 3 0 2 5 4 2 5 3 5 1 1 3 1 1 3 6 6 2 3 2 0 3 2 4 3 4 1 2 2 6 2 0 3 2 2 5 3 3 5 2 1 0 3 1 1 2 2 0 1 1 3 2 3 2 1 1 1 1 3 2 1 0 0 0 0 0 0 0 0.114000 2.450 2.450 6.500 711783 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 1 0 2 1 2 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 2 0 1 1 0 0 0 2 1 1 1 1 1 2 1 2 3 3 1 1 1 2 3 1 3 2 2 1 0 1 1 4 4 4 1 0 4 0 0 1 1 2 1 3 2 0 3 4 1 1 1 1 3 2 0 1 3 2 1 2 1 0 3 3 2 5 4 2 5 3 4 2 2 5 3 3 3 3 5 5 8 7 14 12 28 22 24 23 36 33 26 32 27 26 18 30 24 15 13 19 15 17 6 5 7 5 4 3 5 3 1 4 4 9 5 3 1 4 0 0 6 2 5 3 3 3 1 2 3 2 4 1 5 5 3 8 2 1 1 4 1 7 5 6 6 4 4 3 2 6 3 3 3 3 1 3 4 5 4 3 4 3 1 2 3 1 2 1 2 2 6 5 2 2 2 4 2 2 0 2 3 3 2 7 4 4 1 4 2 0 3 1 1 2 1 2 3 1 3 2 2 4 3 1 4 0 0 4 2 2 2 1 0 0 0 0 0.116000 2.500 2.500 6.600 745364 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 2 1 1 2 1 1 1 0 1 0 2 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 2 3 0 1 4 4 0 4 0 1 0 1 3 3 0 2 1 2 3 2 1 1 1 2 0 4 0 0 4 5 2 5 4 1 3 5 5 4 0 4 4 2 3 2 3 5 2 2 4 2 3 4 2 3 3 3 3 3 2 4 12 10 13 14 19 22 23 24 36 19 32 25 25 36 24 18 20 21 14 18 13 8 6 9 2 9 5 2 5 3 4 4 3 3 0 4 3 2 5 3 4 2 2 6 3 4 0 2 4 1 3 4 7 4 5 3 2 4 5 5 3 4 4 4 2 3 2 4 4 2 1 5 7 1 5 2 4 1 5 5 3 4 4 3 2 4 2 4 0 6 2 3 4 1 2 2 2 4 1 4 2 2 2 5 6 5 1 4 4 2 3 3 3 1 4 3 4 2 6 2 5 3 2 2 1 3 2 2 5 1 1 0 0 1 0 0 0 0.118000 2.550 2.550 6.700 791846 4 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 2 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 4 1 2 3 0 3 1 0 1 1 1 0 3 1 2 1 1 1 0 0 1 1 1 3 1 3 2 3 1 2 2 1 3 2 4 1 4 0 2 4 1 4 3 2 1 1 2 1 3 2 3 3 2 1 1 5 3 3 3 3 2 3 4 3 5 3 1 1 2 2 3 5 1 2 1 1 4 4 6 9 6 6 13 17 21 20 24 22 25 20 29 23 28 30 26 27 18 20 17 16 17 12 10 8 5 6 6 6 4 3 1 2 4 6 9 2 2 3 5 7 6 2 3 8 5 4 5 6 4 6 5 3 5 3 2 5 3 2 8 3 5 4 5 3 5 4 3 4 8 4 3 8 3 3 3 1 1 2 2 5 4 7 3 2 3 3 2 2 3 6 3 2 2 1 1 5 2 5 6 3 5 3 4 1 3 1 2 1 0 4 1 4 2 2 2 3 1 1 1 1 3 2 0 1 6 1 1 0 2 1 0 1 0 0 0 0 0.120000 2.600 2.600 6.800 833394 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 2 1 1 1 2 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 2 1 0 0 0 0 0 2 2 0 3 1 0 0 2 1 1 1 1 0 1 2 1 5 0 1 0 2 2 1 2 0 4 2 1 4 3 4 2 2 1 2 1 5 2 3 1 3 0 2 2 2 2 3 4 0 4 2 3 3 4 5 2 2 6 3 4 5 5 5 3 4 6 5 1 3 0 5 4 5 1 3 2 2 6 18 13 17 27 27 21 28 28 24 26 27 29 23 21 16 17 19 22 14 11 9 5 14 7 7 6 4 4 12 3 6 4 5 4 6 4 2 0 1 8 1 6 8 5 2 3 4 5 6 4 2 5 8 3 1 1 6 3 7 8 4 1 6 5 2 8 11 5 6 5 6 2 4 5 1 2 7 2 2 5 5 6 3 3 2 3 8 5 1 9 3 3 2 3 6 3 5 3 2 4 6 3 1 3 5 4 4 4 6 3 3 5 0 2 2 5 1 3 2 2 1 4 2 0 2 2 2 2 4 1 2 1 2 1 1 0 0.122000 2.650 2.650 6.900 876007 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 1 1 1 1 2 2 1 0 0 1 0 0 0 1 1 0 0 0 2 0 0 4 1 0 2 1 2 0 1 2 0 1 3 2 1 0 1 1 0 1 2 1 0 2 3 3 5 3 3 3 0 1 4 0 1 5 3 4 3 1 2 2 2 4 1 3 3 3 2 3 2 3 2 1 4 4 2 2 5 5 3 4 1 2 1 2 4 2 4 7 2 4 4 2 7 3 5 7 5 3 6 8 10 10 18 21 22 24 14 25 27 29 31 22 25 24 21 27 20 19 22 19 14 13 14 10 5 7 3 4 5 5 3 1 4 3 8 4 5 4 0 3 4 3 4 1 7 6 1 1 3 4 4 3 4 3 6 4 3 4 2 4 4 3 5 6 5 1 1 6 2 6 6 3 5 5 3 2 6 5 4 3 4 6 4 3 5 5 6 5 6 2 4 2 1 2 2 4 2 7 6 2 1 3 1 5 2 1 2 4 3 3 3 2 5 2 4 1 4 3 2 2 5 5 1 1 3 3 2 2 2 2 1 0 0 0 0 0 0.124000 2.700 2.700 7.000 925764 3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 2 1 3 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 2 0 0 3 2 0 1 2 1 1 2 0 2 1 2 2 0 0 2 3 2 3 2 2 3 2 2 4 0 2 0 5 1 3 2 3 1 2 3 2 0 6 4 3 6 2 5 0 5 2 1 4 4 5 7 4 2 3 5 2 0 2 5 2 4 7 4 4 4 8 5 3 1 7 2 2 1 5 5 5 14 19 16 22 18 30 29 25 36 23 23 22 25 25 27 26 23 14 20 16 16 10 6 6 6 4 2 6 6 6 6 6 4 6 1 0 3 4 4 5 2 4 3 2 4 4 5 5 5 6 10 6 3 6 8 5 5 8 7 4 6 4 3 4 8 5 5 7 4 6 3 5 8 4 3 4 4 3 4 3 1 3 3 7 2 4 8 3 6 4 3 3 2 5 4 4 3 7 4 5 4 4 3 4 7 2 3 3 4 3 0 2 2 4 3 4 2 4 2 2 6 4 4 6 6 1 5 1 1 2 1 0 0 0 0 0 0.126000 2.750 2.750 7.100 969560 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 1 0 1 2 0 2 0 2 2 0 1 1 1 0 0 1 0 1 1 1 1 2 0 1 2 2 1 2 0 0 1 0 1 0 2 1 0 1 0 1 1 2 0 3 0 3 4 3 1 3 2 0 4 0 1 2 0 3 1 1 2 3 2 2 2 5 1 7 1 5 1 5 4 2 0 0 1 2 1 3 2 3 3 5 4 10 10 2 5 11 4 1 2 1 7 3 5 4 4 1 5 10 8 7 9 9 20 20 21 33 21 28 20 27 32 21 29 22 20 24 15 13 27 14 13 15 10 9 3 11 6 7 5 3 6 8 5 4 4 1 3 3 5 2 7 3 6 6 1 6 4 6 5 3 4 2 4 3 3 9 4 5 4 4 5 2 3 10 4 3 2 6 10 6 3 6 5 5 5 4 8 8 5 4 3 6 4 4 2 4 4 4 5 7 4 4 4 4 5 2 2 3 4 5 2 1 3 2 6 2 7 7 1 6 4 4 6 5 5 4 0 2 2 3 2 7 5 0 4 1 1 4 6 1 0 3 2 0 0 1 0.128000 2.800 2.800 7.200 1022713 5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 2 1 0 0 4 0 0 1 2 3 1 1 0 1 0 1 0 3 1 1 1 2 2 1 1 1 3 1 0 2 4 2 1 2 1 2 0 3 1 3 2 1 5 2 1 3 1 2 1 5 3 2 1 2 5 3 8 2 3 2 5 5 4 3 6 4 4 4 3 2 3 8 4 3 4 5 4 5 4 7 6 5 3 3 3 5 2 9 10 7 9 12 11 13 17 15 22 19 33 24 28 30 26 21 24 22 27 20 26 16 10 10 9 20 10 7 4 5 7 7 2 7 5 3 5 1 6 1 5 7 5 6 3 1 5 1 1 3 4 8 6 3 9 5 5 3 6 7 4 6 7 6 4 2 4 6 2 3 6 5 6 7 6 4 4 9 6 8 6 9 7 1 2 6 2 7 5 4 4 4 4 5 5 4 4 3 6 3 5 3 6 4 3 6 6 2 5 2 8 4 5 3 6 5 4 5 8 4 3 5 6 5 5 2 8 1 2 2 5 4 1 3 0 0 0 0 0 0.130000 2.850 2.850 7.300 1081669 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 5 0 0 2 2 0 0 1 0 0 0 1 1 0 2 0 2 2 2 1 0 1 0 2 2 3 1 1 0 2 0 1 0 2 1 1 2 2 0 1 4 3 0 2 1 1 0 2 5 2 1 0 1 3 2 5 2 1 2 5 2 3 4 3 6 6 6 4 6 6 3 1 3 2 3 4 7 5 2 9 7 4 1 4 4 3 2 2 2 7 4 8 4 7 4 6 8 5 1 8 6 10 18 21 18 15 21 24 21 26 22 30 28 27 23 22 21 17 25 20 17 13 17 9 12 7 8 5 4 4 5 5 2 4 1 1 2 5 7 6 4 9 7 7 5 5 5 5 5 2 4 5 3 6 8 2 4 9 4 10 5 1 4 5 5 5 10 3 2 8 6 5 7 3 13 3 3 6 5 1 4 5 9 5 2 7 4 5 6 3 5 6 5 4 5 9 6 4 3 4 4 4 5 8 5 5 0 3 6 3 4 3 7 5 6 4 3 3 6 8 4 1 3 1 2 7 3 4 6 6 1 3 4 1 0 1 0 0 0.132000 2.900 2.900 7.400 1131887 3 0 0 0 0 0 0 0 0 0 1 0 0 1 2 1 1 0 0 0 1 2 2 1 1 0 2 1 1 0 1 1 1 0 2 2 3 1 0 1 0 1 0 2 0 2 0 1 4 0 1 2 2 0 0 0 2 3 0 1 2 3 0 1 2 3 5 6 2 2 3 1 4 4 8 4 3 3 3 7 2 2 5 7 4 1 2 4 8 1 5 2 7 3 4 2 9 6 5 5 6 2 2 3 6 2 5 6 7 7 2 8 3 3 3 3 6 6 5 3 10 15 15 17 19 13 29 20 23 22 34 28 28 33 20 20 22 17 22 18 15 19 14 11 9 13 6 6 13 4 2 9 8 8 7 6 5 6 4 4 9 6 2 8 9 7 2 6 3 7 3 6 3 7 4 4 5 4 5 6 4 7 5 4 10 2 6 6 8 3 6 6 9 5 8 8 7 6 4 8 5 7 5 5 7 3 5 5 5 10 7 3 8 7 5 7 2 4 4 6 4 10 7 6 4 4 4 4 3 2 4 2 6 5 9 7 3 2 6 2 5 1 5 6 2 2 1 9 2 5 2 5 1 0 0 0 1 1 0.134000 2.950 2.950 7.500 1185706 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 3 2 1 0 1 1 0 0 0 0 0 1 0 1 1 2 0 1 0 1 2 0 0 0 1 1 0 1 1 1 0 2 2 0 1 3 3 2 3 0 0 2 2 3 2 1 1 3 0 0 1 1 3 4 3 1 1 9 1 4 0 1 3 4 1 3 2 6 4 7 7 3 2 8 5 2 5 2 4 6 7 3 7 7 8 4 7 2 4 7 7 9 9 2 5 5 8 3 5 7 3 6 10 6 10 15 10 13 14 29 21 23 37 26 20 28 20 16 24 25 16 19 21 20 20 17 11 10 12 8 7 7 5 5 5 4 5 6 7 3 6 5 7 5 11 9 6 8 11 6 4 6 8 8 7 7 7 4 5 4 8 5 4 3 4 8 10 7 9 4 7 6 8 9 7 3 5 7 7 6 2 6 4 7 3 9 8 12 7 6 6 6 4 5 7 2 4 7 3 2 4 4 7 1 4 5 0 4 6 3 10 8 5 4 3 4 5 7 5 7 5 7 3 5 2 5 6 4 5 2 4 1 6 6 2 4 2 0 0 1 0 0.136000 3.000 3.000 7.600 1238426 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 2 4 0 2 0 2 2 0 1 1 1 0 2 1 1 2 1 0 1 1 0 3 1 0 0 1 0 1 0 0 2 1 1 0 4 0 2 6 3 3 4 0 3 1 2 4 0 4 4 0 1 5 2 2 5 1 3 4 3 3 5 2 4 4 6 2 5 3 4 5 4 5 6 7 5 6 2 8 3 4 7 2 4 4 3 7 6 5 1 4 8 3 7 10 3 3 6 1 5 3 8 11 5 7 15 11 15 17 21 23 21 24 28 16 21 29 15 22 27 28 20 13 19 13 7 15 10 11 9 6 8 8 4 7 5 4 6 5 10 6 7 8 9 3 5 5 9 5 9 4 4 4 3 5 7 4 10 6 8 4 9 8 4 6 7 9 11 6 8 3 5 8 12 3 6 9 7 11 9 6 7 4 7 7 7 2 5 4 5 0 2 9 5 5 5 10 7 5 6 3 9 4 4 13 2 7 5 7 4 7 2 0 4 5 4 4 6 8 1 2 5 6 4 7 3 11 4 3 3 5 5 4 4 3 1 4 2 2 1 1 0 0.138000 3.050 3.050 7.700 1299809 6 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 2 1 1 0 0 1 0 0 2 0 1 2 0 0 3 0 0 1 3 1 2 0 2 0 1 1 2 1 2 3 2 1 2 5 2 2 2 4 3 2 5 3 0 3 2 4 5 4 3 0 5 4 1 4 3 8 6 4 4 7 4 5 4 3 6 5 6 10 3 6 6 2 6 3 4 4 3 6 7 6 8 3 4 7 5 4 9 2 4 8 5 9 8 3 7 5 7 7 13 7 11 15 17 16 18 18 18 20 17 26 25 19 20 26 31 22 18 20 18 14 11 16 4 7 11 10 8 9 9 6 3 8 8 7 5 6 10 3 5 6 6 3 12 7 8 8 2 10 4 13 9 9 12 4 5 9 7 9 5 7 4 8 9 6 7 8 10 8 7 5 7 11 6 4 4 4 6 4 9 4 5 9 10 7 4 12 7 4 9 5 10 10 6 8 4 7 2 4 7 2 6 8 4 11 3 3 9 7 6 7 3 8 7 4 8 5 3 7 4 5 5 7 4 6 7 5 5 3 5 2 5 4 1 2 0 0 1 0.140000 3.100 3.100 7.800 1361810 3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 3 2 1 0 0 0 1 1 1 2 0 0 0 0 1 0 2 2 2 1 0 0 3 3 0 2 0 6 2 3 1 0 3 3 1 2 2 5 3 5 3 3 2 2 7 3 2 2 3 4 2 3 4 4 1 3 7 4 5 4 2 3 5 4 2 1 3 6 3 4 3 8 7 6 5 3 5 11 5 5 3 3 7 3 6 4 4 2 4 4 4 1 5 5 9 6 6 9 3 10 8 6 8 3 10 8 16 16 13 18 23 29 25 19 19 20 27 19 22 27 24 21 15 18 11 20 21 17 12 5 18 6 12 7 9 11 7 12 11 4 8 8 4 8 7 7 2 6 4 4 9 6 9 3 4 7 7 7 4 10 4 11 5 8 8 8 5 4 4 8 6 4 9 8 12 12 8 5 8 3 10 8 7 5 3 5 6 8 5 6 10 7 2 11 2 5 5 6 8 10 2 7 5 5 14 2 7 3 9 3 5 2 8 2 3 4 4 7 9 5 4 7 6 7 5 6 3 5 4 7 6 7 7 9 3 0 2 1 1 1 0 0 0.142000 3.150 3.150 7.900 1429499 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 3 1 2 1 1 0 0 0 3 0 2 2 1 0 3 0 2 1 3 0 0 1 1 3 1 2 4 1 5 3 5 1 0 7 1 3 2 3 2 2 2 3 0 0 1 3 6 3 2 2 4 4 4 6 4 3 6 4 10 3 7 2 5 4 7 4 5 8 4 7 4 1 7 11 5 2 10 2 11 3 7 8 10 9 6 3 5 3 6 3 10 11 5 5 9 7 10 8 9 5 15 11 9 18 18 15 24 17 23 17 19 25 17 24 18 37 16 17 21 17 14 20 17 15 15 9 4 11 7 3 8 10 8 8 6 8 3 4 5 8 4 6 3 9 9 6 2 10 4 4 3 8 4 9 1 7 5 9 7 10 9 10 4 6 5 8 6 6 10 10 6 5 7 6 6 10 5 7 8 8 8 7 7 11 12 8 3 10 6 9 13 11 4 6 7 6 3 10 5 8 4 7 7 7 5 8 4 9 5 5 7 6 6 7 11 11 7 8 5 3 5 7 7 10 3 3 6 5 7 9 2 3 7 1 0 0 0 0 1 0.144000 3.200 3.200 8.000 1493946 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 2 3 0 0 1 2 1 1 1 4 1 0 1 0 1 2 1 3 1 1 1 1 2 1 1 3 2 6 0 4 0 1 4 2 4 5 2 1 3 0 2 2 4 2 3 2 4 3 5 4 4 4 1 5 1 3 4 5 6 4 7 2 8 8 8 5 3 6 0 7 3 2 2 5 7 5 7 5 8 9 6 4 3 6 8 6 10 2 5 6 3 3 6 6 6 6 17 5 10 6 6 11 11 13 12 21 26 18 24 21 24 23 30 18 22 20 24 19 13 17 25 22 17 15 8 13 7 10 8 9 6 7 9 8 7 8 9 7 7 6 12 5 9 9 12 9 12 6 9 7 10 7 7 4 9 7 4 2 7 4 5 8 8 9 7 6 7 5 9 4 8 13 6 5 4 7 9 6 7 7 9 4 4 5 8 10 9 10 6 6 7 9 12 11 8 8 9 11 5 8 7 5 5 8 5 9 10 5 5 11 11 6 8 8 4 8 5 5 5 4 7 4 5 6 5 6 6 7 7 4 2 6 3 2 1 0 0 0 0 0 0.146000 3.250 3.250 8.100 1562352 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 2 0 1 2 1 1 0 0 1 0 1 2 0 0 0 3 1 2 0 4 4 2 0 0 2 3 2 0 1 3 3 4 0 1 4 3 3 4 5 5 4 2 1 4 2 5 3 2 7 6 3 5 6 5 5 5 1 5 2 7 4 8 7 4 6 5 7 5 3 5 8 1 6 4 6 8 7 6 7 6 3 4 6 3 5 8 4 10 3 3 11 6 5 3 9 6 4 3 17 9 11 11 24 13 15 14 25 26 26 21 17 32 32 22 18 25 29 29 27 24 21 12 23 14 12 11 9 17 7 9 11 3 7 6 5 5 12 3 6 8 7 4 7 11 10 8 9 5 8 2 10 9 8 10 10 7 7 4 7 5 7 7 9 10 8 7 7 16 6 8 10 5 6 6 12 12 7 11 11 8 9 7 8 12 10 7 8 7 11 8 9 7 7 4 9 4 7 14 9 8 8 13 9 8 7 13 5 9 5 7 4 9 5 7 8 7 8 7 3 10 9 3 4 4 4 5 2 6 6 3 5 10 4 4 2 3 0 1 0 0 0.148000 3.300 3.300 8.200 1630559 3 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 4 2 1 1 1 2 1 2 0 2 1 5 0 1 1 4 0 2 1 4 5 3 0 1 1 1 2 1 3 3 3 1 1 1 1 1 3 4 6 6 8 8 4 3 2 7 2 2 1 7 4 4 5 1 10 6 4 4 4 3 3 3 6 11 6 4 5 4 8 5 5 9 4 5 5 7 6 4 13 12 3 6 7 5 2 7 9 7 8 8 4 7 6 4 10 6 8 9 9 9 13 15 17 23 25 13 16 24 22 26 21 27 24 24 21 21 21 15 17 22 25 21 22 17 14 11 8 12 5 9 7 8 5 11 10 6 6 5 9 13 10 9 8 8 8 6 4 9 10 9 9 7 8 7 5 7 8 14 13 5 14 5 12 11 8 9 6 5 4 9 13 7 10 13 11 11 8 5 9 10 8 7 6 7 13 3 13 8 7 13 17 5 8 5 10 7 12 7 6 6 9 7 8 8 11 8 11 9 11 11 8 5 6 10 4 9 3 10 8 7 10 8 7 8 10 10 7 4 11 5 7 8 2 4 3 0 0 1 0 1 0.150000 3.350 3.350 8.300 1707576 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 1 2 1 0 2 0 2 3 1 3 2 2 2 2 0 2 1 4 3 2 2 3 1 2 1 0 2 2 4 2 5 3 3 5 2 8 4 5 4 2 3 6 7 6 1 0 7 4 7 7 6 5 4 3 4 6 6 7 6 2 7 4 4 2 5 5 6 9 3 3 3 6 6 5 3 5 7 8 8 6 8 8 6 8 3 9 6 6 8 8 6 4 8 6 6 10 4 11 6 11 15 23 16 8 17 20 21 19 24 15 14 19 21 30 25 21 15 19 16 18 21 21 15 14 12 16 8 10 12 7 10 9 8 10 10 7 9 8 10 12 6 6 9 11 6 5 9 12 6 7 12 7 5 6 8 5 9 4 11 9 8 8 10 7 6 10 7 11 13 7 4 13 11 8 11 9 16 6 12 11 10 10 19 2 9 11 8 7 8 8 6 13 6 10 12 12 9 12 9 9 8 7 7 9 6 12 8 4 9 9 8 5 7 8 9 5 12 5 7 5 9 10 9 10 3 6 6 8 7 11 3 5 5 4 2 0 0 0 0 0.152000 3.400 3.400 8.400 1777231 3 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 3 1 0 3 4 2 3 3 3 3 3 2 1 1 1 1 3 3 0 1 8 0 0 5 3 7 4 4 4 4 4 3 5 2 2 5 3 6 1 7 6 1 2 2 5 2 1 6 6 8 7 7 5 10 4 1 6 9 3 4 5 3 5 8 4 9 8 11 8 3 2 7 7 9 10 9 10 8 6 8 6 8 7 10 8 7 3 8 4 10 7 6 8 9 6 5 16 9 19 24 23 17 23 24 22 30 21 15 23 27 20 20 20 18 20 23 18 17 15 19 17 18 13 9 4 4 7 12 7 10 4 8 6 10 5 6 13 2 3 8 7 8 7 3 11 8 7 9 7 19 7 8 9 6 14 8 8 11 10 11 13 14 10 16 8 9 13 8 9 9 12 7 12 11 6 9 15 5 9 9 9 11 11 13 6 10 6 4 12 9 9 12 11 8 6 9 16 10 10 10 8 10 10 6 7 4 1 15 6 8 4 9 13 11 8 10 11 9 8 3 3 6 6 7 9 4 6 8 7 4 2 1 2 2 1 0 0.154000 3.450 3.450 8.500 1849489 6 0 0 0 0 0 0 0 0 0 0 0 1 1 3 0 1 2 2 0 1 4 1 1 0 1 0 2 1 0 0 1 1 1 1 6 3 6 1 3 1 3 3 0 6 0 4 2 7 4 6 4 4 3 7 4 5 7 5 5 2 3 9 9 2 5 5 3 9 4 2 7 6 2 8 2 5 7 12 6 5 4 5 10 4 12 10 6 4 14 7 9 10 11 7 7 7 7 3 9 7 4 3 8 7 5 7 9 6 8 9 6 8 8 12 6 5 11 12 13 11 13 21 26 19 23 25 18 23 22 23 23 18 27 20 15 20 25 24 19 18 12 14 13 15 8 15 10 11 7 9 13 11 12 13 11 11 7 11 13 6 5 10 6 6 10 8 14 5 14 11 8 5 9 7 10 10 8 7 15 13 3 13 12 18 15 7 10 9 10 8 15 9 6 8 9 10 10 9 5 7 7 5 10 11 13 12 12 12 10 6 17 10 11 9 4 8 7 6 6 9 12 8 16 18 7 5 10 8 12 10 15 6 13 11 6 10 16 10 11 16 8 9 5 11 10 14 11 5 2 5 7 3 1 1 0 1 0 0.156000 3.500 3.500 8.600 1920727 4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 2 1 2 0 3 0 1 1 0 1 0 3 0 4 4 1 3 1 2 3 3 4 3 1 2 3 9 5 2 3 7 3 3 6 5 2 6 1 4 3 2 3 6 5 1 8 3 8 5 3 7 6 13 11 9 5 8 7 7 5 8 7 4 8 6 4 10 4 6 5 6 9 9 12 6 7 10 9 9 8 8 3 8 9 8 8 2 12 11 13 8 13 7 8 6 6 9 6 8 16 13 14 16 16 22 20 21 21 17 20 18 19 22 20 11 20 22 21 14 19 15 23 17 15 12 14 19 16 10 11 14 11 9 11 9 12 8 16 14 9 6 18 10 11 7 10 11 17 10 13 8 10 12 9 12 7 7 10 10 11 11 9 8 8 14 10 10 9 14 9 14 13 9 19 16 17 4 11 8 12 11 10 21 6 10 8 9 12 9 7 7 12 7 16 14 10 13 6 13 8 9 10 6 10 8 7 10 4 6 11 19 12 6 7 5 8 11 10 12 13 9 6 10 5 11 11 4 14 10 7 2 6 5 1 2 5 1 1 0 0 0.158000 3.550 3.550 8.700 1999833 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 2 3 2 2 2 1 2 3 0 1 0 1 3 2 0 0 3 2 3 2 5 7 0 3 4 1 10 7 7 4 5 2 3 4 3 8 3 6 4 4 4 8 2 3 4 5 5 7 1 6 7 8 1 6 8 1 4 4 11 9 4 7 11 9 10 5 6 8 4 3 9 7 9 11 5 5 8 8 4 8 7 8 11 9 12 6 4 13 4 12 10 6 9 11 10 11 10 11 11 11 14 15 14 23 18 17 29 16 26 23 15 19 14 18 19 22 31 13 21 20 12 16 15 14 18 17 15 8 12 14 13 10 10 10 10 10 13 11 6 8 11 8 14 8 10 11 11 8 10 13 5 14 7 12 9 10 10 12 15 18 8 6 9 9 12 8 9 20 14 16 10 11 14 5 5 13 6 11 9 11 15 6 9 13 11 7 8 7 10 8 16 12 11 8 10 14 11 17 11 8 16 13 9 10 5 10 17 13 14 16 8 10 9 11 5 10 9 10 12 8 11 12 11 8 6 7 12 15 13 12 7 13 5 0 3 2 0 0 0 0 0.160000 3.600 3.600 8.800 2073149 3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 1 2 1 2 2 1 0 2 2 1 0 3 6 4 5 5 2 2 2 5 5 3 6 4 6 4 5 2 4 4 3 2 4 6 3 3 6 5 7 4 5 7 5 3 5 6 13 5 3 10 5 9 7 4 5 6 5 10 6 5 5 6 6 4 14 7 6 11 6 9 10 9 8 5 3 8 10 10 6 6 8 9 5 6 14 7 11 10 9 9 11 13 8 4 5 10 12 6 16 8 8 7 19 20 23 10 16 27 25 23 19 26 21 16 20 21 24 18 25 8 11 13 16 18 13 22 18 9 16 4 16 10 12 13 9 7 9 8 17 11 10 13 10 14 4 9 12 16 8 9 16 17 13 11 14 8 8 13 9 11 15 10 11 14 8 6 4 9 11 18 9 9 8 9 15 11 11 11 9 6 13 13 10 7 8 10 15 14 9 7 4 10 12 17 10 14 13 10 10 12 20 9 7 6 11 15 11 10 8 9 6 10 13 17 6 8 9 6 13 13 16 10 15 5 11 14 11 12 6 5 12 9 4 9 2 4 1 1 0 0 0 0.162000 3.650 3.650 8.900 2156456 5 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 2 0 1 1 3 2 3 4 3 3 2 1 3 6 5 2 3 4 4 3 6 2 3 4 4 5 5 3 4 1 4 5 9 3 3 4 3 3 8 5 6 12 2 10 3 4 6 8 9 8 8 2 2 7 5 8 2 8 9 7 2 6 8 6 5 8 2 7 5 6 13 5 6 8 11 6 10 5 6 3 8 10 11 10 10 14 10 11 8 11 8 12 6 12 5 15 12 13 10 13 13 18 23 12 21 18 21 23 20 30 20 23 26 24 24 21 21 29 19 21 16 23 20 13 19 13 16 11 15 13 13 11 8 11 14 14 13 4 16 15 18 13 9 19 8 11 6 9 14 8 13 12 13 10 13 10 14 11 13 11 8 10 13 11 11 14 11 8 14 11 10 9 14 12 14 18 8 12 7 13 12 10 14 14 8 12 17 11 13 9 12 12 15 7 9 13 17 11 11 11 12 17 12 11 16 15 8 9 12 7 13 15 11 16 7 10 7 14 5 18 10 10 8 8 6 6 13 14 6 9 11 9 9 3 5 1 1 3 0 0 0.164000 3.700 3.700 9.000 2234753 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 4 1 4 2 1 3 1 1 3 2 3 3 1 3 6 2 4 4 3 3 3 6 5 2 6 4 1 3 3 7 1 4 4 6 12 4 5 2 6 4 9 3 1 8 11 5 2 7 6 3 8 4 7 3 8 3 9 6 7 8 9 2 7 6 9 6 15 6 9 5 9 4 9 17 15 10 2 10 6 8 12 12 11 12 10 9 7 11 8 7 5 11 10 14 16 7 7 7 13 15 10 16 17 21 19 14 18 24 19 27 27 24 20 22 24 21 20 14 24 17 17 18 32 15 12 13 15 12 8 14 11 11 19 11 14 15 18 10 5 12 11 11 9 15 9 7 9 16 12 9 12 10 15 9 18 7 11 12 14 7 20 8 10 13 14 11 6 6 9 11 8 10 16 8 17 13 17 9 16 11 10 9 13 20 17 14 12 10 13 11 9 9 17 20 10 16 8 14 13 14 18 15 15 8 10 12 11 22 12 13 9 12 9 11 14 19 12 12 8 8 12 11 19 11 11 12 15 11 15 13 9 9 10 9 4 9 4 2 1 0 0 0.166000 3.750 3.750 9.100 2327990 3 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 2 0 1 2 2 1 1 0 0 3 1 4 2 6 4 2 4 3 2 5 5 2 3 1 3 1 2 10 2 7 4 3 4 3 3 4 3 10 6 9 6 3 8 5 5 3 4 4 6 8 4 4 7 5 5 11 14 5 3 6 8 8 7 10 11 7 17 7 11 10 8 7 8 12 13 11 12 6 13 9 7 7 6 5 8 13 10 10 14 11 11 8 12 15 14 9 13 10 9 18 13 18 12 23 14 17 24 15 23 25 31 19 17 29 19 19 19 26 25 19 17 22 19 19 19 11 11 12 22 21 8 10 18 10 14 19 17 13 14 10 6 9 10 15 11 5 13 13 11 11 17 16 9 7 14 7 19 6 10 13 7 12 18 14 7 12 15 13 13 9 13 13 13 12 12 14 12 19 10 16 18 18 12 8 10 10 9 7 14 9 11 13 12 8 15 12 11 10 12 11 17 15 19 14 14 12 7 7 12 11 15 16 12 11 12 10 19 19 12 14 12 15 11 20 13 7 18 9 15 19 16 11 5 9 8 6 2 4 0 2 0 1 0.168000 3.800 3.800 9.200 2406866 3 0 0 0 0 0 0 0 0 0 0 1 0 2 0 1 0 2 3 2 3 1 2 1 2 2 5 2 1 2 3 2 2 2 5 3 5 3 3 1 3 6 8 6 1 3 9 6 3 6 10 5 5 7 4 5 7 12 9 5 7 5 6 6 8 3 5 4 7 8 5 6 5 8 13 4 10 2 10 9 7 7 16 9 10 9 13 8 12 9 13 15 9 15 9 10 11 6 6 6 7 7 6 8 15 9 8 9 6 12 12 11 14 12 11 13 8 17 18 18 11 14 19 14 25 21 15 10 15 19 27 23 22 24 17 19 18 12 16 22 21 25 9 25 15 19 15 21 15 8 11 13 12 10 12 7 13 11 17 11 13 10 16 19 14 23 11 8 12 13 10 9 17 4 14 10 7 10 17 14 11 11 20 18 13 8 12 6 8 13 12 23 15 14 15 16 9 14 9 13 14 17 11 17 11 10 15 17 11 6 12 12 14 15 17 12 16 16 8 17 15 15 10 15 11 10 15 12 13 9 12 9 12 15 12 6 18 7 15 14 12 21 18 11 10 18 11 19 11 7 11 3 2 5 4 0 1 1 0.170000 3.850 3.850 9.300 2508471 7 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 1 4 3 3 1 2 7 0 3 2 2 2 2 5 2 3 2 3 3 4 3 7 3 5 3 4 4 6 2 3 10 4 11 3 13 7 7 5 6 3 8 10 6 6 4 10 11 4 12 7 8 9 7 7 8 4 6 7 9 9 5 9 11 5 14 9 10 7 9 8 8 5 6 11 13 14 10 10 10 10 8 9 9 9 9 14 14 13 11 8 18 9 10 9 16 12 13 15 13 10 17 16 20 14 22 20 26 29 29 27 24 20 37 21 24 13 18 13 28 24 22 25 21 13 14 15 9 11 18 8 16 17 16 13 12 16 11 11 17 15 11 15 10 11 12 13 12 12 20 15 14 15 16 12 17 15 15 12 10 14 14 17 15 19 15 13 13 11 12 16 14 17 16 8 16 12 8 14 13 13 10 10 9 12 11 19 20 13 11 4 15 11 14 11 20 18 18 13 20 12 20 21 15 15 12 13 18 18 11 16 9 14 9 18 11 10 11 20 11 13 17 13 13 12 14 16 10 12 12 23 12 11 12 8 8 1 0 1 2 0 0.172000 3.900 3.900 9.400 2591210 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 4 4 3 2 1 3 3 2 3 0 3 6 1 3 1 5 5 4 3 9 9 0 4 7 5 3 5 5 8 7 3 3 5 5 8 5 11 10 8 10 3 6 6 6 7 7 8 8 12 9 6 10 8 7 10 8 8 10 4 6 12 20 4 6 11 7 9 10 7 5 10 6 12 11 7 13 13 16 12 6 8 14 13 9 7 5 14 17 17 10 12 11 6 13 11 17 3 23 13 21 12 21 28 11 23 30 28 23 24 26 26 17 21 15 27 23 33 16 22 25 11 20 22 23 21 20 7 21 13 16 12 16 16 13 18 18 9 13 16 15 9 20 13 19 15 8 9 11 14 13 10 9 10 16 15 14 17 15 19 16 12 14 12 14 14 16 19 19 4 24 8 12 15 16 11 15 14 20 14 13 13 14 16 19 14 13 19 14 18 23 15 15 4 14 17 14 8 10 15 20 11 15 19 12 9 13 12 11 16 12 16 13 14 16 13 16 16 19 19 12 11 10 19 15 15 14 12 5 11 18 17 10 13 12 9 6 2 0 0 1 0 0.174000 3.950 3.950 9.500 2675515 3 0 0 0 0 0 0 0 0 0 0 0 2 0 1 1 0 2 1 2 3 3 1 3 1 3 7 5 3 6 4 3 9 4 5 2 5 3 3 3 6 9 5 5 2 6 8 5 8 4 8 5 6 5 6 4 6 3 7 11 6 9 9 3 6 6 7 6 8 7 9 12 18 6 9 8 11 11 8 14 15 15 11 15 13 9 19 10 15 14 9 4 18 5 8 10 8 10 13 9 12 11 8 8 12 6 15 8 9 9 18 7 17 21 9 13 18 14 21 24 18 22 17 26 15 21 23 25 19 26 23 20 27 17 27 20 26 15 22 15 19 15 16 24 12 15 24 13 13 17 11 7 10 21 15 15 16 13 20 22 12 16 12 16 15 14 18 11 12 14 14 24 10 13 16 19 8 11 18 19 15 15 23 16 16 11 12 18 11 13 14 16 10 14 13 18 12 15 15 14 8 11 17 12 22 13 12 14 15 10 11 15 19 15 12 17 8 21 23 13 19 11 8 12 15 11 14 15 19 15 10 17 9 16 14 18 14 16 14 14 23 14 14 13 16 12 14 15 14 9 14 7 5 2 3 1 1 1 0.176000 4.000 4.000 9.600 2779386 5 0 0 0 0 0 0 0 0 0 0 0 0 2 2 3 0 1 3 0 6 2 6 3 1 5 0 4 1 6 5 1 6 3 6 5 6 2 5 4 5 3 9 8 5 7 5 8 4 12 8 12 6 8 5 7 5 7 10 5 5 6 7 9 7 10 7 10 10 8 12 10 6 13 10 11 12 11 10 10 16 9 6 12 9 11 17 10 11 10 14 11 16 7 11 13 12 10 17 14 11 13 12 10 13 16 16 17 17 15 14 11 8 15 13 27 22 14 19 17 22 22 27 18 28 19 27 32 24 33 21 17 23 12 27 25 20 20 17 22 14 15 22 21 14 9 16 12 19 16 17 16 16 20 14 18 15 14 18 10 12 9 16 12 12 10 13 19 12 12 15 14 15 22 12 11 15 18 19 18 10 6 11 14 10 23 17 14 16 19 10 10 16 19 17 23 16 18 19 18 16 12 14 14 14 13 11 10 24 21 22 26 18 18 18 14 17 5 13 17 11 13 16 14 18 16 9 15 15 18 16 14 21 13 22 17 9 8 16 17 16 16 19 7 20 19 18 16 10 6 10 6 3 5 1 0 0 2 0.178000 4.050 4.050 9.700 2869617 3 0 0 0 0 0 0 0 0 0 0 0 2 2 2 0 1 4 1 3 2 2 1 2 3 2 2 4 4 7 5 6 5 3 6 6 5 7 8 1 5 2 3 5 5 8 10 7 6 10 9 6 8 9 7 8 10 15 4 10 5 8 8 6 11 8 8 11 7 5 8 14 5 11 7 13 10 9 7 8 9 14 12 10 9 11 6 14 15 14 13 11 9 18 18 10 14 14 10 12 16 12 9 8 14 15 6 11 11 12 10 14 12 11 18 13 13 27 16 23 23 20 21 32 20 18 25 22 24 32 25 34 19 23 21 25 22 25 19 23 19 21 16 19 16 18 9 18 6 13 12 13 18 12 8 19 14 14 11 16 13 15 14 21 11 14 14 13 11 20 14 14 26 10 22 16 18 15 20 24 18 19 19 16 14 14 14 21 13 19 18 20 13 17 11 17 14 22 17 15 15 20 8 21 15 16 16 23 17 13 19 21 20 12 15 18 15 19 15 18 17 20 15 13 14 24 18 15 15 14 18 20 19 17 19 20 21 21 15 19 19 17 11 16 16 11 23 10 20 13 10 5 10 2 3 1 1 0 0.180000 4.100 4.100 9.800 2975040 3 0 0 0 0 0 0 0 0 0 1 0 0 1 2 2 4 4 2 4 4 1 2 5 0 3 3 5 2 5 5 4 9 2 7 8 4 8 3 11 6 10 4 7 8 6 6 5 8 8 7 11 4 4 11 12 7 11 7 10 11 7 11 11 10 9 7 13 12 18 8 14 12 14 12 8 8 16 10 10 14 16 10 6 8 15 15 15 22 13 19 18 12 6 11 10 7 12 12 24 15 17 9 17 21 10 17 18 14 14 14 9 22 11 23 17 15 23 32 20 11 12 20 15 23 30 20 25 19 26 29 19 27 23 15 19 11 30 16 21 24 18 18 14 8 6 25 13 21 13 13 19 13 21 25 23 18 14 14 13 20 12 14 8 10 25 14 15 20 15 10 15 16 21 8 15 20 21 20 13 16 15 20 11 18 17 17 9 12 24 19 13 18 17 20 14 15 20 10 23 19 25 8 7 13 14 11 15 18 13 10 12 10 17 11 24 16 17 11 12 13 16 20 14 26 12 17 13 14 16 16 6 20 16 23 22 11 17 16 14 25 19 17 21 22 19 13 19 16 18 10 11 7 4 6 0 0 2 0.182000 4.150 4.150 9.900 3083416 6 0 0 0 0 0 0 0 0 0 0 0 2 1 1 4 1 3 4 3 5 6 2 1 4 2 3 5 6 6 7 2 4 1 11 7 5 2 6 6 8 9 8 12 7 11 9 6 12 7 8 9 6 6 8 11 6 6 8 11 8 11 12 11 13 9 10 7 9 6 11 9 13 12 12 8 14 15 8 9 8 8 11 22 16 6 11 16 15 9 13 12 12 13 11 15 9 9 16 14 14 12 21 12 12 12 16 19 10 15 18 8 16 14 16 16 21 30 22 9 25 19 19 26 23 33 25 22 21 19 21 20 20 21 20 26 20 29 27 25 25 21 20 25 21 21 18 14 19 15 6 20 18 16 20 16 13 13 15 15 15 15 22 16 15 15 11 21 19 11 19 13 14 15 17 21 12 18 12 22 18 21 18 13 23 15 18 9 21 11 14 23 18 21 25 18 22 15 21 23 15 15 16 19 21 18 19 21 17 13 24 23 22 19 14 20 22 15 14 14 20 20 23 13 18 15 18 20 20 24 9 12 17 21 21 12 16 17 16 16 21 26 19 15 21 22 24 15 11 13 13 6 8 1 4 0 1 0 0.184000 4.200 4.200 10.00 3174897 3 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 0 5 4 3 3 0 7 3 2 4 2 8 6 4 5 9 3 8 6 4 2 7 6 8 7 9 3 5 8 5 9 7 7 6 11 14 7 12 9 9 5 15 12 14 15 12 9 11 5 8 13 11 12 10 9 17 12 11 8 17 11 19 11 15 9 11 7 15 14 16 16 16 7 12 10 14 13 13 16 16 11 15 13 14 12 16 11 12 13 17 10 13 19 11 17 11 13 14 13 10 19 19 23 24 22 24 24 31 19 23 22 28 21 25 29 17 23 17 21 30 22 19 25 27 27 22 23 23 17 25 17 20 17 12 23 21 9 17 20 16 19 16 17 20 9 16 11 22 16 15 12 15 17 23 24 16 16 18 26 11 16 20 18 10 14 17 26 19 17 15 17 19 12 21 20 24 17 27 13 16 18 19 23 14 19 14 10 11 18 19 6 15 21 23 25 17 17 18 21 27 20 17 18 20 25 22 20 18 22 18 17 15 24 16 15 22 18 22 14 20 20 22 18 22 25 19 26 12 19 19 13 12 16 19 14 9 7 5 4 2 0 2 0.186000 4.250 4.250 10.10 3283256 3 0 0 0 0 0 0 0 0 1 0 0 1 1 4 1 5 2 5 5 3 4 6 3 2 4 7 8 2 6 6 4 10 7 8 7 5 4 4 9 8 18 10 7 6 6 13 12 10 13 10 7 15 4 7 10 13 12 8 8 13 5 14 6 9 14 9 10 16 12 13 11 8 12 11 10 13 9 11 15 17 23 18 13 10 12 11 12 14 14 14 10 12 12 16 13 15 13 13 14 18 10 13 17 14 14 14 12 12 8 18 14 23 20 16 19 16 16 16 27 18 21 19 20 19 37 22 21 22 28 24 26 18 21 28 21 22 21 21 22 16 15 13 22 22 27 22 11 13 20 10 17 16 19 20 30 18 25 8 7 22 18 17 14 23 16 17 11 16 24 19 18 22 15 15 23 16 13 15 22 14 8 12 18 13 15 22 17 15 15 17 27 21 19 21 24 17 10 12 14 19 17 22 18 19 17 28 19 15 14 16 28 17 20 15 11 22 18 19 16 21 17 24 19 22 22 20 10 20 18 18 18 21 18 23 18 32 26 21 21 22 20 22 16 17 20 22 21 17 13 13 11 9 5 0 1 1 1 0.188000 4.300 4.300 10.20 3396610 5 0 0 0 0 0 0 0 0 0 0 0 1 2 3 0 2 5 5 4 3 3 5 1 2 3 6 9 3 3 3 8 7 2 9 5 7 5 11 8 9 7 6 9 6 4 5 8 6 10 9 14 10 15 6 7 13 15 10 13 7 15 10 10 11 14 14 6 7 17 13 19 3 13 9 6 13 13 14 10 11 12 16 17 13 10 15 15 19 19 11 11 15 11 13 9 13 20 8 18 14 18 23 23 23 15 19 20 14 11 7 18 16 15 22 28 20 24 22 25 17 20 39 24 26 25 25 33 25 25 25 33 15 29 18 29 18 12 18 23 17 24 28 22 16 20 33 23 18 23 26 23 15 24 16 16 16 16 17 15 15 16 14 11 9 23 17 13 13 18 12 19 20 30 20 20 15 21 19 16 18 20 23 19 15 10 11 15 19 13 22 22 18 19 16 19 23 16 10 25 23 20 21 20 31 19 19 18 15 22 18 14 13 21 18 19 22 19 16 17 21 14 20 26 18 26 22 19 26 19 20 22 15 13 24 23 15 21 21 21 27 18 22 19 24 17 22 16 18 23 10 12 3 5 3 3 0 0 0.190000 4.350 4.350 10.30 3502025 3 0 0 0 0 0 0 0 0 0 0 0 0 3 0 3 2 3 4 4 3 4 5 10 7 6 6 4 5 12 10 6 6 13 10 6 7 14 9 6 13 10 12 16 3 9 9 7 5 6 13 11 10 8 11 19 12 14 13 16 13 14 9 12 14 13 14 16 10 14 7 16 18 16 9 15 11 20 15 10 14 14 11 14 17 10 6 16 10 15 12 17 17 20 15 7 12 23 15 8 13 12 8 16 15 20 16 16 20 14 11 20 24 23 20 16 18 27 25 31 27 27 25 21 31 27 20 23 24 32 17 21 34 27 17 19 19 25 30 27 21 24 28 30 19 26 21 14 16 21 23 27 8 17 21 17 11 23 15 22 15 18 10 17 20 23 18 18 17 19 22 15 22 21 19 23 18 18 26 17 18 26 18 24 15 22 23 23 19 23 25 23 24 26 10 21 16 32 23 18 19 24 21 28 26 22 19 19 14 30 21 24 23 22 21 13 27 20 27 24 15 20 22 22 13 25 14 19 32 21 18 18 23 22 22 14 18 20 24 14 19 20 18 17 24 29 27 20 12 18 17 11 9 2 3 2 1 0 0.192000 4.400 4.400 10.40 3593938 3 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 2 3 4 7 8 1 5 6 8 3 7 5 4 9 8 8 7 7 9 7 9 9 15 5 7 8 15 14 9 9 13 8 8 15 10 7 10 9 10 14 7 8 18 16 17 11 14 15 13 8 15 8 15 18 16 16 22 12 8 16 13 10 13 13 10 21 11 10 16 16 13 13 17 16 20 23 13 22 16 14 15 22 19 22 15 22 24 16 16 16 19 12 15 16 17 20 18 19 26 17 23 18 32 20 28 36 22 25 30 29 31 36 24 24 21 29 24 32 29 30 23 34 19 33 34 25 20 31 27 24 16 14 21 20 13 24 17 28 13 24 16 26 15 26 21 11 15 20 13 20 18 25 23 18 24 26 22 16 22 14 13 16 20 24 25 19 29 20 15 20 16 25 26 21 22 17 24 22 21 17 23 23 15 19 30 23 17 21 19 18 21 26 14 29 24 20 33 19 15 20 23 28 19 23 25 15 19 17 31 23 18 29 26 25 14 24 25 18 19 19 24 35 31 23 23 14 15 19 11 20 19 24 17 16 9 10 12 3 2 2 0 1 0.194000 4.450 4.450 10.50 3712573 7 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 5 3 5 4 3 11 3 10 4 6 7 8 5 5 5 8 9 12 7 7 11 8 6 7 9 10 13 10 6 13 9 9 9 11 14 14 12 13 10 6 13 13 15 12 13 19 8 14 13 16 11 13 14 15 9 15 16 13 16 17 17 17 23 18 16 19 10 13 18 16 10 9 21 11 22 14 20 14 18 13 15 12 13 14 16 14 15 20 29 17 14 18 8 15 21 15 19 15 22 20 17 15 23 26 16 26 24 23 23 23 23 30 24 29 28 26 35 33 31 22 23 22 20 37 22 27 33 26 27 26 17 16 18 27 22 21 24 18 18 18 17 15 18 14 19 24 22 15 20 21 15 19 25 15 16 26 19 22 29 20 16 13 15 16 32 24 23 13 33 17 22 18 18 23 24 22 21 20 26 21 16 22 18 18 16 15 26 26 17 22 21 13 25 24 13 23 18 18 25 32 20 24 21 17 19 24 24 23 33 19 19 21 32 18 22 23 19 23 32 18 31 22 25 23 23 31 29 21 16 20 20 15 22 14 12 5 10 9 2 1 0 1 0.196000 4.500 4.500 10.60 3829518 3 0 0 0 0 0 0 0 0 0 0 1 2 2 1 6 2 6 5 9 3 5 6 8 6 3 8 10 7 11 9 4 8 9 5 11 10 13 9 16 13 10 9 5 12 9 15 10 13 9 12 18 14 19 9 13 14 12 13 21 17 17 18 16 13 12 16 14 18 10 15 15 16 11 15 22 17 19 17 11 12 26 12 17 19 18 21 20 27 17 18 19 21 14 19 16 12 16 21 20 18 8 17 17 13 13 18 15 19 15 19 20 28 21 29 27 27 34 24 26 31 25 24 16 17 23 23 30 28 18 28 32 28 37 18 26 18 16 33 21 31 21 20 22 19 20 25 18 18 20 11 17 20 22 23 14 14 17 18 20 25 20 19 20 22 19 16 33 25 21 21 24 18 16 22 29 22 16 27 26 28 21 20 22 17 25 23 20 23 18 16 19 26 22 21 22 23 15 20 19 17 23 19 20 15 22 18 22 26 23 23 31 17 29 18 13 15 19 18 24 22 28 22 17 23 24 26 21 23 25 24 29 26 18 41 24 29 22 27 23 28 16 30 24 18 23 19 17 18 21 17 14 8 2 5 2 0 0 0.198000 4.550 4.550 10.70 3950740 3 0 0 0 0 0 0 0 0 0 1 1 1 2 1 3 7 5 6 7 7 7 4 5 6 4 1 8 9 10 9 8 10 8 12 6 10 8 10 8 11 9 10 15 7 11 8 13 11 13 15 15 17 12 10 8 17 12 9 14 12 14 11 14 21 14 15 20 18 16 8 15 22 24 14 10 18 14 15 16 12 10 16 21 16 25 17 20 17 17 20 15 24 15 17 22 25 17 13 22 18 20 19 11 21 22 21 16 21 24 16 22 17 21 17 24 22 24 35 27 24 28 24 32 37 34 25 24 29 37 37 25 28 21 23 24 22 21 20 25 22 32 19 21 22 24 20 21 20 22 18 27 17 14 20 22 22 22 14 19 20 20 21 23 22 14 20 21 23 20 18 23 20 25 31 24 18 22 14 23 22 21 23 27 27 20 21 18 22 23 24 23 21 18 22 17 22 21 35 15 24 24 12 27 30 27 28 22 31 24 24 19 27 24 28 23 25 26 35 27 22 29 21 24 18 19 26 33 29 31 23 25 19 24 26 21 10 23 24 26 28 20 27 26 17 29 22 18 14 22 8 10 11 4 4 1 2 0 0.200000 4.600 4.600 10.80 4068161 5 0 0 0 0 0 0 0 0 0 0 1 1 0 1 5 5 2 9 3 11 6 9 8 7 7 8 3 3 13 10 8 7 5 8 13 8 7 14 12 10 7 15 13 13 11 12 12 14 12 13 12 10 15 11 14 7 16 15 8 15 13 15 13 18 13 17 21 15 12 13 13 17 18 18 18 16 19 20 17 14 17 24 13 12 18 19 19 13 21 18 26 21 23 16 14 18 19 13 33 13 19 20 14 20 23 14 26 19 22 21 21 16 27 30 25 28 22 32 21 30 27 31 21 30 22 27 27 31 27 21 17 38 41 17 21 20 19 30 24 27 20 20 21 30 20 19 19 31 25 24 13 21 23 19 24 33 24 17 20 17 12 25 23 18 24 11 24 25 22 33 20 11 22 31 21 20 26 27 21 26 24 14 23 23 20 20 26 28 10 20 27 24 22 17 27 28 20 23 23 33 20 24 26 32 33 29 21 25 24 17 18 19 27 26 20 24 26 24 24 26 21 19 24 21 36 32 18 33 33 20 23 25 33 19 27 25 27 24 27 21 21 23 28 18 27 25 19 24 15 17 12 15 7 2 1 0 0 ", "%f ", Inf); -%! assert(rows (x) == n); +%! [x, n] = sscanf (" 0.024000 0.200 0.200 2.000 1987 5 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 4 5 1 2 2 5 5 8 2 8 12 6 15 18 28 26 47 88 118 162 192 130 88 56 27 23 14 9 6 3 4 1 0 2 3 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.026000 0.250 0.250 2.100 3115 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 3 2 0 5 15 25 44 66 145 179 193 172 104 57 17 11 12 2 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.028000 0.300 0.300 2.200 4929 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 2 2 3 2 3 14 21 49 80 148 184 218 159 124 63 37 13 12 3 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.030000 0.350 0.350 2.300 7051 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 2 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 2 0 0 0 1 5 6 14 28 51 88 154 177 208 169 124 65 39 15 5 3 3 2 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.032000 0.400 0.400 2.400 9113 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 2 0 1 0 0 1 1 0 2 3 5 3 17 30 60 117 156 189 209 129 102 64 56 16 11 4 2 2 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.034000 0.450 0.450 2.500 11811 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 0 5 5 15 21 57 99 149 190 195 159 130 69 41 16 10 2 5 3 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.036000 0.500 0.500 2.600 14985 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 2 2 6 10 34 60 95 126 177 194 155 99 71 44 17 6 7 2 0 0 0 3 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.038000 0.550 0.550 2.700 18391 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 2 0 0 1 1 0 1 2 1 0 0 0 1 0 1 3 6 19 27 52 95 161 154 169 134 94 64 37 19 9 6 0 2 1 0 0 0 0 1 2 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 2 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.040000 0.600 0.600 2.800 22933 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 2 0 3 4 7 18 27 47 82 134 163 133 138 101 58 34 26 10 5 2 1 2 1 1 0 2 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.042000 0.650 0.650 2.900 27719 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 2 8 16 37 51 87 128 153 146 123 105 62 35 24 8 3 5 0 1 2 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.044000 0.700 0.700 3.000 32922 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 2 0 0 0 0 0 0 0 0 2 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 4 3 5 5 15 35 54 88 132 168 149 105 92 62 30 16 17 4 5 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.046000 0.750 0.750 3.100 38973 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 4 3 5 20 37 56 94 110 135 149 124 84 58 36 17 14 7 1 0 2 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.048000 0.800 0.800 3.200 45376 5 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 2 1 1 2 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 3 18 34 55 82 104 135 116 99 79 60 51 29 10 4 3 1 1 1 0 0 1 0 0 0 1 0 0 3 1 2 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.050000 0.850 0.850 3.300 52060 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 2 2 1 3 12 24 40 39 107 121 127 138 100 86 68 44 23 15 7 3 1 1 0 1 1 0 0 2 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.052000 0.900 0.900 3.400 59454 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 2 0 2 1 0 0 0 1 0 0 1 0 0 0 0 0 3 3 6 21 32 68 90 132 111 122 107 73 57 47 24 11 7 4 2 2 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 2 0 1 1 0 0 1 0 0 0 0 0 3 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.054000 0.950 0.950 3.500 67013 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 2 4 3 7 9 28 31 71 94 115 96 108 78 82 60 38 17 12 11 4 3 1 1 0 2 1 0 0 0 2 1 3 0 0 0 0 3 0 0 1 0 0 0 0 0 0 0 2 0 0 0 1 0 2 0 1 0 2 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.056000 1.000 1.000 3.600 75475 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 3 0 0 1 1 2 0 1 4 0 1 8 6 7 17 41 56 71 109 113 84 103 72 54 35 22 6 9 1 7 5 4 0 0 1 0 0 0 0 0 0 1 0 0 2 1 0 0 0 0 2 0 0 1 0 0 1 0 0 0 0 0 0 1 0 2 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 3 0 0 0 1 0 0 0 0 0 0 1 1 0 0 2 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.058000 1.050 1.050 3.700 83558 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 2 0 0 2 0 0 1 0 3 2 3 6 15 27 41 77 73 94 94 92 76 61 56 42 23 13 11 6 2 1 2 0 1 2 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 2 0 0 0 0 0 1 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.060000 1.100 1.100 3.800 93087 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 2 2 0 0 0 1 0 1 1 0 0 0 1 1 0 4 0 0 1 2 0 3 1 3 5 13 33 31 65 75 77 96 97 80 59 45 36 32 18 2 5 0 1 0 0 1 0 0 3 0 0 0 0 1 0 0 0 0 0 1 0 0 1 2 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 2 0 0 2 0 1 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.062000 1.150 1.150 3.900 102829 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 2 0 2 1 2 0 0 2 4 3 5 11 9 23 43 53 68 65 87 83 77 59 49 34 18 15 9 4 2 3 2 0 0 0 4 0 1 1 0 0 2 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 2 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.064000 1.200 1.200 4.000 113442 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 2 0 0 0 2 0 4 5 11 13 29 39 61 68 61 75 76 74 73 44 37 29 19 6 3 3 2 0 1 2 1 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 2 0 2 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.066000 1.250 1.250 4.100 126668 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 2 3 0 2 1 2 0 1 0 3 0 0 0 1 0 1 1 3 0 0 1 3 0 2 4 3 12 12 30 48 56 66 77 78 71 82 52 31 32 19 20 16 8 2 1 3 0 0 2 1 0 1 0 1 0 0 0 1 3 1 0 1 0 1 1 1 0 0 0 0 0 2 0 2 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 2 0 3 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.068000 1.300 1.300 4.200 138042 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 2 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 3 0 0 1 0 0 1 2 0 0 0 3 0 1 0 0 3 0 1 0 1 1 3 1 4 7 11 14 27 36 44 68 72 70 71 45 44 46 29 13 16 11 5 2 0 3 0 0 0 0 1 1 2 0 0 1 1 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 2 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.070000 1.350 1.350 4.300 152335 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 2 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 2 0 0 0 0 0 2 0 1 7 14 19 34 35 54 72 68 72 68 58 48 36 37 27 25 17 1 4 1 0 0 0 1 2 2 0 0 1 1 1 2 1 0 3 1 0 1 0 2 1 0 0 0 1 1 1 2 0 0 0 0 1 1 0 1 1 0 2 1 1 1 1 0 0 0 1 1 0 0 2 0 0 1 0 0 0 1 1 0 2 1 1 0 0 0 0 2 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.072000 1.400 1.400 4.400 166280 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 3 4 2 2 0 0 0 0 0 1 1 3 1 0 3 2 2 1 2 2 0 2 2 1 8 14 26 24 29 47 47 68 65 63 55 42 41 26 29 17 8 4 4 1 0 1 2 0 0 0 1 1 2 0 1 2 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 2 1 2 1 0 0 0 0 0 1 1 2 0 2 2 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.074000 1.450 1.450 4.500 179484 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 0 1 0 0 1 0 1 2 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 2 0 0 1 1 2 1 0 1 1 2 2 0 1 5 6 10 20 43 50 57 62 53 62 66 45 42 33 27 26 23 14 3 0 2 0 1 0 0 1 1 0 0 2 1 1 0 0 3 0 1 1 1 0 1 1 0 1 0 1 2 1 0 0 1 2 0 2 0 0 0 0 1 1 3 1 0 0 2 1 1 1 0 0 0 0 0 0 1 2 0 1 0 0 0 0 0 1 1 0 2 0 0 0 0 0 1 0 2 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.076000 1.500 1.500 4.600 197657 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 2 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 2 0 0 0 2 1 1 0 1 1 0 1 1 3 2 1 1 2 1 0 1 0 0 0 0 0 1 1 1 0 5 3 7 12 24 38 32 41 48 54 66 71 49 46 31 38 25 15 8 6 6 5 0 1 3 0 1 1 1 1 1 0 1 2 0 1 0 0 0 1 0 2 1 2 0 0 0 0 1 3 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 4 1 1 1 0 3 0 0 0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.078000 1.550 1.550 4.700 212054 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 2 0 0 0 1 0 0 1 0 1 1 0 1 3 1 0 0 1 2 0 0 0 1 0 0 0 0 0 2 1 2 1 1 1 0 0 1 5 1 1 2 3 5 7 9 11 22 31 37 48 50 52 54 57 37 38 38 33 24 11 19 11 3 1 2 0 3 3 2 1 0 1 3 0 1 1 1 1 1 2 0 0 0 1 1 2 0 1 1 3 0 1 1 0 0 1 0 2 0 1 0 0 1 3 0 2 0 1 0 1 2 0 1 1 1 1 1 0 3 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0.080000 1.600 1.600 4.800 231971 3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 2 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 2 1 0 1 1 1 0 1 0 0 1 0 1 3 0 0 0 1 0 0 0 1 1 1 0 0 4 1 1 0 2 0 1 1 1 2 0 0 0 1 0 1 2 1 2 3 2 0 1 0 4 3 1 1 1 1 3 1 0 0 0 2 1 0 2 7 17 13 29 47 58 59 52 38 51 51 38 34 35 21 14 13 4 1 0 1 1 1 0 2 2 4 1 0 1 1 4 0 0 0 2 0 2 2 2 0 0 1 3 2 1 1 2 2 2 2 1 0 3 0 2 1 2 1 2 2 0 0 1 1 0 2 0 2 2 0 1 0 2 2 3 1 2 3 1 1 0 1 0 2 0 1 2 1 2 0 2 1 0 0 3 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0.082000 1.650 1.650 4.900 252503 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 2 0 0 1 0 1 2 2 2 1 0 2 0 1 0 1 1 2 2 0 3 0 0 4 1 0 0 3 0 0 1 2 0 1 1 1 3 0 1 0 2 9 11 25 27 34 53 41 49 43 47 36 31 38 22 30 22 18 9 5 9 2 2 1 2 2 3 1 4 1 1 0 0 1 2 0 2 1 0 0 1 3 2 2 1 0 0 0 1 2 1 0 0 0 2 1 1 0 2 0 0 1 0 0 2 1 3 1 1 1 0 2 1 1 0 2 1 0 1 3 0 0 0 0 2 0 0 1 0 0 0 0 0 1 2 1 1 1 0 2 1 0 0 0 2 0 1 0 0 0 0 1 0 0 0 0 1 0 0 2 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0.084000 1.700 1.700 5.000 267889 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 3 0 1 1 1 0 1 2 1 0 2 0 2 4 0 1 0 0 0 1 1 0 1 3 2 0 2 0 4 0 0 2 0 1 4 2 4 3 3 6 10 14 28 37 54 36 40 52 40 50 46 40 32 26 29 12 18 5 2 0 2 4 1 2 1 0 2 1 2 2 1 0 1 0 2 1 2 4 1 1 5 1 0 2 0 1 2 3 2 2 1 2 1 0 2 1 2 1 1 4 1 2 1 4 0 2 2 0 0 3 1 0 2 0 0 1 1 1 0 0 2 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.086000 1.750 1.750 5.100 290294 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 2 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 3 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 2 1 0 1 0 1 0 0 2 2 0 1 2 2 0 2 0 2 0 1 0 0 1 1 1 3 1 1 1 1 3 4 1 1 2 2 2 1 0 3 0 0 0 2 4 5 6 16 18 20 31 40 54 55 46 41 52 35 27 21 28 27 20 15 8 6 7 1 0 0 3 0 0 2 2 0 3 1 3 1 1 2 0 0 1 2 1 3 2 0 1 2 1 3 1 1 1 1 1 2 0 2 1 0 1 1 1 3 1 1 2 0 1 0 1 0 2 1 1 0 0 1 2 0 3 1 1 0 0 0 1 3 1 1 1 0 0 1 2 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 2 0 1 0 0 0 2 1 0 2 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0.088000 1.800 1.800 5.200 312476 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 2 0 0 0 1 0 1 0 0 0 0 0 0 2 1 0 0 1 0 0 1 1 1 1 4 2 0 1 0 0 3 0 0 0 0 0 1 1 4 0 0 0 0 1 1 2 1 0 3 0 0 2 2 4 0 3 1 6 9 10 13 21 24 32 43 33 41 43 49 50 32 26 31 27 12 16 17 3 3 3 5 0 3 0 2 1 3 3 2 1 2 3 1 2 1 1 1 2 0 1 1 0 2 0 3 0 0 2 0 0 0 0 1 0 1 1 3 3 0 1 1 1 1 1 1 2 2 2 0 3 1 0 2 2 2 0 0 0 0 3 1 2 5 1 1 2 0 0 3 3 0 2 2 0 0 0 0 1 2 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.090000 1.850 1.850 5.300 337348 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 2 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 2 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 2 0 0 0 1 3 2 0 0 2 2 3 3 2 2 2 0 0 1 1 3 1 3 0 0 0 0 0 0 1 2 1 2 1 2 2 2 0 1 1 0 4 2 2 7 6 15 22 21 39 37 50 31 51 30 33 34 34 26 21 14 13 10 9 4 3 3 4 2 2 0 1 2 3 3 0 1 3 2 5 3 2 2 4 0 2 3 0 4 2 1 2 2 2 4 2 1 3 1 3 2 1 3 1 2 4 1 1 1 1 2 4 1 3 3 3 1 0 4 1 0 1 1 1 1 2 3 0 3 0 0 4 1 1 1 0 2 2 2 1 2 2 0 1 1 0 0 0 2 0 1 0 1 0 0 1 0 0 0 1 3 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0.092000 1.900 1.900 5.400 357303 3 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 3 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 2 2 0 0 2 2 1 1 1 1 1 1 0 1 0 0 1 1 1 3 1 1 1 1 1 0 1 4 0 1 1 1 3 0 1 1 2 2 2 0 2 3 2 2 2 2 1 2 1 3 8 22 14 32 36 46 39 42 39 29 36 38 26 24 26 18 16 19 10 9 3 6 5 0 3 2 1 1 1 2 0 2 1 1 0 1 1 3 1 0 2 4 2 2 1 4 1 2 2 1 1 0 1 2 0 2 2 2 4 2 1 1 0 2 1 3 1 2 3 4 2 3 2 3 0 1 2 1 0 0 0 4 1 1 1 2 1 3 1 0 5 1 0 0 0 0 0 0 1 0 2 0 1 2 1 0 1 0 0 0 0 0 1 1 0 1 0 1 4 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0.094000 1.950 1.950 5.500 383138 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 2 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 2 1 1 1 1 2 1 0 2 0 1 0 3 2 1 3 0 1 3 1 1 0 5 0 1 0 1 2 0 0 1 1 2 0 0 6 1 0 3 2 2 3 4 5 0 4 2 1 5 4 11 15 22 27 28 57 38 38 40 38 39 38 27 26 30 18 14 10 10 4 4 4 3 3 2 2 2 2 1 1 1 1 2 2 3 4 1 2 3 1 2 1 2 2 2 1 3 2 1 5 0 1 1 1 3 2 2 2 1 3 1 1 0 3 2 2 0 0 2 2 2 0 0 0 2 0 1 3 1 2 3 2 1 1 0 1 1 1 0 3 2 2 1 0 0 1 3 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 3 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0.096000 2.000 2.000 5.600 409868 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 2 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 2 0 1 0 0 2 0 2 0 0 0 0 1 0 0 2 1 2 2 2 1 2 1 1 1 1 1 2 0 0 1 1 0 1 0 2 1 2 0 2 0 3 1 2 1 3 1 5 0 2 2 1 2 4 1 2 0 3 1 4 7 5 9 13 22 19 31 27 28 41 34 39 37 22 23 21 22 17 23 15 8 9 3 8 0 3 1 2 2 2 3 1 0 4 2 4 2 2 2 2 4 2 1 1 0 2 0 3 0 3 2 2 1 2 2 1 4 1 2 2 1 1 5 2 1 2 1 2 2 1 0 2 4 3 2 1 2 2 3 2 3 1 2 1 1 1 1 2 1 1 2 2 1 2 3 2 1 1 0 2 2 4 0 1 1 1 1 1 0 0 1 1 3 0 0 0 0 0 1 0 0 2 0 1 2 0 1 1 1 0 1 0 1 0 0 0.098000 2.050 2.050 5.700 439102 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 2 0 0 1 1 1 1 2 0 1 1 0 0 0 0 1 1 1 0 4 0 0 0 2 1 1 0 3 4 0 1 2 2 1 0 3 0 3 2 0 0 2 0 1 0 0 1 0 1 3 1 3 5 0 2 2 3 5 2 2 2 0 3 2 3 6 5 16 21 19 23 28 29 35 42 42 44 39 33 23 30 18 25 24 15 13 5 4 2 2 0 3 3 0 0 1 3 0 1 1 3 2 4 3 4 2 1 1 1 3 1 0 0 2 2 4 2 2 1 4 2 4 2 2 2 1 2 2 1 2 0 4 2 2 3 1 2 1 1 2 2 1 2 4 2 1 4 1 2 2 2 2 0 2 0 3 0 1 0 2 1 0 4 2 1 3 2 1 0 2 1 1 1 1 0 1 1 2 1 1 1 2 0 1 0 2 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0.100000 2.100 2.100 5.800 467340 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 0 0 1 2 0 0 0 0 0 1 0 2 0 0 2 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 2 0 2 2 4 1 0 1 1 2 3 4 1 4 1 5 1 2 1 0 2 2 2 1 5 4 1 5 4 0 1 2 4 2 2 0 2 1 2 5 4 1 1 1 2 5 7 9 16 23 31 15 22 36 36 44 42 29 31 28 28 18 35 12 10 13 8 4 3 2 2 5 1 2 3 3 1 3 3 5 2 0 3 4 1 2 2 3 0 0 5 2 3 6 2 1 2 5 3 4 3 1 1 1 1 2 2 4 0 2 3 1 2 1 2 4 5 4 3 5 2 1 2 0 5 0 2 2 4 1 0 4 1 0 2 1 2 0 0 1 3 2 4 3 0 2 3 3 3 4 2 2 0 0 0 0 1 1 0 3 2 0 1 2 0 4 2 1 1 1 2 0 0 0 0 0 0 0 0 0 0 0.102000 2.150 2.150 5.900 497495 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 2 1 0 0 0 0 1 0 1 0 0 0 0 1 2 0 0 0 0 0 2 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 2 0 0 1 0 0 0 1 0 2 2 1 0 0 0 2 0 2 1 1 1 6 3 2 0 3 2 2 2 1 1 3 4 1 0 1 2 4 2 3 3 1 1 1 1 3 3 1 4 1 3 4 3 2 3 1 2 2 5 11 11 14 26 27 28 28 28 36 39 42 29 33 24 20 29 18 13 17 13 6 10 4 3 3 6 1 0 1 0 2 1 3 2 3 1 2 3 1 2 1 2 0 2 2 3 1 3 1 1 2 4 4 1 4 3 2 2 3 5 5 3 0 2 5 3 5 1 4 1 1 3 4 2 2 2 2 1 3 0 1 1 2 2 4 2 1 3 2 0 1 2 1 0 2 3 1 2 0 0 0 2 0 0 1 3 0 0 1 2 0 3 1 0 3 1 2 2 1 1 2 0 0 0 0 2 0 0 1 0 0 0 0 0 0.104000 2.200 2.200 6.000 529288 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 3 0 2 0 2 0 0 3 2 2 0 4 0 3 2 2 1 3 1 7 3 1 1 0 4 3 2 1 0 0 3 2 3 5 2 1 4 1 5 1 0 3 2 3 0 1 2 4 7 3 7 8 12 15 20 24 34 39 34 35 27 36 34 23 22 26 15 24 12 12 14 5 3 0 7 1 1 3 5 1 2 2 2 4 3 1 2 5 2 2 3 1 1 4 2 1 3 0 4 5 4 6 4 5 3 3 3 3 1 1 5 0 6 1 2 4 2 3 2 1 3 2 0 0 0 1 3 3 0 1 4 0 3 2 3 0 3 3 0 2 3 4 3 1 1 1 2 5 3 1 2 1 1 2 4 1 0 2 4 1 3 0 0 3 0 1 3 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0.106000 2.250 2.250 6.100 560628 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 2 0 0 0 0 2 0 3 1 1 0 0 2 2 2 0 5 2 1 1 1 1 3 1 2 3 0 1 0 0 0 0 1 0 2 2 1 2 1 0 4 3 2 1 2 1 0 4 2 2 0 2 1 1 2 3 1 2 1 2 4 4 11 12 17 19 19 29 30 24 30 35 51 32 36 34 31 19 22 17 11 19 11 7 6 6 3 4 0 3 3 2 0 2 2 2 3 1 5 3 2 3 5 1 0 2 2 5 4 2 3 2 0 1 6 1 2 2 2 2 1 1 2 2 1 4 3 2 2 1 2 5 2 0 2 0 2 5 4 5 2 1 3 6 1 3 4 4 0 0 6 0 2 6 1 2 2 2 0 1 3 1 3 4 2 1 4 2 1 2 3 3 0 3 1 0 2 0 2 1 0 2 1 2 0 0 1 1 0 2 0 0 0 0 0 0 0 0.108000 2.300 2.300 6.200 593293 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 2 0 2 2 1 0 0 2 0 1 0 1 0 0 1 2 2 1 0 0 1 0 2 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 2 2 1 0 1 1 0 1 5 0 2 4 1 0 1 4 2 1 3 2 2 3 2 3 2 0 0 3 4 3 1 3 2 2 0 3 0 2 4 0 3 2 5 1 2 1 4 6 1 2 4 0 3 6 1 7 6 4 5 4 10 16 24 22 20 40 37 44 34 29 21 28 36 36 27 23 24 14 10 4 5 2 5 3 6 2 3 3 1 4 2 1 5 1 3 5 3 2 1 2 2 6 2 3 1 1 0 5 3 3 3 4 5 2 2 3 3 5 5 1 6 2 3 2 6 0 5 2 4 3 5 1 2 2 5 1 2 3 1 2 2 2 4 2 5 5 2 2 2 5 0 1 2 5 2 3 2 3 1 1 2 4 0 2 1 4 2 1 1 1 0 1 2 0 0 1 3 1 0 2 1 1 3 3 2 0 0 0 1 2 0 0 0 0 0.110000 2.350 2.350 6.300 636559 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 1 0 0 0 1 1 2 0 0 1 0 0 0 0 0 0 0 1 2 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 2 0 1 0 1 0 1 0 0 1 1 3 0 1 2 2 0 2 1 1 1 1 0 1 0 1 3 0 3 2 3 4 3 3 4 3 3 2 6 3 1 1 1 2 4 2 3 1 5 1 3 1 4 5 3 3 2 1 3 7 4 3 10 19 17 19 23 27 28 33 39 36 23 23 32 32 16 19 35 23 12 11 12 8 4 5 7 1 2 2 1 2 3 5 4 2 3 2 6 4 4 2 4 1 2 2 1 2 3 0 4 2 1 2 6 2 2 1 3 3 1 6 4 8 5 2 3 5 2 3 0 3 2 3 1 2 2 3 4 3 8 6 2 1 4 6 3 1 2 0 2 0 2 5 0 3 3 3 3 1 3 3 2 5 4 2 1 4 2 2 4 4 1 3 2 5 2 3 1 2 0 4 0 1 0 6 3 1 2 0 2 0 1 0 0 0 0 0.112000 2.400 2.400 6.400 670484 3 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 2 0 1 1 1 3 0 0 0 2 1 3 0 1 1 1 0 1 1 1 0 0 1 2 0 1 3 1 5 2 3 0 4 0 2 0 0 1 2 1 0 1 0 0 1 0 2 2 3 2 3 2 2 2 3 4 4 2 3 5 3 3 2 3 3 4 2 4 0 3 2 4 4 1 3 1 3 4 2 2 5 2 8 6 12 17 14 22 27 26 29 39 30 24 36 22 22 20 9 19 15 5 12 16 4 7 5 7 5 5 1 4 5 5 4 4 1 4 4 3 3 3 4 2 2 4 2 4 4 4 4 0 2 3 2 1 4 3 6 1 3 3 3 4 5 4 2 2 2 5 3 0 2 5 4 2 5 3 5 1 1 3 1 1 3 6 6 2 3 2 0 3 2 4 3 4 1 2 2 6 2 0 3 2 2 5 3 3 5 2 1 0 3 1 1 2 2 0 1 1 3 2 3 2 1 1 1 1 3 2 1 0 0 0 0 0 0 0 0.114000 2.450 2.450 6.500 711783 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 1 0 2 1 2 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 2 0 1 1 0 0 0 2 1 1 1 1 1 2 1 2 3 3 1 1 1 2 3 1 3 2 2 1 0 1 1 4 4 4 1 0 4 0 0 1 1 2 1 3 2 0 3 4 1 1 1 1 3 2 0 1 3 2 1 2 1 0 3 3 2 5 4 2 5 3 4 2 2 5 3 3 3 3 5 5 8 7 14 12 28 22 24 23 36 33 26 32 27 26 18 30 24 15 13 19 15 17 6 5 7 5 4 3 5 3 1 4 4 9 5 3 1 4 0 0 6 2 5 3 3 3 1 2 3 2 4 1 5 5 3 8 2 1 1 4 1 7 5 6 6 4 4 3 2 6 3 3 3 3 1 3 4 5 4 3 4 3 1 2 3 1 2 1 2 2 6 5 2 2 2 4 2 2 0 2 3 3 2 7 4 4 1 4 2 0 3 1 1 2 1 2 3 1 3 2 2 4 3 1 4 0 0 4 2 2 2 1 0 0 0 0 0.116000 2.500 2.500 6.600 745364 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 2 1 1 2 1 1 1 0 1 0 2 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 2 3 0 1 4 4 0 4 0 1 0 1 3 3 0 2 1 2 3 2 1 1 1 2 0 4 0 0 4 5 2 5 4 1 3 5 5 4 0 4 4 2 3 2 3 5 2 2 4 2 3 4 2 3 3 3 3 3 2 4 12 10 13 14 19 22 23 24 36 19 32 25 25 36 24 18 20 21 14 18 13 8 6 9 2 9 5 2 5 3 4 4 3 3 0 4 3 2 5 3 4 2 2 6 3 4 0 2 4 1 3 4 7 4 5 3 2 4 5 5 3 4 4 4 2 3 2 4 4 2 1 5 7 1 5 2 4 1 5 5 3 4 4 3 2 4 2 4 0 6 2 3 4 1 2 2 2 4 1 4 2 2 2 5 6 5 1 4 4 2 3 3 3 1 4 3 4 2 6 2 5 3 2 2 1 3 2 2 5 1 1 0 0 1 0 0 0 0.118000 2.550 2.550 6.700 791846 4 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 2 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 4 1 2 3 0 3 1 0 1 1 1 0 3 1 2 1 1 1 0 0 1 1 1 3 1 3 2 3 1 2 2 1 3 2 4 1 4 0 2 4 1 4 3 2 1 1 2 1 3 2 3 3 2 1 1 5 3 3 3 3 2 3 4 3 5 3 1 1 2 2 3 5 1 2 1 1 4 4 6 9 6 6 13 17 21 20 24 22 25 20 29 23 28 30 26 27 18 20 17 16 17 12 10 8 5 6 6 6 4 3 1 2 4 6 9 2 2 3 5 7 6 2 3 8 5 4 5 6 4 6 5 3 5 3 2 5 3 2 8 3 5 4 5 3 5 4 3 4 8 4 3 8 3 3 3 1 1 2 2 5 4 7 3 2 3 3 2 2 3 6 3 2 2 1 1 5 2 5 6 3 5 3 4 1 3 1 2 1 0 4 1 4 2 2 2 3 1 1 1 1 3 2 0 1 6 1 1 0 2 1 0 1 0 0 0 0 0.120000 2.600 2.600 6.800 833394 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 2 1 1 1 2 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 2 1 0 0 0 0 0 2 2 0 3 1 0 0 2 1 1 1 1 0 1 2 1 5 0 1 0 2 2 1 2 0 4 2 1 4 3 4 2 2 1 2 1 5 2 3 1 3 0 2 2 2 2 3 4 0 4 2 3 3 4 5 2 2 6 3 4 5 5 5 3 4 6 5 1 3 0 5 4 5 1 3 2 2 6 18 13 17 27 27 21 28 28 24 26 27 29 23 21 16 17 19 22 14 11 9 5 14 7 7 6 4 4 12 3 6 4 5 4 6 4 2 0 1 8 1 6 8 5 2 3 4 5 6 4 2 5 8 3 1 1 6 3 7 8 4 1 6 5 2 8 11 5 6 5 6 2 4 5 1 2 7 2 2 5 5 6 3 3 2 3 8 5 1 9 3 3 2 3 6 3 5 3 2 4 6 3 1 3 5 4 4 4 6 3 3 5 0 2 2 5 1 3 2 2 1 4 2 0 2 2 2 2 4 1 2 1 2 1 1 0 0.122000 2.650 2.650 6.900 876007 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 1 1 1 1 2 2 1 0 0 1 0 0 0 1 1 0 0 0 2 0 0 4 1 0 2 1 2 0 1 2 0 1 3 2 1 0 1 1 0 1 2 1 0 2 3 3 5 3 3 3 0 1 4 0 1 5 3 4 3 1 2 2 2 4 1 3 3 3 2 3 2 3 2 1 4 4 2 2 5 5 3 4 1 2 1 2 4 2 4 7 2 4 4 2 7 3 5 7 5 3 6 8 10 10 18 21 22 24 14 25 27 29 31 22 25 24 21 27 20 19 22 19 14 13 14 10 5 7 3 4 5 5 3 1 4 3 8 4 5 4 0 3 4 3 4 1 7 6 1 1 3 4 4 3 4 3 6 4 3 4 2 4 4 3 5 6 5 1 1 6 2 6 6 3 5 5 3 2 6 5 4 3 4 6 4 3 5 5 6 5 6 2 4 2 1 2 2 4 2 7 6 2 1 3 1 5 2 1 2 4 3 3 3 2 5 2 4 1 4 3 2 2 5 5 1 1 3 3 2 2 2 2 1 0 0 0 0 0 0.124000 2.700 2.700 7.000 925764 3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 2 1 3 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 2 0 0 3 2 0 1 2 1 1 2 0 2 1 2 2 0 0 2 3 2 3 2 2 3 2 2 4 0 2 0 5 1 3 2 3 1 2 3 2 0 6 4 3 6 2 5 0 5 2 1 4 4 5 7 4 2 3 5 2 0 2 5 2 4 7 4 4 4 8 5 3 1 7 2 2 1 5 5 5 14 19 16 22 18 30 29 25 36 23 23 22 25 25 27 26 23 14 20 16 16 10 6 6 6 4 2 6 6 6 6 6 4 6 1 0 3 4 4 5 2 4 3 2 4 4 5 5 5 6 10 6 3 6 8 5 5 8 7 4 6 4 3 4 8 5 5 7 4 6 3 5 8 4 3 4 4 3 4 3 1 3 3 7 2 4 8 3 6 4 3 3 2 5 4 4 3 7 4 5 4 4 3 4 7 2 3 3 4 3 0 2 2 4 3 4 2 4 2 2 6 4 4 6 6 1 5 1 1 2 1 0 0 0 0 0 0.126000 2.750 2.750 7.100 969560 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 1 0 1 2 0 2 0 2 2 0 1 1 1 0 0 1 0 1 1 1 1 2 0 1 2 2 1 2 0 0 1 0 1 0 2 1 0 1 0 1 1 2 0 3 0 3 4 3 1 3 2 0 4 0 1 2 0 3 1 1 2 3 2 2 2 5 1 7 1 5 1 5 4 2 0 0 1 2 1 3 2 3 3 5 4 10 10 2 5 11 4 1 2 1 7 3 5 4 4 1 5 10 8 7 9 9 20 20 21 33 21 28 20 27 32 21 29 22 20 24 15 13 27 14 13 15 10 9 3 11 6 7 5 3 6 8 5 4 4 1 3 3 5 2 7 3 6 6 1 6 4 6 5 3 4 2 4 3 3 9 4 5 4 4 5 2 3 10 4 3 2 6 10 6 3 6 5 5 5 4 8 8 5 4 3 6 4 4 2 4 4 4 5 7 4 4 4 4 5 2 2 3 4 5 2 1 3 2 6 2 7 7 1 6 4 4 6 5 5 4 0 2 2 3 2 7 5 0 4 1 1 4 6 1 0 3 2 0 0 1 0.128000 2.800 2.800 7.200 1022713 5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 2 1 0 0 4 0 0 1 2 3 1 1 0 1 0 1 0 3 1 1 1 2 2 1 1 1 3 1 0 2 4 2 1 2 1 2 0 3 1 3 2 1 5 2 1 3 1 2 1 5 3 2 1 2 5 3 8 2 3 2 5 5 4 3 6 4 4 4 3 2 3 8 4 3 4 5 4 5 4 7 6 5 3 3 3 5 2 9 10 7 9 12 11 13 17 15 22 19 33 24 28 30 26 21 24 22 27 20 26 16 10 10 9 20 10 7 4 5 7 7 2 7 5 3 5 1 6 1 5 7 5 6 3 1 5 1 1 3 4 8 6 3 9 5 5 3 6 7 4 6 7 6 4 2 4 6 2 3 6 5 6 7 6 4 4 9 6 8 6 9 7 1 2 6 2 7 5 4 4 4 4 5 5 4 4 3 6 3 5 3 6 4 3 6 6 2 5 2 8 4 5 3 6 5 4 5 8 4 3 5 6 5 5 2 8 1 2 2 5 4 1 3 0 0 0 0 0 0.130000 2.850 2.850 7.300 1081669 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 5 0 0 2 2 0 0 1 0 0 0 1 1 0 2 0 2 2 2 1 0 1 0 2 2 3 1 1 0 2 0 1 0 2 1 1 2 2 0 1 4 3 0 2 1 1 0 2 5 2 1 0 1 3 2 5 2 1 2 5 2 3 4 3 6 6 6 4 6 6 3 1 3 2 3 4 7 5 2 9 7 4 1 4 4 3 2 2 2 7 4 8 4 7 4 6 8 5 1 8 6 10 18 21 18 15 21 24 21 26 22 30 28 27 23 22 21 17 25 20 17 13 17 9 12 7 8 5 4 4 5 5 2 4 1 1 2 5 7 6 4 9 7 7 5 5 5 5 5 2 4 5 3 6 8 2 4 9 4 10 5 1 4 5 5 5 10 3 2 8 6 5 7 3 13 3 3 6 5 1 4 5 9 5 2 7 4 5 6 3 5 6 5 4 5 9 6 4 3 4 4 4 5 8 5 5 0 3 6 3 4 3 7 5 6 4 3 3 6 8 4 1 3 1 2 7 3 4 6 6 1 3 4 1 0 1 0 0 0.132000 2.900 2.900 7.400 1131887 3 0 0 0 0 0 0 0 0 0 1 0 0 1 2 1 1 0 0 0 1 2 2 1 1 0 2 1 1 0 1 1 1 0 2 2 3 1 0 1 0 1 0 2 0 2 0 1 4 0 1 2 2 0 0 0 2 3 0 1 2 3 0 1 2 3 5 6 2 2 3 1 4 4 8 4 3 3 3 7 2 2 5 7 4 1 2 4 8 1 5 2 7 3 4 2 9 6 5 5 6 2 2 3 6 2 5 6 7 7 2 8 3 3 3 3 6 6 5 3 10 15 15 17 19 13 29 20 23 22 34 28 28 33 20 20 22 17 22 18 15 19 14 11 9 13 6 6 13 4 2 9 8 8 7 6 5 6 4 4 9 6 2 8 9 7 2 6 3 7 3 6 3 7 4 4 5 4 5 6 4 7 5 4 10 2 6 6 8 3 6 6 9 5 8 8 7 6 4 8 5 7 5 5 7 3 5 5 5 10 7 3 8 7 5 7 2 4 4 6 4 10 7 6 4 4 4 4 3 2 4 2 6 5 9 7 3 2 6 2 5 1 5 6 2 2 1 9 2 5 2 5 1 0 0 0 1 1 0.134000 2.950 2.950 7.500 1185706 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 3 2 1 0 1 1 0 0 0 0 0 1 0 1 1 2 0 1 0 1 2 0 0 0 1 1 0 1 1 1 0 2 2 0 1 3 3 2 3 0 0 2 2 3 2 1 1 3 0 0 1 1 3 4 3 1 1 9 1 4 0 1 3 4 1 3 2 6 4 7 7 3 2 8 5 2 5 2 4 6 7 3 7 7 8 4 7 2 4 7 7 9 9 2 5 5 8 3 5 7 3 6 10 6 10 15 10 13 14 29 21 23 37 26 20 28 20 16 24 25 16 19 21 20 20 17 11 10 12 8 7 7 5 5 5 4 5 6 7 3 6 5 7 5 11 9 6 8 11 6 4 6 8 8 7 7 7 4 5 4 8 5 4 3 4 8 10 7 9 4 7 6 8 9 7 3 5 7 7 6 2 6 4 7 3 9 8 12 7 6 6 6 4 5 7 2 4 7 3 2 4 4 7 1 4 5 0 4 6 3 10 8 5 4 3 4 5 7 5 7 5 7 3 5 2 5 6 4 5 2 4 1 6 6 2 4 2 0 0 1 0 0.136000 3.000 3.000 7.600 1238426 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 2 4 0 2 0 2 2 0 1 1 1 0 2 1 1 2 1 0 1 1 0 3 1 0 0 1 0 1 0 0 2 1 1 0 4 0 2 6 3 3 4 0 3 1 2 4 0 4 4 0 1 5 2 2 5 1 3 4 3 3 5 2 4 4 6 2 5 3 4 5 4 5 6 7 5 6 2 8 3 4 7 2 4 4 3 7 6 5 1 4 8 3 7 10 3 3 6 1 5 3 8 11 5 7 15 11 15 17 21 23 21 24 28 16 21 29 15 22 27 28 20 13 19 13 7 15 10 11 9 6 8 8 4 7 5 4 6 5 10 6 7 8 9 3 5 5 9 5 9 4 4 4 3 5 7 4 10 6 8 4 9 8 4 6 7 9 11 6 8 3 5 8 12 3 6 9 7 11 9 6 7 4 7 7 7 2 5 4 5 0 2 9 5 5 5 10 7 5 6 3 9 4 4 13 2 7 5 7 4 7 2 0 4 5 4 4 6 8 1 2 5 6 4 7 3 11 4 3 3 5 5 4 4 3 1 4 2 2 1 1 0 0.138000 3.050 3.050 7.700 1299809 6 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 2 1 1 0 0 1 0 0 2 0 1 2 0 0 3 0 0 1 3 1 2 0 2 0 1 1 2 1 2 3 2 1 2 5 2 2 2 4 3 2 5 3 0 3 2 4 5 4 3 0 5 4 1 4 3 8 6 4 4 7 4 5 4 3 6 5 6 10 3 6 6 2 6 3 4 4 3 6 7 6 8 3 4 7 5 4 9 2 4 8 5 9 8 3 7 5 7 7 13 7 11 15 17 16 18 18 18 20 17 26 25 19 20 26 31 22 18 20 18 14 11 16 4 7 11 10 8 9 9 6 3 8 8 7 5 6 10 3 5 6 6 3 12 7 8 8 2 10 4 13 9 9 12 4 5 9 7 9 5 7 4 8 9 6 7 8 10 8 7 5 7 11 6 4 4 4 6 4 9 4 5 9 10 7 4 12 7 4 9 5 10 10 6 8 4 7 2 4 7 2 6 8 4 11 3 3 9 7 6 7 3 8 7 4 8 5 3 7 4 5 5 7 4 6 7 5 5 3 5 2 5 4 1 2 0 0 1 0.140000 3.100 3.100 7.800 1361810 3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 3 2 1 0 0 0 1 1 1 2 0 0 0 0 1 0 2 2 2 1 0 0 3 3 0 2 0 6 2 3 1 0 3 3 1 2 2 5 3 5 3 3 2 2 7 3 2 2 3 4 2 3 4 4 1 3 7 4 5 4 2 3 5 4 2 1 3 6 3 4 3 8 7 6 5 3 5 11 5 5 3 3 7 3 6 4 4 2 4 4 4 1 5 5 9 6 6 9 3 10 8 6 8 3 10 8 16 16 13 18 23 29 25 19 19 20 27 19 22 27 24 21 15 18 11 20 21 17 12 5 18 6 12 7 9 11 7 12 11 4 8 8 4 8 7 7 2 6 4 4 9 6 9 3 4 7 7 7 4 10 4 11 5 8 8 8 5 4 4 8 6 4 9 8 12 12 8 5 8 3 10 8 7 5 3 5 6 8 5 6 10 7 2 11 2 5 5 6 8 10 2 7 5 5 14 2 7 3 9 3 5 2 8 2 3 4 4 7 9 5 4 7 6 7 5 6 3 5 4 7 6 7 7 9 3 0 2 1 1 1 0 0 0.142000 3.150 3.150 7.900 1429499 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 3 1 2 1 1 0 0 0 3 0 2 2 1 0 3 0 2 1 3 0 0 1 1 3 1 2 4 1 5 3 5 1 0 7 1 3 2 3 2 2 2 3 0 0 1 3 6 3 2 2 4 4 4 6 4 3 6 4 10 3 7 2 5 4 7 4 5 8 4 7 4 1 7 11 5 2 10 2 11 3 7 8 10 9 6 3 5 3 6 3 10 11 5 5 9 7 10 8 9 5 15 11 9 18 18 15 24 17 23 17 19 25 17 24 18 37 16 17 21 17 14 20 17 15 15 9 4 11 7 3 8 10 8 8 6 8 3 4 5 8 4 6 3 9 9 6 2 10 4 4 3 8 4 9 1 7 5 9 7 10 9 10 4 6 5 8 6 6 10 10 6 5 7 6 6 10 5 7 8 8 8 7 7 11 12 8 3 10 6 9 13 11 4 6 7 6 3 10 5 8 4 7 7 7 5 8 4 9 5 5 7 6 6 7 11 11 7 8 5 3 5 7 7 10 3 3 6 5 7 9 2 3 7 1 0 0 0 0 1 0.144000 3.200 3.200 8.000 1493946 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 2 3 0 0 1 2 1 1 1 4 1 0 1 0 1 2 1 3 1 1 1 1 2 1 1 3 2 6 0 4 0 1 4 2 4 5 2 1 3 0 2 2 4 2 3 2 4 3 5 4 4 4 1 5 1 3 4 5 6 4 7 2 8 8 8 5 3 6 0 7 3 2 2 5 7 5 7 5 8 9 6 4 3 6 8 6 10 2 5 6 3 3 6 6 6 6 17 5 10 6 6 11 11 13 12 21 26 18 24 21 24 23 30 18 22 20 24 19 13 17 25 22 17 15 8 13 7 10 8 9 6 7 9 8 7 8 9 7 7 6 12 5 9 9 12 9 12 6 9 7 10 7 7 4 9 7 4 2 7 4 5 8 8 9 7 6 7 5 9 4 8 13 6 5 4 7 9 6 7 7 9 4 4 5 8 10 9 10 6 6 7 9 12 11 8 8 9 11 5 8 7 5 5 8 5 9 10 5 5 11 11 6 8 8 4 8 5 5 5 4 7 4 5 6 5 6 6 7 7 4 2 6 3 2 1 0 0 0 0 0 0.146000 3.250 3.250 8.100 1562352 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 2 0 1 2 1 1 0 0 1 0 1 2 0 0 0 3 1 2 0 4 4 2 0 0 2 3 2 0 1 3 3 4 0 1 4 3 3 4 5 5 4 2 1 4 2 5 3 2 7 6 3 5 6 5 5 5 1 5 2 7 4 8 7 4 6 5 7 5 3 5 8 1 6 4 6 8 7 6 7 6 3 4 6 3 5 8 4 10 3 3 11 6 5 3 9 6 4 3 17 9 11 11 24 13 15 14 25 26 26 21 17 32 32 22 18 25 29 29 27 24 21 12 23 14 12 11 9 17 7 9 11 3 7 6 5 5 12 3 6 8 7 4 7 11 10 8 9 5 8 2 10 9 8 10 10 7 7 4 7 5 7 7 9 10 8 7 7 16 6 8 10 5 6 6 12 12 7 11 11 8 9 7 8 12 10 7 8 7 11 8 9 7 7 4 9 4 7 14 9 8 8 13 9 8 7 13 5 9 5 7 4 9 5 7 8 7 8 7 3 10 9 3 4 4 4 5 2 6 6 3 5 10 4 4 2 3 0 1 0 0 0.148000 3.300 3.300 8.200 1630559 3 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 4 2 1 1 1 2 1 2 0 2 1 5 0 1 1 4 0 2 1 4 5 3 0 1 1 1 2 1 3 3 3 1 1 1 1 1 3 4 6 6 8 8 4 3 2 7 2 2 1 7 4 4 5 1 10 6 4 4 4 3 3 3 6 11 6 4 5 4 8 5 5 9 4 5 5 7 6 4 13 12 3 6 7 5 2 7 9 7 8 8 4 7 6 4 10 6 8 9 9 9 13 15 17 23 25 13 16 24 22 26 21 27 24 24 21 21 21 15 17 22 25 21 22 17 14 11 8 12 5 9 7 8 5 11 10 6 6 5 9 13 10 9 8 8 8 6 4 9 10 9 9 7 8 7 5 7 8 14 13 5 14 5 12 11 8 9 6 5 4 9 13 7 10 13 11 11 8 5 9 10 8 7 6 7 13 3 13 8 7 13 17 5 8 5 10 7 12 7 6 6 9 7 8 8 11 8 11 9 11 11 8 5 6 10 4 9 3 10 8 7 10 8 7 8 10 10 7 4 11 5 7 8 2 4 3 0 0 1 0 1 0.150000 3.350 3.350 8.300 1707576 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 1 2 1 0 2 0 2 3 1 3 2 2 2 2 0 2 1 4 3 2 2 3 1 2 1 0 2 2 4 2 5 3 3 5 2 8 4 5 4 2 3 6 7 6 1 0 7 4 7 7 6 5 4 3 4 6 6 7 6 2 7 4 4 2 5 5 6 9 3 3 3 6 6 5 3 5 7 8 8 6 8 8 6 8 3 9 6 6 8 8 6 4 8 6 6 10 4 11 6 11 15 23 16 8 17 20 21 19 24 15 14 19 21 30 25 21 15 19 16 18 21 21 15 14 12 16 8 10 12 7 10 9 8 10 10 7 9 8 10 12 6 6 9 11 6 5 9 12 6 7 12 7 5 6 8 5 9 4 11 9 8 8 10 7 6 10 7 11 13 7 4 13 11 8 11 9 16 6 12 11 10 10 19 2 9 11 8 7 8 8 6 13 6 10 12 12 9 12 9 9 8 7 7 9 6 12 8 4 9 9 8 5 7 8 9 5 12 5 7 5 9 10 9 10 3 6 6 8 7 11 3 5 5 4 2 0 0 0 0 0.152000 3.400 3.400 8.400 1777231 3 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 3 1 0 3 4 2 3 3 3 3 3 2 1 1 1 1 3 3 0 1 8 0 0 5 3 7 4 4 4 4 4 3 5 2 2 5 3 6 1 7 6 1 2 2 5 2 1 6 6 8 7 7 5 10 4 1 6 9 3 4 5 3 5 8 4 9 8 11 8 3 2 7 7 9 10 9 10 8 6 8 6 8 7 10 8 7 3 8 4 10 7 6 8 9 6 5 16 9 19 24 23 17 23 24 22 30 21 15 23 27 20 20 20 18 20 23 18 17 15 19 17 18 13 9 4 4 7 12 7 10 4 8 6 10 5 6 13 2 3 8 7 8 7 3 11 8 7 9 7 19 7 8 9 6 14 8 8 11 10 11 13 14 10 16 8 9 13 8 9 9 12 7 12 11 6 9 15 5 9 9 9 11 11 13 6 10 6 4 12 9 9 12 11 8 6 9 16 10 10 10 8 10 10 6 7 4 1 15 6 8 4 9 13 11 8 10 11 9 8 3 3 6 6 7 9 4 6 8 7 4 2 1 2 2 1 0 0.154000 3.450 3.450 8.500 1849489 6 0 0 0 0 0 0 0 0 0 0 0 1 1 3 0 1 2 2 0 1 4 1 1 0 1 0 2 1 0 0 1 1 1 1 6 3 6 1 3 1 3 3 0 6 0 4 2 7 4 6 4 4 3 7 4 5 7 5 5 2 3 9 9 2 5 5 3 9 4 2 7 6 2 8 2 5 7 12 6 5 4 5 10 4 12 10 6 4 14 7 9 10 11 7 7 7 7 3 9 7 4 3 8 7 5 7 9 6 8 9 6 8 8 12 6 5 11 12 13 11 13 21 26 19 23 25 18 23 22 23 23 18 27 20 15 20 25 24 19 18 12 14 13 15 8 15 10 11 7 9 13 11 12 13 11 11 7 11 13 6 5 10 6 6 10 8 14 5 14 11 8 5 9 7 10 10 8 7 15 13 3 13 12 18 15 7 10 9 10 8 15 9 6 8 9 10 10 9 5 7 7 5 10 11 13 12 12 12 10 6 17 10 11 9 4 8 7 6 6 9 12 8 16 18 7 5 10 8 12 10 15 6 13 11 6 10 16 10 11 16 8 9 5 11 10 14 11 5 2 5 7 3 1 1 0 1 0 0.156000 3.500 3.500 8.600 1920727 4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 2 1 2 0 3 0 1 1 0 1 0 3 0 4 4 1 3 1 2 3 3 4 3 1 2 3 9 5 2 3 7 3 3 6 5 2 6 1 4 3 2 3 6 5 1 8 3 8 5 3 7 6 13 11 9 5 8 7 7 5 8 7 4 8 6 4 10 4 6 5 6 9 9 12 6 7 10 9 9 8 8 3 8 9 8 8 2 12 11 13 8 13 7 8 6 6 9 6 8 16 13 14 16 16 22 20 21 21 17 20 18 19 22 20 11 20 22 21 14 19 15 23 17 15 12 14 19 16 10 11 14 11 9 11 9 12 8 16 14 9 6 18 10 11 7 10 11 17 10 13 8 10 12 9 12 7 7 10 10 11 11 9 8 8 14 10 10 9 14 9 14 13 9 19 16 17 4 11 8 12 11 10 21 6 10 8 9 12 9 7 7 12 7 16 14 10 13 6 13 8 9 10 6 10 8 7 10 4 6 11 19 12 6 7 5 8 11 10 12 13 9 6 10 5 11 11 4 14 10 7 2 6 5 1 2 5 1 1 0 0 0.158000 3.550 3.550 8.700 1999833 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 2 3 2 2 2 1 2 3 0 1 0 1 3 2 0 0 3 2 3 2 5 7 0 3 4 1 10 7 7 4 5 2 3 4 3 8 3 6 4 4 4 8 2 3 4 5 5 7 1 6 7 8 1 6 8 1 4 4 11 9 4 7 11 9 10 5 6 8 4 3 9 7 9 11 5 5 8 8 4 8 7 8 11 9 12 6 4 13 4 12 10 6 9 11 10 11 10 11 11 11 14 15 14 23 18 17 29 16 26 23 15 19 14 18 19 22 31 13 21 20 12 16 15 14 18 17 15 8 12 14 13 10 10 10 10 10 13 11 6 8 11 8 14 8 10 11 11 8 10 13 5 14 7 12 9 10 10 12 15 18 8 6 9 9 12 8 9 20 14 16 10 11 14 5 5 13 6 11 9 11 15 6 9 13 11 7 8 7 10 8 16 12 11 8 10 14 11 17 11 8 16 13 9 10 5 10 17 13 14 16 8 10 9 11 5 10 9 10 12 8 11 12 11 8 6 7 12 15 13 12 7 13 5 0 3 2 0 0 0 0 0.160000 3.600 3.600 8.800 2073149 3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 1 2 1 2 2 1 0 2 2 1 0 3 6 4 5 5 2 2 2 5 5 3 6 4 6 4 5 2 4 4 3 2 4 6 3 3 6 5 7 4 5 7 5 3 5 6 13 5 3 10 5 9 7 4 5 6 5 10 6 5 5 6 6 4 14 7 6 11 6 9 10 9 8 5 3 8 10 10 6 6 8 9 5 6 14 7 11 10 9 9 11 13 8 4 5 10 12 6 16 8 8 7 19 20 23 10 16 27 25 23 19 26 21 16 20 21 24 18 25 8 11 13 16 18 13 22 18 9 16 4 16 10 12 13 9 7 9 8 17 11 10 13 10 14 4 9 12 16 8 9 16 17 13 11 14 8 8 13 9 11 15 10 11 14 8 6 4 9 11 18 9 9 8 9 15 11 11 11 9 6 13 13 10 7 8 10 15 14 9 7 4 10 12 17 10 14 13 10 10 12 20 9 7 6 11 15 11 10 8 9 6 10 13 17 6 8 9 6 13 13 16 10 15 5 11 14 11 12 6 5 12 9 4 9 2 4 1 1 0 0 0 0.162000 3.650 3.650 8.900 2156456 5 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 2 0 1 1 3 2 3 4 3 3 2 1 3 6 5 2 3 4 4 3 6 2 3 4 4 5 5 3 4 1 4 5 9 3 3 4 3 3 8 5 6 12 2 10 3 4 6 8 9 8 8 2 2 7 5 8 2 8 9 7 2 6 8 6 5 8 2 7 5 6 13 5 6 8 11 6 10 5 6 3 8 10 11 10 10 14 10 11 8 11 8 12 6 12 5 15 12 13 10 13 13 18 23 12 21 18 21 23 20 30 20 23 26 24 24 21 21 29 19 21 16 23 20 13 19 13 16 11 15 13 13 11 8 11 14 14 13 4 16 15 18 13 9 19 8 11 6 9 14 8 13 12 13 10 13 10 14 11 13 11 8 10 13 11 11 14 11 8 14 11 10 9 14 12 14 18 8 12 7 13 12 10 14 14 8 12 17 11 13 9 12 12 15 7 9 13 17 11 11 11 12 17 12 11 16 15 8 9 12 7 13 15 11 16 7 10 7 14 5 18 10 10 8 8 6 6 13 14 6 9 11 9 9 3 5 1 1 3 0 0 0.164000 3.700 3.700 9.000 2234753 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 4 1 4 2 1 3 1 1 3 2 3 3 1 3 6 2 4 4 3 3 3 6 5 2 6 4 1 3 3 7 1 4 4 6 12 4 5 2 6 4 9 3 1 8 11 5 2 7 6 3 8 4 7 3 8 3 9 6 7 8 9 2 7 6 9 6 15 6 9 5 9 4 9 17 15 10 2 10 6 8 12 12 11 12 10 9 7 11 8 7 5 11 10 14 16 7 7 7 13 15 10 16 17 21 19 14 18 24 19 27 27 24 20 22 24 21 20 14 24 17 17 18 32 15 12 13 15 12 8 14 11 11 19 11 14 15 18 10 5 12 11 11 9 15 9 7 9 16 12 9 12 10 15 9 18 7 11 12 14 7 20 8 10 13 14 11 6 6 9 11 8 10 16 8 17 13 17 9 16 11 10 9 13 20 17 14 12 10 13 11 9 9 17 20 10 16 8 14 13 14 18 15 15 8 10 12 11 22 12 13 9 12 9 11 14 19 12 12 8 8 12 11 19 11 11 12 15 11 15 13 9 9 10 9 4 9 4 2 1 0 0 0.166000 3.750 3.750 9.100 2327990 3 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 2 0 1 2 2 1 1 0 0 3 1 4 2 6 4 2 4 3 2 5 5 2 3 1 3 1 2 10 2 7 4 3 4 3 3 4 3 10 6 9 6 3 8 5 5 3 4 4 6 8 4 4 7 5 5 11 14 5 3 6 8 8 7 10 11 7 17 7 11 10 8 7 8 12 13 11 12 6 13 9 7 7 6 5 8 13 10 10 14 11 11 8 12 15 14 9 13 10 9 18 13 18 12 23 14 17 24 15 23 25 31 19 17 29 19 19 19 26 25 19 17 22 19 19 19 11 11 12 22 21 8 10 18 10 14 19 17 13 14 10 6 9 10 15 11 5 13 13 11 11 17 16 9 7 14 7 19 6 10 13 7 12 18 14 7 12 15 13 13 9 13 13 13 12 12 14 12 19 10 16 18 18 12 8 10 10 9 7 14 9 11 13 12 8 15 12 11 10 12 11 17 15 19 14 14 12 7 7 12 11 15 16 12 11 12 10 19 19 12 14 12 15 11 20 13 7 18 9 15 19 16 11 5 9 8 6 2 4 0 2 0 1 0.168000 3.800 3.800 9.200 2406866 3 0 0 0 0 0 0 0 0 0 0 1 0 2 0 1 0 2 3 2 3 1 2 1 2 2 5 2 1 2 3 2 2 2 5 3 5 3 3 1 3 6 8 6 1 3 9 6 3 6 10 5 5 7 4 5 7 12 9 5 7 5 6 6 8 3 5 4 7 8 5 6 5 8 13 4 10 2 10 9 7 7 16 9 10 9 13 8 12 9 13 15 9 15 9 10 11 6 6 6 7 7 6 8 15 9 8 9 6 12 12 11 14 12 11 13 8 17 18 18 11 14 19 14 25 21 15 10 15 19 27 23 22 24 17 19 18 12 16 22 21 25 9 25 15 19 15 21 15 8 11 13 12 10 12 7 13 11 17 11 13 10 16 19 14 23 11 8 12 13 10 9 17 4 14 10 7 10 17 14 11 11 20 18 13 8 12 6 8 13 12 23 15 14 15 16 9 14 9 13 14 17 11 17 11 10 15 17 11 6 12 12 14 15 17 12 16 16 8 17 15 15 10 15 11 10 15 12 13 9 12 9 12 15 12 6 18 7 15 14 12 21 18 11 10 18 11 19 11 7 11 3 2 5 4 0 1 1 0.170000 3.850 3.850 9.300 2508471 7 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 1 4 3 3 1 2 7 0 3 2 2 2 2 5 2 3 2 3 3 4 3 7 3 5 3 4 4 6 2 3 10 4 11 3 13 7 7 5 6 3 8 10 6 6 4 10 11 4 12 7 8 9 7 7 8 4 6 7 9 9 5 9 11 5 14 9 10 7 9 8 8 5 6 11 13 14 10 10 10 10 8 9 9 9 9 14 14 13 11 8 18 9 10 9 16 12 13 15 13 10 17 16 20 14 22 20 26 29 29 27 24 20 37 21 24 13 18 13 28 24 22 25 21 13 14 15 9 11 18 8 16 17 16 13 12 16 11 11 17 15 11 15 10 11 12 13 12 12 20 15 14 15 16 12 17 15 15 12 10 14 14 17 15 19 15 13 13 11 12 16 14 17 16 8 16 12 8 14 13 13 10 10 9 12 11 19 20 13 11 4 15 11 14 11 20 18 18 13 20 12 20 21 15 15 12 13 18 18 11 16 9 14 9 18 11 10 11 20 11 13 17 13 13 12 14 16 10 12 12 23 12 11 12 8 8 1 0 1 2 0 0.172000 3.900 3.900 9.400 2591210 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 4 4 3 2 1 3 3 2 3 0 3 6 1 3 1 5 5 4 3 9 9 0 4 7 5 3 5 5 8 7 3 3 5 5 8 5 11 10 8 10 3 6 6 6 7 7 8 8 12 9 6 10 8 7 10 8 8 10 4 6 12 20 4 6 11 7 9 10 7 5 10 6 12 11 7 13 13 16 12 6 8 14 13 9 7 5 14 17 17 10 12 11 6 13 11 17 3 23 13 21 12 21 28 11 23 30 28 23 24 26 26 17 21 15 27 23 33 16 22 25 11 20 22 23 21 20 7 21 13 16 12 16 16 13 18 18 9 13 16 15 9 20 13 19 15 8 9 11 14 13 10 9 10 16 15 14 17 15 19 16 12 14 12 14 14 16 19 19 4 24 8 12 15 16 11 15 14 20 14 13 13 14 16 19 14 13 19 14 18 23 15 15 4 14 17 14 8 10 15 20 11 15 19 12 9 13 12 11 16 12 16 13 14 16 13 16 16 19 19 12 11 10 19 15 15 14 12 5 11 18 17 10 13 12 9 6 2 0 0 1 0 0.174000 3.950 3.950 9.500 2675515 3 0 0 0 0 0 0 0 0 0 0 0 2 0 1 1 0 2 1 2 3 3 1 3 1 3 7 5 3 6 4 3 9 4 5 2 5 3 3 3 6 9 5 5 2 6 8 5 8 4 8 5 6 5 6 4 6 3 7 11 6 9 9 3 6 6 7 6 8 7 9 12 18 6 9 8 11 11 8 14 15 15 11 15 13 9 19 10 15 14 9 4 18 5 8 10 8 10 13 9 12 11 8 8 12 6 15 8 9 9 18 7 17 21 9 13 18 14 21 24 18 22 17 26 15 21 23 25 19 26 23 20 27 17 27 20 26 15 22 15 19 15 16 24 12 15 24 13 13 17 11 7 10 21 15 15 16 13 20 22 12 16 12 16 15 14 18 11 12 14 14 24 10 13 16 19 8 11 18 19 15 15 23 16 16 11 12 18 11 13 14 16 10 14 13 18 12 15 15 14 8 11 17 12 22 13 12 14 15 10 11 15 19 15 12 17 8 21 23 13 19 11 8 12 15 11 14 15 19 15 10 17 9 16 14 18 14 16 14 14 23 14 14 13 16 12 14 15 14 9 14 7 5 2 3 1 1 1 0.176000 4.000 4.000 9.600 2779386 5 0 0 0 0 0 0 0 0 0 0 0 0 2 2 3 0 1 3 0 6 2 6 3 1 5 0 4 1 6 5 1 6 3 6 5 6 2 5 4 5 3 9 8 5 7 5 8 4 12 8 12 6 8 5 7 5 7 10 5 5 6 7 9 7 10 7 10 10 8 12 10 6 13 10 11 12 11 10 10 16 9 6 12 9 11 17 10 11 10 14 11 16 7 11 13 12 10 17 14 11 13 12 10 13 16 16 17 17 15 14 11 8 15 13 27 22 14 19 17 22 22 27 18 28 19 27 32 24 33 21 17 23 12 27 25 20 20 17 22 14 15 22 21 14 9 16 12 19 16 17 16 16 20 14 18 15 14 18 10 12 9 16 12 12 10 13 19 12 12 15 14 15 22 12 11 15 18 19 18 10 6 11 14 10 23 17 14 16 19 10 10 16 19 17 23 16 18 19 18 16 12 14 14 14 13 11 10 24 21 22 26 18 18 18 14 17 5 13 17 11 13 16 14 18 16 9 15 15 18 16 14 21 13 22 17 9 8 16 17 16 16 19 7 20 19 18 16 10 6 10 6 3 5 1 0 0 2 0.178000 4.050 4.050 9.700 2869617 3 0 0 0 0 0 0 0 0 0 0 0 2 2 2 0 1 4 1 3 2 2 1 2 3 2 2 4 4 7 5 6 5 3 6 6 5 7 8 1 5 2 3 5 5 8 10 7 6 10 9 6 8 9 7 8 10 15 4 10 5 8 8 6 11 8 8 11 7 5 8 14 5 11 7 13 10 9 7 8 9 14 12 10 9 11 6 14 15 14 13 11 9 18 18 10 14 14 10 12 16 12 9 8 14 15 6 11 11 12 10 14 12 11 18 13 13 27 16 23 23 20 21 32 20 18 25 22 24 32 25 34 19 23 21 25 22 25 19 23 19 21 16 19 16 18 9 18 6 13 12 13 18 12 8 19 14 14 11 16 13 15 14 21 11 14 14 13 11 20 14 14 26 10 22 16 18 15 20 24 18 19 19 16 14 14 14 21 13 19 18 20 13 17 11 17 14 22 17 15 15 20 8 21 15 16 16 23 17 13 19 21 20 12 15 18 15 19 15 18 17 20 15 13 14 24 18 15 15 14 18 20 19 17 19 20 21 21 15 19 19 17 11 16 16 11 23 10 20 13 10 5 10 2 3 1 1 0 0.180000 4.100 4.100 9.800 2975040 3 0 0 0 0 0 0 0 0 0 1 0 0 1 2 2 4 4 2 4 4 1 2 5 0 3 3 5 2 5 5 4 9 2 7 8 4 8 3 11 6 10 4 7 8 6 6 5 8 8 7 11 4 4 11 12 7 11 7 10 11 7 11 11 10 9 7 13 12 18 8 14 12 14 12 8 8 16 10 10 14 16 10 6 8 15 15 15 22 13 19 18 12 6 11 10 7 12 12 24 15 17 9 17 21 10 17 18 14 14 14 9 22 11 23 17 15 23 32 20 11 12 20 15 23 30 20 25 19 26 29 19 27 23 15 19 11 30 16 21 24 18 18 14 8 6 25 13 21 13 13 19 13 21 25 23 18 14 14 13 20 12 14 8 10 25 14 15 20 15 10 15 16 21 8 15 20 21 20 13 16 15 20 11 18 17 17 9 12 24 19 13 18 17 20 14 15 20 10 23 19 25 8 7 13 14 11 15 18 13 10 12 10 17 11 24 16 17 11 12 13 16 20 14 26 12 17 13 14 16 16 6 20 16 23 22 11 17 16 14 25 19 17 21 22 19 13 19 16 18 10 11 7 4 6 0 0 2 0.182000 4.150 4.150 9.900 3083416 6 0 0 0 0 0 0 0 0 0 0 0 2 1 1 4 1 3 4 3 5 6 2 1 4 2 3 5 6 6 7 2 4 1 11 7 5 2 6 6 8 9 8 12 7 11 9 6 12 7 8 9 6 6 8 11 6 6 8 11 8 11 12 11 13 9 10 7 9 6 11 9 13 12 12 8 14 15 8 9 8 8 11 22 16 6 11 16 15 9 13 12 12 13 11 15 9 9 16 14 14 12 21 12 12 12 16 19 10 15 18 8 16 14 16 16 21 30 22 9 25 19 19 26 23 33 25 22 21 19 21 20 20 21 20 26 20 29 27 25 25 21 20 25 21 21 18 14 19 15 6 20 18 16 20 16 13 13 15 15 15 15 22 16 15 15 11 21 19 11 19 13 14 15 17 21 12 18 12 22 18 21 18 13 23 15 18 9 21 11 14 23 18 21 25 18 22 15 21 23 15 15 16 19 21 18 19 21 17 13 24 23 22 19 14 20 22 15 14 14 20 20 23 13 18 15 18 20 20 24 9 12 17 21 21 12 16 17 16 16 21 26 19 15 21 22 24 15 11 13 13 6 8 1 4 0 1 0 0.184000 4.200 4.200 10.00 3174897 3 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 0 5 4 3 3 0 7 3 2 4 2 8 6 4 5 9 3 8 6 4 2 7 6 8 7 9 3 5 8 5 9 7 7 6 11 14 7 12 9 9 5 15 12 14 15 12 9 11 5 8 13 11 12 10 9 17 12 11 8 17 11 19 11 15 9 11 7 15 14 16 16 16 7 12 10 14 13 13 16 16 11 15 13 14 12 16 11 12 13 17 10 13 19 11 17 11 13 14 13 10 19 19 23 24 22 24 24 31 19 23 22 28 21 25 29 17 23 17 21 30 22 19 25 27 27 22 23 23 17 25 17 20 17 12 23 21 9 17 20 16 19 16 17 20 9 16 11 22 16 15 12 15 17 23 24 16 16 18 26 11 16 20 18 10 14 17 26 19 17 15 17 19 12 21 20 24 17 27 13 16 18 19 23 14 19 14 10 11 18 19 6 15 21 23 25 17 17 18 21 27 20 17 18 20 25 22 20 18 22 18 17 15 24 16 15 22 18 22 14 20 20 22 18 22 25 19 26 12 19 19 13 12 16 19 14 9 7 5 4 2 0 2 0.186000 4.250 4.250 10.10 3283256 3 0 0 0 0 0 0 0 0 1 0 0 1 1 4 1 5 2 5 5 3 4 6 3 2 4 7 8 2 6 6 4 10 7 8 7 5 4 4 9 8 18 10 7 6 6 13 12 10 13 10 7 15 4 7 10 13 12 8 8 13 5 14 6 9 14 9 10 16 12 13 11 8 12 11 10 13 9 11 15 17 23 18 13 10 12 11 12 14 14 14 10 12 12 16 13 15 13 13 14 18 10 13 17 14 14 14 12 12 8 18 14 23 20 16 19 16 16 16 27 18 21 19 20 19 37 22 21 22 28 24 26 18 21 28 21 22 21 21 22 16 15 13 22 22 27 22 11 13 20 10 17 16 19 20 30 18 25 8 7 22 18 17 14 23 16 17 11 16 24 19 18 22 15 15 23 16 13 15 22 14 8 12 18 13 15 22 17 15 15 17 27 21 19 21 24 17 10 12 14 19 17 22 18 19 17 28 19 15 14 16 28 17 20 15 11 22 18 19 16 21 17 24 19 22 22 20 10 20 18 18 18 21 18 23 18 32 26 21 21 22 20 22 16 17 20 22 21 17 13 13 11 9 5 0 1 1 1 0.188000 4.300 4.300 10.20 3396610 5 0 0 0 0 0 0 0 0 0 0 0 1 2 3 0 2 5 5 4 3 3 5 1 2 3 6 9 3 3 3 8 7 2 9 5 7 5 11 8 9 7 6 9 6 4 5 8 6 10 9 14 10 15 6 7 13 15 10 13 7 15 10 10 11 14 14 6 7 17 13 19 3 13 9 6 13 13 14 10 11 12 16 17 13 10 15 15 19 19 11 11 15 11 13 9 13 20 8 18 14 18 23 23 23 15 19 20 14 11 7 18 16 15 22 28 20 24 22 25 17 20 39 24 26 25 25 33 25 25 25 33 15 29 18 29 18 12 18 23 17 24 28 22 16 20 33 23 18 23 26 23 15 24 16 16 16 16 17 15 15 16 14 11 9 23 17 13 13 18 12 19 20 30 20 20 15 21 19 16 18 20 23 19 15 10 11 15 19 13 22 22 18 19 16 19 23 16 10 25 23 20 21 20 31 19 19 18 15 22 18 14 13 21 18 19 22 19 16 17 21 14 20 26 18 26 22 19 26 19 20 22 15 13 24 23 15 21 21 21 27 18 22 19 24 17 22 16 18 23 10 12 3 5 3 3 0 0 0.190000 4.350 4.350 10.30 3502025 3 0 0 0 0 0 0 0 0 0 0 0 0 3 0 3 2 3 4 4 3 4 5 10 7 6 6 4 5 12 10 6 6 13 10 6 7 14 9 6 13 10 12 16 3 9 9 7 5 6 13 11 10 8 11 19 12 14 13 16 13 14 9 12 14 13 14 16 10 14 7 16 18 16 9 15 11 20 15 10 14 14 11 14 17 10 6 16 10 15 12 17 17 20 15 7 12 23 15 8 13 12 8 16 15 20 16 16 20 14 11 20 24 23 20 16 18 27 25 31 27 27 25 21 31 27 20 23 24 32 17 21 34 27 17 19 19 25 30 27 21 24 28 30 19 26 21 14 16 21 23 27 8 17 21 17 11 23 15 22 15 18 10 17 20 23 18 18 17 19 22 15 22 21 19 23 18 18 26 17 18 26 18 24 15 22 23 23 19 23 25 23 24 26 10 21 16 32 23 18 19 24 21 28 26 22 19 19 14 30 21 24 23 22 21 13 27 20 27 24 15 20 22 22 13 25 14 19 32 21 18 18 23 22 22 14 18 20 24 14 19 20 18 17 24 29 27 20 12 18 17 11 9 2 3 2 1 0 0.192000 4.400 4.400 10.40 3593938 3 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 2 3 4 7 8 1 5 6 8 3 7 5 4 9 8 8 7 7 9 7 9 9 15 5 7 8 15 14 9 9 13 8 8 15 10 7 10 9 10 14 7 8 18 16 17 11 14 15 13 8 15 8 15 18 16 16 22 12 8 16 13 10 13 13 10 21 11 10 16 16 13 13 17 16 20 23 13 22 16 14 15 22 19 22 15 22 24 16 16 16 19 12 15 16 17 20 18 19 26 17 23 18 32 20 28 36 22 25 30 29 31 36 24 24 21 29 24 32 29 30 23 34 19 33 34 25 20 31 27 24 16 14 21 20 13 24 17 28 13 24 16 26 15 26 21 11 15 20 13 20 18 25 23 18 24 26 22 16 22 14 13 16 20 24 25 19 29 20 15 20 16 25 26 21 22 17 24 22 21 17 23 23 15 19 30 23 17 21 19 18 21 26 14 29 24 20 33 19 15 20 23 28 19 23 25 15 19 17 31 23 18 29 26 25 14 24 25 18 19 19 24 35 31 23 23 14 15 19 11 20 19 24 17 16 9 10 12 3 2 2 0 1 0.194000 4.450 4.450 10.50 3712573 7 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 5 3 5 4 3 11 3 10 4 6 7 8 5 5 5 8 9 12 7 7 11 8 6 7 9 10 13 10 6 13 9 9 9 11 14 14 12 13 10 6 13 13 15 12 13 19 8 14 13 16 11 13 14 15 9 15 16 13 16 17 17 17 23 18 16 19 10 13 18 16 10 9 21 11 22 14 20 14 18 13 15 12 13 14 16 14 15 20 29 17 14 18 8 15 21 15 19 15 22 20 17 15 23 26 16 26 24 23 23 23 23 30 24 29 28 26 35 33 31 22 23 22 20 37 22 27 33 26 27 26 17 16 18 27 22 21 24 18 18 18 17 15 18 14 19 24 22 15 20 21 15 19 25 15 16 26 19 22 29 20 16 13 15 16 32 24 23 13 33 17 22 18 18 23 24 22 21 20 26 21 16 22 18 18 16 15 26 26 17 22 21 13 25 24 13 23 18 18 25 32 20 24 21 17 19 24 24 23 33 19 19 21 32 18 22 23 19 23 32 18 31 22 25 23 23 31 29 21 16 20 20 15 22 14 12 5 10 9 2 1 0 1 0.196000 4.500 4.500 10.60 3829518 3 0 0 0 0 0 0 0 0 0 0 1 2 2 1 6 2 6 5 9 3 5 6 8 6 3 8 10 7 11 9 4 8 9 5 11 10 13 9 16 13 10 9 5 12 9 15 10 13 9 12 18 14 19 9 13 14 12 13 21 17 17 18 16 13 12 16 14 18 10 15 15 16 11 15 22 17 19 17 11 12 26 12 17 19 18 21 20 27 17 18 19 21 14 19 16 12 16 21 20 18 8 17 17 13 13 18 15 19 15 19 20 28 21 29 27 27 34 24 26 31 25 24 16 17 23 23 30 28 18 28 32 28 37 18 26 18 16 33 21 31 21 20 22 19 20 25 18 18 20 11 17 20 22 23 14 14 17 18 20 25 20 19 20 22 19 16 33 25 21 21 24 18 16 22 29 22 16 27 26 28 21 20 22 17 25 23 20 23 18 16 19 26 22 21 22 23 15 20 19 17 23 19 20 15 22 18 22 26 23 23 31 17 29 18 13 15 19 18 24 22 28 22 17 23 24 26 21 23 25 24 29 26 18 41 24 29 22 27 23 28 16 30 24 18 23 19 17 18 21 17 14 8 2 5 2 0 0 0.198000 4.550 4.550 10.70 3950740 3 0 0 0 0 0 0 0 0 0 1 1 1 2 1 3 7 5 6 7 7 7 4 5 6 4 1 8 9 10 9 8 10 8 12 6 10 8 10 8 11 9 10 15 7 11 8 13 11 13 15 15 17 12 10 8 17 12 9 14 12 14 11 14 21 14 15 20 18 16 8 15 22 24 14 10 18 14 15 16 12 10 16 21 16 25 17 20 17 17 20 15 24 15 17 22 25 17 13 22 18 20 19 11 21 22 21 16 21 24 16 22 17 21 17 24 22 24 35 27 24 28 24 32 37 34 25 24 29 37 37 25 28 21 23 24 22 21 20 25 22 32 19 21 22 24 20 21 20 22 18 27 17 14 20 22 22 22 14 19 20 20 21 23 22 14 20 21 23 20 18 23 20 25 31 24 18 22 14 23 22 21 23 27 27 20 21 18 22 23 24 23 21 18 22 17 22 21 35 15 24 24 12 27 30 27 28 22 31 24 24 19 27 24 28 23 25 26 35 27 22 29 21 24 18 19 26 33 29 31 23 25 19 24 26 21 10 23 24 26 28 20 27 26 17 29 22 18 14 22 8 10 11 4 4 1 2 0 0.200000 4.600 4.600 10.80 4068161 5 0 0 0 0 0 0 0 0 0 0 1 1 0 1 5 5 2 9 3 11 6 9 8 7 7 8 3 3 13 10 8 7 5 8 13 8 7 14 12 10 7 15 13 13 11 12 12 14 12 13 12 10 15 11 14 7 16 15 8 15 13 15 13 18 13 17 21 15 12 13 13 17 18 18 18 16 19 20 17 14 17 24 13 12 18 19 19 13 21 18 26 21 23 16 14 18 19 13 33 13 19 20 14 20 23 14 26 19 22 21 21 16 27 30 25 28 22 32 21 30 27 31 21 30 22 27 27 31 27 21 17 38 41 17 21 20 19 30 24 27 20 20 21 30 20 19 19 31 25 24 13 21 23 19 24 33 24 17 20 17 12 25 23 18 24 11 24 25 22 33 20 11 22 31 21 20 26 27 21 26 24 14 23 23 20 20 26 28 10 20 27 24 22 17 27 28 20 23 23 33 20 24 26 32 33 29 21 25 24 17 18 19 27 26 20 24 26 24 24 26 21 19 24 21 36 32 18 33 33 20 23 25 33 19 27 25 27 24 27 21 21 23 28 18 27 25 19 24 15 17 12 15 7 2 1 0 0 ", "%f ", Inf); +%! assert (rows (x) == n); %% Note use fprintf so output not sent to stdout %% test/octave.test/io/printf-1.m %!test -%! nm = tmpnam(); +%! nm = tmpnam (); %! fid1 = fopen(nm,"w"); %! x = fprintf (fid1, "%s: %d\n", "test", 1); %! fclose(fid1); @@ -303,26 +304,26 @@ %! str = fscanf(fid2,"%s"); %! fclose(fid2); %! unlink(nm); -%! assert(x,8); -%! assert(str,"test:1"); +%! assert (x, 8); +%! assert (str, "test:1"); %% test/octave.test/io/printf-2.m -%!error printf (1); +%!error printf (1) %% test/octave.test/io/printf-3.m -%!error <Invalid call to printf> printf (); +%!error <Invalid call to printf> printf () %% test/octave.test/io/sprintf-1.m %!test %! [s, msg, status] = sprintf ("%s: %d\n", "test", 1); %! -%! assert(s == "test: 1\n" && ischar (msg) && status == 8); +%! assert (s == "test: 1\n" && ischar (msg) && status == 8); %% test/octave.test/io/sprintf-2.m -%!error sprintf (1); +%!error sprintf (1) %% test/octave.test/io/sprintf-3.m -%!error <Invalid call to sprintf> sprintf (); +%!error <Invalid call to sprintf> sprintf () %% test/octave.test/io/fopen-1.m %!test @@ -378,34 +379,34 @@ %! endif %! endfor %! -%! assert(status == 1); +%! assert (status == 1); %% test/octave.test/io/fopen-2.m %!test %! s.a = 1; -%! fail("fopen (s)"); +%! fail ("fopen (s)"); %% test/octave.test/io/fopen-3.m -%!error fopen ("foo", "x"); +%!error fopen ("foo", "x") %% test/octave.test/io/fopen-4.m %! fopen ("foo", "wb", "noodle"); -%! assert(prog_output_assert("error:.*")); +%! assert (prog_output_assert ("error:")); %% test/octave.test/io/fopen-5.m -%!error <Invalid call to fopen> fopen (); +%!error <Invalid call to fopen> fopen () %% test/octave.test/io/fopen-6.m -%!error <Invalid call to fopen> fopen ("foo", "wb", "native", 1); +%!error <Invalid call to fopen> fopen ("foo", "wb", "native", 1) %% test/octave.test/io/fclose-1.m -%!error fclose (0); +%!error fclose (0) %% test/octave.test/io/fclose-2.m -%!error <Invalid call to fclose> fclose (1, 2); +%!error <Invalid call to fclose> fclose (1, 2) %% test/octave.test/io/tmpnam-1.m -%!assert(ischar (tmpnam ())); +%!assert (ischar (tmpnam ())) %% test/octave.test/io/tmpnam-2.m %!warning tmpnam (1); @@ -414,7 +415,7 @@ %!warning tmpnam ("foo", 1); %% test/octave.test/io/tmpnam-4.m -%!error <Invalid call to tmpnam> tmpnam (1, 2, 3); +%!error <Invalid call to tmpnam> tmpnam (1, 2, 3) %% test/octave.test/io/binary-io-1.m %!test @@ -426,39 +427,30 @@ %! "real*8"; "int16"; "integer*2"; "int32"; "integer*4"]; %! %! n = rows (type_list); -%! %! nm = tmpnam (); -%! %! id = fopen (nm, "wb"); -%! %! if (id > 0) -%! -%! for i = 1:n -%! fwrite (id, i, deblank (type_list(i,:))); -%! endfor -%! -%! fclose (id); -%! -%! id = fopen (nm, "rb"); -%! -%! if (id > 0) -%! -%! x = zeros (1, n); -%! -%! for i = 1:n -%! x(i) = fread (id, [1, 1], deblank (type_list(i,:))); -%! endfor -%! -%! if (x == 1:n) -%! printf_assert ("ok\n"); -%! endif -%! -%! endif -%! +%! for i = 1:n +%! fwrite (id, i, deblank (type_list(i,:))); +%! endfor +%! +%! fclose (id); +%! +%! id = fopen (nm, "rb"); +%! if (id > 0) +%! x = zeros (1, n); +%! for i = 1:n +%! x(i) = fread (id, [1, 1], deblank (type_list(i,:))); +%! endfor +%! +%! if (x == 1:n) +%! printf_assert ("ok\n"); +%! endif +%! endif %! endif %! %! unlink (nm); -%! assert(prog_output_assert("ok")); +%! assert (prog_output_assert ("ok")); %% test/octave.test/io/file-pos-1.m %!test @@ -490,7 +482,7 @@ %! frewind (id); %! s_one_x = fgets (id); %! if (s_one != s_one_x) -%! error("bombed!!"); +%! error ("bombed!!"); %! endif %! endif %! endif @@ -499,122 +491,118 @@ %! unlink (nm); %% test/octave.test/io/fputs-1.m -%!error <Invalid call to fputs> fputs (); +%!error <Invalid call to fputs> fputs () %% test/octave.test/io/fputs-2.m -%!error <Invalid call to fputs> fputs (1, "foo", 1); +%!error <Invalid call to fputs> fputs (1, "foo", 1) %% test/octave.test/io/fputs-3.m -%!assert(fputs (1, 1),-1); +%!assert (fputs (1, 1),-1) %% test/octave.test/io/fgetl-1.m -%!error <Invalid call to fgetl> fgetl (); +%!error <Invalid call to fgetl> fgetl () %% test/octave.test/io/fgetl-2.m -%!error <Invalid call to fgetl> fgetl (1, 2, 3); +%!error <Invalid call to fgetl> fgetl (1, 2, 3) %% test/octave.test/io/fgetl-3.m -%!error fgetl ("foo", 1); +%!error fgetl ("foo", 1) %% test/octave.test/io/fgets-1.m -%!error <Invalid call to fgets> fgets (); +%!error <Invalid call to fgets> fgets () %% test/octave.test/io/fgets-2.m -%!error <Invalid call to fgets> fgets (1, 2, 3); +%!error <Invalid call to fgets> fgets (1, 2, 3) %% test/octave.test/io/fgets-3.m -%!error fgets ("foo", 1); +%!error fgets ("foo", 1) %% test/octave.test/io/fprintf-1.m -%!error <Invalid call to fprintf> fprintf (); +%!error <Invalid call to fprintf> fprintf () %% test/octave.test/io/fprintf-2.m -%!error <Invalid call to fprintf> fprintf (1); +%!error <Invalid call to fprintf> fprintf (1) %% test/octave.test/io/fprintf-3.m %!test %! s.a = 1; -%! fail("fprintf (s)","Invalid call to fprintf.*"); +%! fail ("fprintf (s)", "Invalid call to fprintf"); %% test/octave.test/io/fprintf-4.m -%!error fprintf (1, 1); +%!error fprintf (1, 1) %% test/octave.test/io/fprintf-5.m -%!error fprintf (-1, "foo"); +%!error fprintf (-1, "foo") %% test/octave.test/io/fscanf-1.m -%!error <Invalid call to fscanf> fscanf (); +%!error <Invalid call to fscanf> fscanf () %% test/octave.test/io/fscanf-2.m -%!error <Invalid call to fscanf> fscanf (1); +%!error <Invalid call to fscanf> fscanf (1) %% test/octave.test/io/fscanf-3.m -%!error fscanf ("foo", "bar"); +%!error fscanf ("foo", "bar") %% test/octave.test/io/fread-1.m -%!error <Invalid call to fread> fread (); +%!error <Invalid call to fread> fread () %% test/octave.test/io/fread-2.m -%!error <Invalid call to fread> fread (1, 2, "char", 1, "native", 2); +%!error <Invalid call to fread> fread (1, 2, "char", 1, "native", 2) %% test/octave.test/io/fread-3.m -%!error fread ("foo"); +%!error fread ("foo") %% test/octave.test/io/fwrite-1.m -%!error <Invalid call to fwrite> fwrite (); +%!error <Invalid call to fwrite> fwrite () %% test/octave.test/io/fwrite-2.m -%!error <Invalid call to fwrite> fwrite (1, rand (10), "char", 1, "native", 2); +%!error <Invalid call to fwrite> fwrite (1, rand (10), "char", 1, "native", 2) %% test/octave.test/io/fwrite-3.m -%!error fwrite ("foo", 1); +%!error fwrite ("foo", 1) %% test/octave.test/io/feof-1.m -%!error <Invalid call to feof> feof (); +%!error <Invalid call to feof> feof () %% test/octave.test/io/feof-2.m -%!error <Invalid call to feof> feof (1, 2); +%!error <Invalid call to feof> feof (1, 2) %% test/octave.test/io/feof-3.m -%!error feof ("foo"); +%!error feof ("foo") -%% FIXME trimerr in test.m finds and strips ".*ferror:"!! -%% So use fail for the next two tests instead. %% test/octave.test/io/ferror-1.m -%!test -%! fail("ferror ();","Invalid call to ferror.*"); +%!error <Invalid call to ferror> ferror () %% test/octave.test/io/ferror-2.m -%!test -%! fail("ferror (1, \"clear\", 2);","Invalid call to ferror.*"); +%!error <Invalid call to ferror> ferror (1, 'clear', 2) %% test/octave.test/io/ferror-3.m -%!error ferror ("foo"); +%!error ferror ("foo") %% test/octave.test/io/ftell-1.m -%!error <Invalid call to ftell> ftell (); +%!error <Invalid call to ftell> ftell () %% test/octave.test/io/ftell-2.m -%!error <Invalid call to ftell> ftell (1, 2); +%!error <Invalid call to ftell> ftell (1, 2) %% test/octave.test/io/ftell-3.m -%!error ftell ("foo"); +%!error ftell ("foo") %% test/octave.test/io/fseek-1.m -%!error <Invalid call to fseek> fseek (); +%!error <Invalid call to fseek> fseek () %% test/octave.test/io/fseek-2.m -%!error <Invalid call to fseek> fseek (1, 0, SEEK_SET, 1); +%!error <Invalid call to fseek> fseek (1, 0, SEEK_SET, 1) %% test/octave.test/io/fseek-3.m -%!error fseek ("foo", 0, SEEK_SET); +%!error fseek ("foo", 0, SEEK_SET) %% test/octave.test/io/frewind-1.m -%!error <Invalid call to frewind> frewind (); +%!error <Invalid call to frewind> frewind () %% test/octave.test/io/frewind-2.m -%!error <Invalid call to frewind> frewind (1, 2); +%!error <Invalid call to frewind> frewind (1, 2) %% test/octave.test/io/frewind-3.m -%!error frewind ("foo"); +%!error frewind ("foo")
--- a/test/test_logical_index.m +++ b/test/test_logical_index.m @@ -18,178 +18,56 @@ %!test %! a = []; -%! fail("a(0);"); - -%!test -%! a = 2; -%! assert(a(1) == 2); - -%!test -%! a = 2; -%! assert(a(1) == 2); - -%!test -%!shared a -%! a = 2; -%!error id=Octave:index-out-of-bounds a(logical ([1,1])); - -%!test -%! a = [9,8,7,6]; -%! assert(isempty (a(logical ([0,0,0,0])))); +%! fail ("a(0);"); -%!test -%! a = [9,8,7,6]; -%! assert(all (a(logical ([1,1,1,1])) == [9,8,7,6])); - -%!test -%! a = [9,8,7,6]; -%! assert(all (a(logical ([0,1,1,0])) == [8,7])); - -%!test -%! a = [9,8,7,6]; -%! assert(all (a(logical ([1,1])) == [9,8])); - -%!test -%! a = [9,8;7,6]; -%! assert(isempty (a(logical ([0,0,0,0])))); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical ([1,1,1,1])) == [9,7,8,6])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical ([0,1,1,0])) == [7,8])); +%!shared a +%! a = 2; +%!assert (a(1), 2); +%!error id=Octave:index-out-of-bounds a(logical ([1,1])) -%!test -%! a = [9,8;7,6]; -%! assert(a(logical (0:1),logical (0:1)) == 6); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical (0:1),2:-1:1) == [6,7])); - -%!test -%! a = [9,8;7,6]; -%! assert(a(logical (0:1),logical ([0,1])) == 6); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical (0:1),[2,1]) == [6,7])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical (0:1),:) == [7,6])); - -%!test -%! a = [9,8;7,6]; -%! assert(a(logical (0:1),1) == 7); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical (0:1),logical ([1,1])) == [7,6])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(2:-1:1,logical (0:1)) == [6;8])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(2:-1:1,logical ([0,1])) == [6;8])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (all (a(2:-1:1,logical ([1,1])) == [7,6;9,8]))); - -%!test -%! a = [9,8;7,6]; -%! assert(a(logical ([0,1]),logical (0:1)) == 6); +%!shared a +%! a = [9,8,7,6]; +%!assert (isempty (a(logical ([0,0,0,0])))) +%!assert (a(logical ([1,1,1,1])), [9,8,7,6]) +%!assert (a(logical ([0,1,1,0])), [8,7]) +%!assert (a(logical ([1,1])), [9,8]) -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical ([0,1]),2:-1:1) == [6,7])); - -%!test -%! a = [9,8;7,6]; -%! assert(a(logical ([0,1]),logical ([0,1])) == 6); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical ([0,1]),[2,1]) == [6,7])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical ([0,1]),:) == [7,6])); - -%!test -%! a = [9,8;7,6]; -%! assert(a(logical ([0,1]),1) == 7); - -%!test +%!shared a %! a = [9,8;7,6]; -%! assert(all (a(logical ([0,1]),logical ([1,1])) == [7,6])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a([2,1],logical (0:1)) == [6;8])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a([2,1],logical ([0,1])) == [6;8])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (all (a([2,1],logical ([1,1])) == [7,6;9,8]))); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(:,logical (0:1)) == [8;6])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(:,logical ([0,1])) == [8;6])); +%!assert (isempty (a(logical ([0,0,0,0])))) +%!assert (a(logical ([1,1,1,1])), [9,7,8,6]) +%!assert (a(logical ([0,1,1,0])), [7,8]) +%!assert (a(logical (0:1),logical (0:1)), 6) +%!assert (a(logical (0:1),2:-1:1), [6,7]) +%!assert (a(logical (0:1),logical ([0,1])), 6) +%!assert (a(logical (0:1),[2,1]), [6,7]) +%!assert (a(logical (0:1),:), [7,6]) +%!assert (a(logical (0:1),1), 7) +%!assert (a(logical (0:1),logical ([1,1])), [7,6]) +%!assert (a(2:-1:1,logical (0:1)), [6;8]) +%!assert (a(2:-1:1,logical ([0,1])), [6;8]) +%!assert (a(2:-1:1,logical ([1,1])), [7,6;9,8]) +%!assert (a(logical ([0,1]),logical (0:1)), 6) +%!assert (a(logical ([0,1]),2:-1:1), [6,7]) +%!assert (a(logical ([0,1]),logical ([0,1])), 6) +%!assert (a(logical ([0,1]),[2,1]), [6,7]) +%!assert (a(logical ([0,1]),:), [7,6]) +%!assert (a(logical ([0,1]),1), 7) +%!assert (a(logical ([0,1]),logical ([1,1])), [7,6]) +%!assert (a([2,1],logical (0:1)), [6;8]) +%!assert (a([2,1],logical ([0,1])), [6;8]) +%!assert (a([2,1],logical ([1,1])), [7,6;9,8]) +%!assert (a(:,logical (0:1)), [8;6]) +%!assert (a(:,logical ([0,1])), [8;6]) +%!assert (a(:,logical ([1,1])), [9,8;7,6]) +%!assert (a(1,logical (0:1)), 8) +%!assert (a(1,logical ([0,1])), 8) +%!assert (a(1,logical ([1,1])), [9,8]) +%!assert (a(logical ([1,1]),logical (0:1)), [8;6]) +%!assert (a(logical ([1,1]),2:-1:1), [8,9;6,7]) +%!assert (a(logical ([1,1]),logical ([0,1])), [8;6]) +%!assert (a(logical ([1,1]),[2,1]), [8,9;6,7]) +%!assert (a(logical ([1,1]),:), [9,8;7,6]) +%!assert (a(logical ([1,1]),1), [9;7]) +%!assert (a(logical ([1,1]),logical ([1,1])), [9,8;7,6]) -%!test -%! a = [9,8;7,6]; -%! assert(all (all (a(:,logical ([1,1])) == [9,8;7,6]))); - -%!test -%! a = [9,8;7,6]; -%! assert(a(1,logical (0:1)) == 8); - -%!test -%! a = [9,8;7,6]; -%! assert(a(1,logical ([0,1])) == 8); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(1,logical ([1,1])) == [9,8])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical ([1,1]),logical (0:1)) == [8;6])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (all (a(logical ([1,1]),2:-1:1) == [8,9;6,7]))); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical ([1,1]),logical ([0,1])) == [8;6])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (all (a(logical ([1,1]),[2,1]) == [8,9;6,7]))); - -%!test -%! a = [9,8;7,6]; -%! assert(all (all (a(logical ([1,1]),:) == [9,8;7,6]))); - -%!test -%! a = [9,8;7,6]; -%! assert(all (a(logical ([1,1]),1) == [9;7])); - -%!test -%! a = [9,8;7,6]; -%! assert(all (all (a(logical ([1,1]),logical ([1,1])) == [9,8;7,6]))); -
--- a/test/test_null_assign.m +++ b/test/test_null_assign.m @@ -33,7 +33,7 @@ %!test %! a = ones (3); fail ("a(1:3,1:3) = []", ".*"); -% null strings should delete. [,] and [;] should delete. +## null strings should delete. [,] and [;] should delete. %!test %! a = ones (3); a(1:2,:) = [,]; assert (size (a), [1,3]) %!test @@ -43,7 +43,7 @@ %!test %! a = ones (3); a(1:2,:) = ""; assert (size (a), [1,3]) -% null matrix stored anywhere should lose its special status +## null matrix stored anywhere should lose its special status %!test %! a = ones (3); b = []; fail ("a(:,1:3) = b", ".") %!test @@ -51,11 +51,11 @@ %!test %! a = ones (3); b.x = []; fail ("a(:,1:3) = b.x", ".") -% filtering a null matrix through a function should not delete +## filtering a null matrix through a function should not delete %!test %! a = ones (3); fail ("a(:,1:3) = double ([])") -% subsasgn should work the same way +## subsasgn should work the same way %!test %! a = ones (3); a = subsasgn (a, substruct ('()', {':',1:2}), []); assert (size (a), [3,1]) %!test
--- a/test/test_parser.m +++ b/test/test_parser.m @@ -16,8 +16,8 @@ ## along with Octave; see the file COPYING. If not, see ## <http://www.gnu.org/licenses/>. -## Tests for parser problems belong in this file. We need many more -## tests here! +## Tests for parser problems belong in this file. +## We need many more tests here! %!assert ({1 2 {3 4}}, {1,2,{3,4}}) %!assert ({1, 2 {3 4}}, {1,2,{3,4}}) @@ -247,6 +247,8 @@ %! assert (a += b *= c += 1, 42) %! assert (b == 40 && c == 8) +## Test creation of anonymous functions + %!test %! af_in_cell = {@(x) [1 2]}; %! assert (af_in_cell{1}(), [1, 2]); @@ -254,3 +256,4 @@ %!test %! R = @(rot) [cos(rot) -sin(rot); sin(rot) cos(rot)]; %! assert (R(pi/2), [cos(pi/2), -sin(pi/2); sin(pi/2),cos(pi/2)]); +
--- a/test/test_prefer.m +++ b/test/test_prefer.m @@ -19,81 +19,76 @@ %% test/octave.test/prefer/prefer-1.m %!test %! m = [3 2]; -%! assert(all (m == (3:-1:2))); +%! assert (all (m == (3:-1:2))); %% test/octave.test/prefer/prefer-2.m %!test %! m = [3, %! 2]; -%! assert(all (m == (3:-1:2)')); +%! assert (all (m == (3:-1:2)')); %% test/octave.test/prefer/prefer-3.m %!test %! a = 2; -%! assert([a - 1],1); +%! assert ([a - 1], 1); %% test/octave.test/prefer/prefer-4.m %!test %! m = [3,2]; -%! fail("[m ']"); +%! fail ("[m ']"); %% test/octave.test/prefer/prefer-5.m -%!assert(all ([3 2] == (3:-1:2))); +%!assert (all ([3 2] == (3:-1:2))); %% test/octave.test/prefer/prefer-6.m -%!assert(all ([3, 2] == (3:-1:2))); +%!assert (all ([3, 2] == (3:-1:2))); %% test/octave.test/prefer/prefer-7.m %!test %! m = [3,2]; -%! assert(all ([m (1)] == (3:-1:1))); +%! assert (all ([m (1)] == (3:-1:1))); %% test/octave.test/prefer/prefer-8.m %!test %! m = [3,2]; -%! assert([m(1)],3); - -%% test/octave.test/prefer/prefer-9.m -%!test -%! m = [3,2]; -%! assert(all ([m (1)] == (3:-1:1))); +%! assert ([m(1)],3); %% test/octave.test/prefer/prefer-10.m %!test %! a = 2; -%! assert([a- 1],1); +%! assert ([a- 1], 1); %% test/octave.test/prefer/prefer-11.m %!test %! a = 1; -%! assert(all ([a -1] == (1:-2:-1))); +%! assert (all ([a -1] == (1:-2:-1))); %% test/octave.test/prefer/prefer-12.m %!test %! wsn = warning ("query", "Octave:str-to-num"); %! warning ("off", "Octave:str-to-num"); -%! assert("d" + 0,100); +%! assert ("d" + 0, 100); %! warning (wsn.state, "Octave:str-to-num"); %% test/octave.test/prefer/prefer-13.m %!test %! wsn = warning ("query", "Octave:str-to-num"); %! warning ("on", "Octave:str-to-num"); -%! fail("'d' + 0","warning"); +%! fail ("'d' + 0", "warning"); %! warning (wsn.state, "Octave:str-to-num"); %% test/octave.test/prefer/prefer-14.m %!test %! wir = warning ("query", "Ocave:imag-to-real"); %! warning ("off", "Ocave:imag-to-real"); -%! assert(eye (1+i),1); +%! assert (eye (1+i), 1); %! warning (wir.state, "Ocave:imag-to-real"); %% test/octave.test/prefer/prefer-15.m %!test %! wir = warning ("query", "Ocave:imag-to-real"); %! warning ("on", "Ocave:imag-to-real"); -%! fail("eye (1+i)","warning"); +%! fail ("eye (1+i)", "warning"); %! warning (wir.state, "Ocave:imag-to-real"); %% test/octave.test/prefer/prefer-17.m @@ -102,30 +97,14 @@ %! warning ("off", "Octave:resize-on-range-error"); %! clear a; %! a(2) = 1; a(3) = 2; -%! assert(all (a == [0,1,2])); +%! assert (all (a == [0,1,2])); %! warning (wrre.state, "Octave:resize-on-range-error"); %% test/octave.test/prefer/prefer-18.m %!test %! clear a; %! a(1) = 1; a(2) = 2; -%! assert(all (a == [1,2])); - -%% FIXME How the hell do I test this one in test/assert -%% test/octave.test/prefer/prefer-19.m -%!#test -%! pid = print_answer_id_name (); -%! print_answer_id_name (0); -%! a = 1 -%! print_answer_id_name (pid); - -%% FIXME How the hell do I test this one in test/assert -%% test/octave.test/prefer/prefer-20.m -%!#test -%! pid = print_answer_id_name (); -%! print_answer_id_name (1); -%! a = 1 -%! print_answer_id_name (pid); +%! assert (all (a == [1,2])); %% test/octave.test/prefer/prefer-21.m %!test @@ -147,22 +126,22 @@ %! print_empty_dimensions (ped); %% test/octave.test/prefer/prefer-23.m -%!assert(all (size (inv ([])) == [0, 0])); +%!assert (all (size (inv ([])) == [0, 0])); %% test/octave.test/prefer/prefer-24.m -%!assert(all (svd ([]) == zeros (0, 1))); +%!assert (all (svd ([]) == zeros (0, 1))); %% test/octave.test/prefer/prefer-27.m %!test %! sp = save_precision (); %! save_precision (1); %! x = pi; -%! nm = tmpnam(); -%! save("-text",nm,"x"); +%! nm = tmpnam (); +%! save("-text", nm, "x"); %! clear x; -%! load(nm); -%! unlink(nm); -%! assert(x,3); +%! load (nm); +%! unlink (nm); +%! assert (x,3); %! save_precision (sp); %% test/octave.test/prefer/prefer-28.m @@ -170,48 +149,50 @@ %! sp = save_precision (); %! save_precision (5); %! x = pi; -%! nm = tmpnam(); -%! save("-text",nm,"x"); +%! nm = tmpnam (); +%! save("-text", nm, "x"); %! clear x; -%! load(nm); -%! unlink(nm); -%! assert(x,3.1416); +%! load (nm); +%! unlink (nm); +%! assert (x, 3.1416); %! save_precision (sp); -%% FIXME Same problem as above!!! +%% FIXME: How to capture standard output for comparison? %% test/octave.test/prefer/prefer-29.m %!function f () %! 1 +%!endfunction %!#test %! sf = silent_functions (); %! silent_functions (0); %! f -%! assert(??); +%! assert (??); %! silent_functions (sf); %% FIXME Same problem as above!!! %% test/octave.test/prefer/prefer-30.m %!function f () %! 1 +%!endfunction %!#test %! sf = silent_functions (); %! silent_functions (1); %! f -%! assert(??); +%! assert (??); %! silent_functions (sf); %% test/octave.test/prefer/prefer-32.m %!test %! wndz = warning ("query", "Octave:neg-dim-as-zero"); %! warning ("on", "Octave:neg-dim-as-zero"); -%! fail("eye (-1) == []","warning"); +%! fail ("eye (-1) == []", "warning"); %! warning (wndz.state, "Octave:neg-dim-as-zero"); %% test/octave.test/prefer/prefer-33.m %!test %! wndz = warning ("query", "Octave:neg-dim-as-zero"); %! warning ("off", "Octave:neg-dim-as-zero"); -%! assert(all (size (eye (-1)) == [0, 0])); +%! assert (all (size (eye (-1)) == [0, 0])); %! warning (wndz.state, "Octave:neg-dim-as-zero"); %% test/octave.test/prefer/prefer-34.m @@ -225,14 +206,14 @@ %!test %! watv = warning ("query", "Octave:assign-as-truth-value"); %! warning ("on", "Octave:assign-as-truth-value"); -%! fail("if (x = 1) 1; endif","warning"); +%! fail ("if (x = 1) 1; endif", "warning"); %! warning (watv.state, "Octave:assign-as-truth-value"); %% test/octave.test/prefer/prefer-38.m %!test %! wdbz = warning ("query", "Octave:divide-by-zero"); %! warning ("off", "Octave:divide-by-zero"); -%! assert(isinf (1/0)); +%! assert (isinf (1/0)); %! warning (wdbz.state, "Octave:divide-by-zero"); %% test/octave.test/prefer/prefer-39.m @@ -241,6 +222,6 @@ %! warning ("on", "Octave:divide-by-zero"); %! a = 1; %! b = 0; -%! fail("isinf (a/b);","warning") +%! fail ("isinf (a/b);", "warning") %! warning (wdbz.state, "Octave:divide-by-zero");
--- a/test/test_range.m +++ b/test/test_range.m @@ -18,57 +18,57 @@ ## Test values of range -%!assert(full(1:9), [ 1 2 3 4 5 6 7 8 9 ]) -%!assert(full(1:0.4:3), [ 1.0 1.4 1.8 2.2 2.6 3.0 ]) -%!assert(full(9:1), zeros(1,0)) -%!assert(full(9:-1:1), [ 9 8 7 6 5 4 3 2 1 ]) -%!assert(full(1:-1:9), zeros(1,0)) - +%!assert (full (1:9), [ 1 2 3 4 5 6 7 8 9 ]) +%!assert (full (1:0.4:3), [ 1.0 1.4 1.8 2.2 2.6 3.0 ]) +%!assert (full (9:1), zeros (1,0)) +%!assert (full (9:-1:1), [ 9 8 7 6 5 4 3 2 1 ]) +%!assert (full (1:-1:9), zeros (1,0)) +%!assert (full (1:1:1), 1) +%!assert (full (i:2i:10i), zeros (1,0)) ## Test mixing integer range with other types %!shared expect, r, z %! expect = [ 1 2 3 4 5 6 7 8 9 %! 0 0 0 0 0 0 0 0 0 ]; -%! z = zeros(1,9); +%! z = zeros (1,9); %! r = 1:9; -%!assert([ r ; z ], expect) -%!assert([ r ; single(z) ], single (expect)) -%!assert([ r ; logical(z) ], expect) -%!assert([ r ; sparse(z) ], sparse (expect)) -%!assert([ r ; sparse(logical(z)) ], sparse (expect)) +%!assert ([ r ; z ], expect) +%!assert ([ r ; single(z) ], single (expect)) +%!assert ([ r ; logical(z) ], expect) +%!assert ([ r ; sparse(z) ], sparse (expect)) +%!assert ([ r ; sparse(logical(z)) ], sparse (expect)) -%!assert([ r ; int8(z) ], int8(expect)) -%!assert([ r ; int16(z) ], int16(expect)) -%!assert([ r ; int32(z) ], int32(expect)) -%!assert([ r ; int64(z) ], int64(expect)) -%!assert([ r ; uint8(z) ], uint8(expect)) -%!assert([ r ; uint16(z) ], uint16(expect)) -%!assert([ r ; uint32(z) ], uint32(expect)) -%!assert([ r ; uint64(z) ], uint64(expect)) +%!assert ([ r ; int8(z) ], int8(expect)) +%!assert ([ r ; int16(z) ], int16(expect)) +%!assert ([ r ; int32(z) ], int32(expect)) +%!assert ([ r ; int64(z) ], int64(expect)) +%!assert ([ r ; uint8(z) ], uint8(expect)) +%!assert ([ r ; uint16(z) ], uint16(expect)) +%!assert ([ r ; uint32(z) ], uint32(expect)) +%!assert ([ r ; uint64(z) ], uint64(expect)) - -## Test mixing non integer range with other types +## Test mixing non-integer range with other types %!shared expect, r, z %! expect = [ 1.0 1.4 1.8 2.2 2.6 3.0 %! 0 0 0 0 0 0 ]; -%! z = zeros(1,6); +%! z = zeros (1,6); %! r = 1:0.4:3; -%!assert([ r ; z ], expect) -%!assert([ r ; single(z) ], single (expect)) -%!assert([ r ; logical(z) ], expect) -%!assert([ r ; sparse(z) ], sparse (expect)) -%!assert([ r ; sparse(logical(z)) ], sparse (expect)) +%!assert ([ r ; z ], expect) +%!assert ([ r ; single(z) ], single (expect)) +%!assert ([ r ; logical(z) ], expect) +%!assert ([ r ; sparse(z) ], sparse (expect)) +%!assert ([ r ; sparse(logical(z)) ], sparse (expect)) -%!assert([ r ; int8(z) ], int8(expect)) -%!assert([ r ; int16(z) ], int16(expect)) -%!assert([ r ; int32(z) ], int32(expect)) -%!assert([ r ; int64(z) ], int64(expect)) -%!assert([ r ; uint8(z) ], uint8(expect)) -%!assert([ r ; uint16(z) ], uint16(expect)) -%!assert([ r ; uint32(z) ], uint32(expect)) -%!assert([ r ; uint64(z) ], uint64(expect)) +%!assert ([ r ; int8(z) ], int8(expect)) +%!assert ([ r ; int16(z) ], int16(expect)) +%!assert ([ r ; int32(z) ], int32(expect)) +%!assert ([ r ; int64(z) ], int64(expect)) +%!assert ([ r ; uint8(z) ], uint8(expect)) +%!assert ([ r ; uint16(z) ], uint16(expect)) +%!assert ([ r ; uint32(z) ], uint32(expect)) +%!assert ([ r ; uint64(z) ], uint64(expect))
--- a/test/test_recursion.m +++ b/test/test_recursion.m @@ -24,8 +24,9 @@ %! else %! y = x * f (x-1); %! endif -%!test -%! assert(f (5),120); +%!endfunction +%! +%!assert(f (5), 120); %% test/octave.test/recursion/recursion-2.m %!function y = f (x) @@ -35,6 +36,8 @@ %! else %! y = f (x-1) * x; %! endif -%!test -%! assert(f (5),120); +%!endfunction +%! +%!assert(f (5), 120); +%%FIXME: Need test for maximum recursion depth
--- a/test/test_return.m +++ b/test/test_return.m @@ -19,9 +19,11 @@ %% test/octave.test/return/return-1.m %!function y = f () %! y = 1; -%! return +%! return; %! y = 2; -%!assert(f(),1) +%!endfunction +%! +%!assert(f(), 1) %% test/octave.test/return/return-2.m %!test
--- a/test/test_slice.m +++ b/test/test_slice.m @@ -16,8 +16,8 @@ ## along with Octave; see the file COPYING. If not, see ## <http://www.gnu.org/licenses/>. -%!function x = set_slice(size, dim, slice) -%! x = ones(size); +%!function x = set_slice (size, dim, slice) +%! x = ones (size); %! switch dim %! case 11 %! x(slice) = 2; @@ -34,147 +34,147 @@ %! otherwise %! error("invalid dim, '%d'", dim); %! endswitch -%! endfunction +%!endfunction ## size = [2 0] -%!assert(set_slice([2 0], 11, []), zeros([2 0])); -%!error id=Octave:invalid-resize set_slice([2 0], 11, 1) -%!error id=Octave:invalid-resize set_slice([2 0], 11, 2) -%!error id=Octave:invalid-resize set_slice([2 0], 11, 3) -%!assert(set_slice([2 0], 21, []), zeros([2 0])); -%!assert(set_slice([2 0], 21, 1), zeros([2 0])); -%!assert(set_slice([2 0], 21, 2), zeros([2 0])); -%!assert(set_slice([2 0], 21, 3), zeros([3 0])); -%!assert(set_slice([2 0], 22, []), zeros([2 0])); -%!assert(set_slice([2 0], 22, 1), [2 2]'); -%!assert(set_slice([2 0], 22, 2), [0 0;2 2]'); -%!assert(set_slice([2 0], 22, 3), [0 0;0 0;2 2]'); -%!assert(set_slice([2 0], 31, []), zeros([2 0])); -%!assert(set_slice([2 0], 31, 1), zeros([2 0])); -%!assert(set_slice([2 0], 31, 2), zeros([2 0])); -%!assert(set_slice([2 0], 31, 3), zeros([3 0])); -%!assert(set_slice([2 0], 32, []), zeros([2 0])); -%!assert(set_slice([2 0], 32, 1), [2 2]'); -%!assert(set_slice([2 0], 32, 2), [0 0;2 2]'); -%!assert(set_slice([2 0], 32, 3), [0 0;0 0;2 2]'); -%!assert(set_slice([2 0], 33, []), zeros([2 0])); -%!assert(set_slice([2 0], 33, 1), zeros([2 0])); -%!assert(set_slice([2 0], 33, 2), zeros([2 0 2])); -%!assert(set_slice([2 0], 33, 3), zeros([2 0 3])); +%!assert (set_slice ([2 0], 11, []), zeros ([2 0])) +%!error id=Octave:invalid-resize set_slice ([2 0], 11, 1) +%!error id=Octave:invalid-resize set_slice ([2 0], 11, 2) +%!error id=Octave:invalid-resize set_slice ([2 0], 11, 3) +%!assert (set_slice ([2 0], 21, []), zeros ([2 0])) +%!assert (set_slice ([2 0], 21, 1), zeros ([2 0])) +%!assert (set_slice ([2 0], 21, 2), zeros ([2 0])) +%!assert (set_slice ([2 0], 21, 3), zeros ([3 0])) +%!assert (set_slice ([2 0], 22, []), zeros ([2 0])) +%!assert (set_slice ([2 0], 22, 1), [2 2]') +%!assert (set_slice ([2 0], 22, 2), [0 0;2 2]') +%!assert (set_slice ([2 0], 22, 3), [0 0;0 0;2 2]') +%!assert (set_slice ([2 0], 31, []), zeros ([2 0])) +%!assert (set_slice ([2 0], 31, 1), zeros ([2 0])) +%!assert (set_slice ([2 0], 31, 2), zeros ([2 0])) +%!assert (set_slice ([2 0], 31, 3), zeros ([3 0])) +%!assert (set_slice ([2 0], 32, []), zeros ([2 0])) +%!assert (set_slice ([2 0], 32, 1), [2 2]') +%!assert (set_slice ([2 0], 32, 2), [0 0;2 2]') +%!assert (set_slice ([2 0], 32, 3), [0 0;0 0;2 2]') +%!assert (set_slice ([2 0], 33, []), zeros ([2 0])) +%!assert (set_slice ([2 0], 33, 1), zeros ([2 0])) +%!assert (set_slice ([2 0], 33, 2), zeros ([2 0 2])) +%!assert (set_slice ([2 0], 33, 3), zeros ([2 0 3])) ## size = [0 2] -%!assert(set_slice([0 2], 11, []), zeros([0 2])); -%!assert(set_slice([0 2], 11, 1), 2); -%!assert(set_slice([0 2], 11, 2), [0, 2]); -%!assert(set_slice([0 2], 11, 3), [0, 0, 2]); -%!assert(set_slice([0 2], 21, []), zeros([0 2])); -%!assert(set_slice([0 2], 21, 1), [2 2]); -%!assert(set_slice([0 2], 21, 2), [0 0;2 2]); -%!assert(set_slice([0 2], 21, 3), [0 0;0 0;2 2]); -%!assert(set_slice([0 2], 22, []), zeros([0 2])); -%!assert(set_slice([0 2], 22, 1), zeros([0 2])); -%!assert(set_slice([0 2], 22, 2), zeros([0 2])); -%!assert(set_slice([0 2], 22, 3), zeros([0 3])); -%!assert(set_slice([0 2], 31, []), zeros([0 2])); -%!assert(set_slice([0 2], 31, 1), [2 2]); -%!assert(set_slice([0 2], 31, 2), [0 0;2 2]); -%!assert(set_slice([0 2], 31, 3), [0 0;0 0;2 2]); -%!assert(set_slice([0 2], 32, []), zeros([0 2])); -%!assert(set_slice([0 2], 32, 1), zeros([0 2])); -%!assert(set_slice([0 2], 32, 2), zeros([0 2])); -%!assert(set_slice([0 2], 32, 3), zeros([0 3])); -%!assert(set_slice([0 2], 33, []), zeros([0 2])); -%!assert(set_slice([0 2], 33, 1), zeros([0 2])); -%!assert(set_slice([0 2], 33, 2), zeros([0 2 2])); -%!assert(set_slice([0 2], 33, 3), zeros([0 2 3])); +%!assert (set_slice ([0 2], 11, []), zeros ([0 2])) +%!assert (set_slice ([0 2], 11, 1), 2) +%!assert (set_slice ([0 2], 11, 2), [0, 2]) +%!assert (set_slice ([0 2], 11, 3), [0, 0, 2]) +%!assert (set_slice ([0 2], 21, []), zeros ([0 2])) +%!assert (set_slice ([0 2], 21, 1), [2 2]) +%!assert (set_slice ([0 2], 21, 2), [0 0;2 2]) +%!assert (set_slice ([0 2], 21, 3), [0 0;0 0;2 2]) +%!assert (set_slice ([0 2], 22, []), zeros ([0 2])) +%!assert (set_slice ([0 2], 22, 1), zeros ([0 2])) +%!assert (set_slice ([0 2], 22, 2), zeros ([0 2])) +%!assert (set_slice ([0 2], 22, 3), zeros ([0 3])) +%!assert (set_slice ([0 2], 31, []), zeros ([0 2])) +%!assert (set_slice ([0 2], 31, 1), [2 2]) +%!assert (set_slice ([0 2], 31, 2), [0 0;2 2]) +%!assert (set_slice ([0 2], 31, 3), [0 0;0 0;2 2]) +%!assert (set_slice ([0 2], 32, []), zeros ([0 2])) +%!assert (set_slice ([0 2], 32, 1), zeros ([0 2])) +%!assert (set_slice ([0 2], 32, 2), zeros ([0 2])) +%!assert (set_slice ([0 2], 32, 3), zeros ([0 3])) +%!assert (set_slice ([0 2], 33, []), zeros ([0 2])) +%!assert (set_slice ([0 2], 33, 1), zeros ([0 2])) +%!assert (set_slice ([0 2], 33, 2), zeros ([0 2 2])) +%!assert (set_slice ([0 2], 33, 3), zeros ([0 2 3])) ## size = [2 1] -%!assert(set_slice([2 1], 11, []), ones([2 1])); -%!assert(set_slice([2 1], 11, 1), [2 1]'); -%!assert(set_slice([2 1], 11, 2), [1 2]'); -%!assert(set_slice([2 1], 11, 3), [1 1 2]'); -%!assert(set_slice([2 1], 11, 4), [1 1 0 2]'); -%!assert(set_slice([2 1], 21, []), ones([2 1])); -%!assert(set_slice([2 1], 21, 1), [2 1]'); -%!assert(set_slice([2 1], 21, 2), [1 2]'); -%!assert(set_slice([2 1], 21, 3), [1 1 2]'); -%!assert(set_slice([2 1], 21, 4), [1 1 0 2]'); -%!assert(set_slice([2 1], 22, []), ones([2 1])); -%!assert(set_slice([2 1], 22, 1), [2 2]'); -%!assert(set_slice([2 1], 22, 2), [1 1;2 2]'); -%!assert(set_slice([2 1], 22, 3), [1 1;0 0;2 2]'); -%!assert(set_slice([2 1], 31, []), ones([2 1])); -%!assert(set_slice([2 1], 31, 1), [2 1]'); -%!assert(set_slice([2 1], 31, 2), [1 2]'); -%!assert(set_slice([2 1], 31, 3), [1 1 2]'); -%!assert(set_slice([2 1], 31, 4), [1 1 0 2]'); -%!assert(set_slice([2 1], 32, []), ones([2 1])); -%!assert(set_slice([2 1], 32, 1), [2 2]'); -%!assert(set_slice([2 1], 32, 2), [1 1;2 2]'); -%!assert(set_slice([2 1], 32, 3), [1 1;0 0;2 2]'); -%!assert(set_slice([2 1], 33, []), ones([2 1])); -%!assert(set_slice([2 1], 33, 1), [2 2]'); -%!assert(set_slice([2 1], 33, 2), reshape([1 1 2 2],[2 1 2])); -%!assert(set_slice([2 1], 33, 3), reshape([1 1 0 0 2 2],[2 1 3])); +%!assert (set_slice ([2 1], 11, []), ones ([2 1])) +%!assert (set_slice ([2 1], 11, 1), [2 1]') +%!assert (set_slice ([2 1], 11, 2), [1 2]') +%!assert (set_slice ([2 1], 11, 3), [1 1 2]') +%!assert (set_slice ([2 1], 11, 4), [1 1 0 2]') +%!assert (set_slice ([2 1], 21, []), ones ([2 1])) +%!assert (set_slice ([2 1], 21, 1), [2 1]') +%!assert (set_slice ([2 1], 21, 2), [1 2]') +%!assert (set_slice ([2 1], 21, 3), [1 1 2]') +%!assert (set_slice ([2 1], 21, 4), [1 1 0 2]') +%!assert (set_slice ([2 1], 22, []), ones ([2 1])) +%!assert (set_slice ([2 1], 22, 1), [2 2]') +%!assert (set_slice ([2 1], 22, 2), [1 1;2 2]') +%!assert (set_slice ([2 1], 22, 3), [1 1;0 0;2 2]') +%!assert (set_slice ([2 1], 31, []), ones ([2 1])) +%!assert (set_slice ([2 1], 31, 1), [2 1]') +%!assert (set_slice ([2 1], 31, 2), [1 2]') +%!assert (set_slice ([2 1], 31, 3), [1 1 2]') +%!assert (set_slice ([2 1], 31, 4), [1 1 0 2]') +%!assert (set_slice ([2 1], 32, []), ones ([2 1])) +%!assert (set_slice ([2 1], 32, 1), [2 2]') +%!assert (set_slice ([2 1], 32, 2), [1 1;2 2]') +%!assert (set_slice ([2 1], 32, 3), [1 1;0 0;2 2]') +%!assert (set_slice ([2 1], 33, []), ones ([2 1])) +%!assert (set_slice ([2 1], 33, 1), [2 2]') +%!assert (set_slice ([2 1], 33, 2), reshape ([1 1 2 2],[2 1 2])) +%!assert (set_slice ([2 1], 33, 3), reshape ([1 1 0 0 2 2],[2 1 3])) ## size = [1 2] -%!assert(set_slice([1 2], 11, []), full(ones([1 2]))); -%!assert(set_slice([1 2], 11, 1), [2 1]); -%!assert(set_slice([1 2], 11, 2), [1 2]); -%!assert(set_slice([1 2], 11, 3), [1 1 2]); -%!assert(set_slice([1 2], 11, 4), [1 1 0 2]); -%!assert(set_slice([1 2], 21, []), full(ones([1 2]))); -%!assert(set_slice([1 2], 21, 1), [2 2]); -%!assert(set_slice([1 2], 21, 2), [1 1;2 2]); -%!assert(set_slice([1 2], 21, 3), [1 1;0 0;2 2]); -%!assert(set_slice([1 2], 22, []), full(ones([1 2]))); -%!assert(set_slice([1 2], 22, 1), [2 1]); -%!assert(set_slice([1 2], 22, 2), [1 2]); -%!assert(set_slice([1 2], 22, 3), [1 1 2]); -%!assert(set_slice([1 2], 22, 4), [1 1 0 2]); -%!assert(set_slice([1 2], 31, []), full(ones([1 2]))); -%!assert(set_slice([1 2], 31, 1), [2 2]); -%!assert(set_slice([1 2], 31, 2), [1 1;2 2]); -%!assert(set_slice([1 2], 31, 3), [1 1;0 0;2 2]); -%!assert(set_slice([1 2], 32, []), full(ones([1 2]))); -%!assert(set_slice([1 2], 32, 1), [2 1]); -%!assert(set_slice([1 2], 32, 2), [1 2]); -%!assert(set_slice([1 2], 32, 3), [1 1 2]); -%!assert(set_slice([1 2], 32, 4), [1 1 0 2]); -%!assert(set_slice([1 2], 33, []), full(ones([1 2]))); -%!assert(set_slice([1 2], 33, 1), [2 2]); -%!assert(set_slice([1 2], 33, 2), reshape([1 1 2 2],[1 2 2])); -%!assert(set_slice([1 2], 33, 3), reshape([1 1 0 0 2 2],[1 2 3])); +%!assert (set_slice ([1 2], 11, []), full (ones ([1 2]))) +%!assert (set_slice ([1 2], 11, 1), [2 1]) +%!assert (set_slice ([1 2], 11, 2), [1 2]) +%!assert (set_slice ([1 2], 11, 3), [1 1 2]) +%!assert (set_slice ([1 2], 11, 4), [1 1 0 2]) +%!assert (set_slice ([1 2], 21, []), full (ones ([1 2]))) +%!assert (set_slice ([1 2], 21, 1), [2 2]) +%!assert (set_slice ([1 2], 21, 2), [1 1;2 2]) +%!assert (set_slice ([1 2], 21, 3), [1 1;0 0;2 2]) +%!assert (set_slice ([1 2], 22, []), full (ones ([1 2]))) +%!assert (set_slice ([1 2], 22, 1), [2 1]) +%!assert (set_slice ([1 2], 22, 2), [1 2]) +%!assert (set_slice ([1 2], 22, 3), [1 1 2]) +%!assert (set_slice ([1 2], 22, 4), [1 1 0 2]) +%!assert (set_slice ([1 2], 31, []), full (ones ([1 2]))) +%!assert (set_slice ([1 2], 31, 1), [2 2]) +%!assert (set_slice ([1 2], 31, 2), [1 1;2 2]) +%!assert (set_slice ([1 2], 31, 3), [1 1;0 0;2 2]) +%!assert (set_slice ([1 2], 32, []), full (ones ([1 2]))) +%!assert (set_slice ([1 2], 32, 1), [2 1]) +%!assert (set_slice ([1 2], 32, 2), [1 2]) +%!assert (set_slice ([1 2], 32, 3), [1 1 2]) +%!assert (set_slice ([1 2], 32, 4), [1 1 0 2]) +%!assert (set_slice ([1 2], 33, []), full (ones ([1 2]))) +%!assert (set_slice ([1 2], 33, 1), [2 2]) +%!assert (set_slice ([1 2], 33, 2), reshape ([1 1 2 2],[1 2 2])) +%!assert (set_slice ([1 2], 33, 3), reshape ([1 1 0 0 2 2],[1 2 3])) ## size = [2 2] -%!assert(set_slice([2 2], 11, []), ones([2 2])); -%!assert(set_slice([2 2], 11, 1), [2 1;1 1]); -%!assert(set_slice([2 2], 11, 2), [1 1;2 1]); -%!assert(set_slice([2 2], 11, 3), [1 2;1 1]); -%!assert(set_slice([2 2], 11, 4), [1 1;1 2]); -%!error id=Octave:invalid-resize set_slice([2 2], 11, 5) -%!error id=Octave:invalid-resize set_slice([2 2], 11, 6) -%!assert(set_slice([2 2], 21, []), ones([2 2])); -%!assert(set_slice([2 2], 21, 1), [2 2;1 1]); -%!assert(set_slice([2 2], 21, 2), [1 1;2 2]); -%!assert(set_slice([2 2], 21, 3), [1 1;1 1;2 2]); -%!assert(set_slice([2 2], 21, 4), [1 1;1 1;0 0;2 2]); -%!assert(set_slice([2 2], 22, []), ones([2 2])); -%!assert(set_slice([2 2], 22, 1), [2 2;1 1]'); -%!assert(set_slice([2 2], 22, 2), [1 1;2 2]'); -%!assert(set_slice([2 2], 22, 3), [1 1;1 1;2 2]'); -%!assert(set_slice([2 2], 22, 4), [1 1;1 1;0 0;2 2]'); -%!assert(set_slice([2 2], 31, []), ones([2 2])); -%!assert(set_slice([2 2], 31, 1), [2 2;1 1]); -%!assert(set_slice([2 2], 31, 2), [1 1;2 2]); -%!assert(set_slice([2 2], 31, 3), [1 1;1 1;2 2]); -%!assert(set_slice([2 2], 31, 4), [1 1;1 1;0 0;2 2]); -%!assert(set_slice([2 2], 32, []), ones([2 2])); -%!assert(set_slice([2 2], 32, 1), [2 2;1 1]'); -%!assert(set_slice([2 2], 32, 2), [1 1;2 2]'); -%!assert(set_slice([2 2], 32, 3), [1 1;1 1;2 2]'); -%!assert(set_slice([2 2], 32, 4), [1 1;1 1;0 0;2 2]'); -%!assert(set_slice([2 2], 33, []), ones([2 2])); -%!assert(set_slice([2 2], 33, 1), [2 2;2 2]); -%!assert(set_slice([2 2], 33, 2), reshape([1 1 1 1 2 2 2 2],[2 2 2])); -%!assert(set_slice([2 2], 33, 3), reshape([1 1 1 1 0 0 0 0 2 2 2 2],[2 2 3])); +%!assert (set_slice ([2 2], 11, []), ones ([2 2])) +%!assert (set_slice ([2 2], 11, 1), [2 1;1 1]) +%!assert (set_slice ([2 2], 11, 2), [1 1;2 1]) +%!assert (set_slice ([2 2], 11, 3), [1 2;1 1]) +%!assert (set_slice ([2 2], 11, 4), [1 1;1 2]) +%!error id=Octave:invalid-resize set_slice ([2 2], 11, 5) +%!error id=Octave:invalid-resize set_slice ([2 2], 11, 6) +%!assert (set_slice ([2 2], 21, []), ones ([2 2])) +%!assert (set_slice ([2 2], 21, 1), [2 2;1 1]) +%!assert (set_slice ([2 2], 21, 2), [1 1;2 2]) +%!assert (set_slice ([2 2], 21, 3), [1 1;1 1;2 2]) +%!assert (set_slice ([2 2], 21, 4), [1 1;1 1;0 0;2 2]) +%!assert (set_slice ([2 2], 22, []), ones ([2 2])) +%!assert (set_slice ([2 2], 22, 1), [2 2;1 1]') +%!assert (set_slice ([2 2], 22, 2), [1 1;2 2]') +%!assert (set_slice ([ 2 2], 22, 3), [1 1;1 1;2 2]') +%!assert (set_slice ([2 2], 22, 4), [1 1;1 1;0 0;2 2]') +%!assert (set_slice ([2 2], 31, []), ones ([2 2])) +%!assert (set_slice ([2 2], 31, 1), [2 2;1 1]) +%!assert (set_slice ([2 2], 31, 2), [1 1;2 2]) +%!assert (set_slice ( [2 2], 31, 3), [1 1;1 1;2 2]) +%!assert (set_slice ([2 2], 31, 4), [1 1;1 1;0 0;2 2]) +%!assert (set_slice ([2 2], 32, []), ones ([2 2])) +%!assert (set_slice ([2 2], 32, 1), [2 2;1 1]') +%!assert (set_slice ([2 2], 32, 2), [1 1;2 2]') +%!assert (set_slice ([ 2 2], 32, 3), [1 1;1 1;2 2]') +%!assert (set_slice ([2 2], 32, 4), [1 1;1 1;0 0;2 2]') +%!assert (set_slice ([2 2], 33, []), ones ([2 2])) +%!assert (set_slice ([2 2], 33, 1), [2 2;2 2]) +%!assert (set_slice ([2 2], 33, 2), reshape ([1 1 1 1 2 2 2 2],[2 2 2])) +%!assert (set_slice ([ 2 2], 33, 3), reshape ([1 1 1 1 0 0 0 0 2 2 2 2],[2 2 3]))
--- a/test/test_struct.m +++ b/test/test_struct.m @@ -20,13 +20,13 @@ %!test %! s.a = 1; %! c = fieldnames (s); -%! assert(iscell (c) && strcmp (c{1}, "a")); +%! assert (iscell (c) && strcmp (c{1}, "a")); %% test/octave.test/struct/fieldnames-2.m %!test %! s.a.b = 1; %! c = fieldnames (s.a); -%! assert(iscell (c) && strcmp (c{1}, "b")); +%! assert (iscell (c) && strcmp (c{1}, "b")); %% test/octave.test/struct/fieldnames-3.m %!error <Invalid call to fieldnames> fieldnames (); @@ -34,7 +34,7 @@ %% test/octave.test/struct/fieldnames-4.m %!test %! s.a = 1; -%! fail("fieldnames (s, 1)","Invalid call to fieldnames.*"); +%! fail ("fieldnames (s, 1)", "Invalid call to fieldnames"); %% test/octave.test/struct/fieldnames-5.m %!error fieldnames (1); @@ -43,13 +43,13 @@ %!test %! s.aaa = 1; %! s.a = 2; -%! assert(isfield (s, "a")); +%! assert (isfield (s, "a")); %% test/octave.test/struct/isfield-2.m %!test %! s.aaa = 1; %! s.a = 2; -%! assert(!(isfield (s, "b"))); +%! assert (!(isfield (s, "b"))); %% test/octave.test/struct/isfield-3.m %!error <Invalid call to isfield> isfield (); @@ -58,46 +58,48 @@ %!test %! s.aaa = 1; %! s.a = 2; -%! fail("isfield (s, 'a', 3);","Invalid call to isfield.*"); +%! fail ("isfield (s, 'a', 3);", "Invalid call to isfield"); %% test/octave.test/struct/isfield-5.m -%!assert(isfield (1, "m") == 0); +%!assert (isfield (1, "m") == 0); %% test/octave.test/struct/isfield-6.m %!test %! s.a = 2; -%! assert(isfield (s, 2) == 0); +%! assert (isfield (s, 2) == 0); %% test/octave.test/struct/isstruct-1.m -%!assert(!(isstruct (1))); +%!assert (!(isstruct (1))) %% test/octave.test/struct/isstruct-2.m -%!assert(!(isstruct ([1, 2]))); +%!assert (!(isstruct ([1, 2]))) %% test/octave.test/struct/isstruct-3.m -%!assert(!(isstruct ([]))); +%!assert (!(isstruct ([]))) %% test/octave.test/struct/isstruct-4.m -%!assert(!(isstruct ([1, 2; 3, 4]))); +%!assert (!(isstruct ([1, 2; 3, 4]))) %% test/octave.test/struct/isstruct-5.m -%!assert(!(isstruct ("t"))); +%!assert (!(isstruct ("t"))) %% test/octave.test/struct/isstruct-6.m -%!assert(!(isstruct ("test"))); +%!assert (!(isstruct ("test"))) %% test/octave.test/struct/isstruct-7.m -%!assert(!(isstruct (["test"; "ing"]))); +%!assert (!(isstruct (["test"; "ing"]))) + +%!assert (!(isstruct ({1}))) %% test/octave.test/struct/isstruct-8.m %!test %! s.a = 1; -%! assert(isstruct (s)); +%! assert (isstruct (s)); %% test/octave.test/struct/isstruct-9.m %!test %! s.a.b = 1; -%! assert(isstruct (s.a)); +%! assert (isstruct (s.a)); %% test/octave.test/struct/isstruct-10.m %!error <Invalid call to isstruct> isstruct (); @@ -105,160 +107,160 @@ %% test/octave.test/struct/isstruct-11.m %!test %! s.a = 1; -%! fail("isstruct (s, 1)","Invalid call to isstruct.*"); +%! fail ("isstruct (s, 1)", "Invalid call to isstruct"); ## increment element of matrix stored in struct array field %!test -%! a = struct("c", {[1, 2, 3], [4, 5, 6], [7, 8, 9]}); -%! a(2).c(3)++; -%! assert(a(2).c, [4, 5, 7]); +%! a = struct ("c", {[1, 2, 3], [4, 5, 6], [7, 8, 9]}); +%! a(2).c(3)++; +%! assert (a(2).c, [4, 5, 7]); ## create struct array by assignment to cs-list %!test -%! [a(1:2).x] = deal (1, 3); -%! assert(a, struct("x", {1, 3})); -%! assert({a(1:2).x}, {1, 3}); +%! [a(1:2).x] = deal (1, 3); +%! assert (a, struct ("x", {1, 3})); +%! assert ({a(1:2).x}, {1, 3}); ## assign to subrange of struct array field %!test -%! b = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 100); -%! [b(1:2, [1,3]).name] = deal("aaa", "ddd", "ccc", "fff"); -%! assert ({b.name}, {"aaa", "ddd", "b", "e", "ccc", "fff"}); +%! b = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 100); +%! [b(1:2, [1,3]).name] = deal ("aaa", "ddd", "ccc", "fff"); +%! assert ({b.name}, {"aaa", "ddd", "b", "e", "ccc", "fff"}); ## index into nested struct arrays %!test -%! a = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 0); -%! a(2).value = a; -%! assert (a(2).value(2,3).name, "f"); +%! a = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 0); +%! a(2).value = a; +%! assert (a(2).value(2,3).name, "f"); ## assign to subrange of field in nested struct array %!test -%! b = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 0); -%! b(3, 1).value = b; -%! [b(3, 1).value(1, [1, 3]).name] = deal ("aaa", "ccc"); -%! assert (size (b), [3, 3]); -%! assert (b(3,1).value(1, 3).name, "ccc"); +%! b = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 0); +%! b(3, 1).value = b; +%! [b(3, 1).value(1, [1, 3]).name] = deal ("aaa", "ccc"); +%! assert (size (b), [3, 3]); +%! assert (b(3,1).value(1, 3).name, "ccc"); -## test 4 dimensional struct array +## test 4-dimensional struct array %!test -%! c(4, 4, 4, 4).name = "a"; -%! c(3, 3, 3, 3).value = 1; -%! assert (c(2,2,2,2), struct ("name", [], "value", [])); +%! c(4, 4, 4, 4).name = "a"; +%! c(3, 3, 3, 3).value = 1; +%! assert (c(2,2,2,2), struct ("name", [], "value", [])); -## assign to subrange of field in 4d struct array +## assign to subrange of field in 4D struct array %!test -%! c(4, 4, 4, 4).name = "a"; -%! c(3, 3, 3, 3).value = 1; -%! [c([1, 3], 2, :, [3, 4]).value] = deal (1); -%! assert (length(find([c.value] == 1)), 17); -%! assert (length(find([c.value])), 17); +%! c(4, 4, 4, 4).name = "a"; +%! c(3, 3, 3, 3).value = 1; +%! [c([1, 3], 2, :, [3, 4]).value] = deal (1); +%! assert (length(find([c.value] == 1)), 17); +%! assert (length(find([c.value])), 17); ## swap elements of struct array %!test -%! b = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 0); -%! [b([2, 1], [3, 1]).name] = deal(b([1, 2], [1, 2]).name); -%! assert ({b.name}, {"e", "b", "b", "e", "d", "a"}); +%! b = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 0); +%! [b([2, 1], [3, 1]).name] = deal (b([1, 2], [1, 2]).name); +%! assert ({b.name}, {"e", "b", "b", "e", "d", "a"}); ## test internal ordering of struct array fields %!test -%! c(4, 4, 4, 4).value = 3; -%! c(1, 2, 3, 4).value = 2; -%! c(3, 3, 3, 3).value = 1; -%! d = reshape ({c.value}, size(c)); -%! assert ([d{4, 4, 4, 4}, d{1, 2, 3, 4}, d{3, 3, 3, 3}], -%! [3, 2, 1]); +%! c(4, 4, 4, 4).value = 3; +%! c(1, 2, 3, 4).value = 2; +%! c(3, 3, 3, 3).value = 1; +%! d = reshape ({c.value}, size(c)); +%! assert ([d{4, 4, 4, 4}, d{1, 2, 3, 4}, d{3, 3, 3, 3}], +%! [3, 2, 1]); ## test assignment to mixed cs-list of field element subranges %!test -%! b = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 100); -%! [b(1:2, [1, 3]).name, b(2, 1:3).value] = ... -%! deal (1, 2, 3, 4, "5", "6", "7"); -%! assert ({b.name}, {1, 2, "b", "e", 3, 4}); -%! assert ({b.value}, {100, "5", 100, "6", 100, "7"}); +%! b = struct ("name", {"a", "b", "c"; "d", "e", "f"}, "value", 100); +%! [b(1:2, [1, 3]).name, b(2, 1:3).value] = ... +%! deal (1, 2, 3, 4, "5", "6", "7"); +%! assert ({b.name}, {1, 2, "b", "e", 3, 4}); +%! assert ({b.value}, {100, "5", 100, "6", 100, "7"}); %!error <a cs-list cannot be further indexed> -%! [a(1:3).x] = deal ([1, 5], [3, 7], [8, 9]); -%! [a(2:3).x(2)] = deal (10, 11); +%! [a(1:3).x] = deal ([1, 5], [3, 7], [8, 9]); +%! [a(2:3).x(2)] = deal (10, 11); %!error <a cs-list cannot be further indexed> -%! [a(1:3).x] = deal ([1, 5], [3, 7], [8, 9]); -%! a(2:3).x(2); +%! [a(1:3).x] = deal ([1, 5], [3, 7], [8, 9]); +%! a(2:3).x(2); %!error id=Octave:index-out-of-bounds -%! a(1).x.x = 1; -%! a(2).x; +%! a(1).x.x = 1; +%! a(2).x; %!error <invalid number of output arguments for constant expression> -%! a = struct ("value", {1, 2, 3, 4, 5}); -%! [a(2:4).value] = 1; +%! a = struct ("value", {1, 2, 3, 4, 5}); +%! [a(2:4).value] = 1; %!error <invalid assignment to cs-list outside multiple assignment> -%! c(4, 4, 4, 4).name = "a"; -%! c(3, 3, 3, 3).value = 1; -%! c([1, 3], 2, :, [3, 4]).value = 1; +%! c(4, 4, 4, 4).name = "a"; +%! c(3, 3, 3, 3).value = 1; +%! c([1, 3], 2, :, [3, 4]).value = 1; ## test lazy copying in structs: nested assignment to self %!test -%! a.a = 1; -%! a.b = a; -%! a.b.c = a; -%! assert (a.b.c.b, struct ("a", 1)); +%! a.a = 1; +%! a.b = a; +%! a.b.c = a; +%! assert (a.b.c.b, struct ("a", 1)); ## test lazy copying in structs: indirect nested assignment to self %!test -%! a.a = 1; -%! a.b = 2; -%! b.c = a; -%! b.d = 3; -%! c.d = b; -%! c.e = 4; -%! a.b = c; -%! a.b.e = a; -%! assert (a.b.e.b.d.c, struct ("a", 1, "b", 2)); +%! a.a = 1; +%! a.b = 2; +%! b.c = a; +%! b.d = 3; +%! c.d = b; +%! c.e = 4; +%! a.b = c; +%! a.b.e = a; +%! assert (a.b.e.b.d.c, struct ("a", 1, "b", 2)); ## test lazy copying in structs: nested assignment via function %!function aa = do_nest (a); %! aa = a; %! aa.b = a; -%! endfunction +%!endfunction %!test -%! a.c = 1; -%! a = do_nest (a); -%! a = do_nest (a); -%! a = do_nest (a); -%! assert (a.b.b.b, struct ("c", 1)); +%! a.c = 1; +%! a = do_nest (a); +%! a = do_nest (a); +%! a = do_nest (a); +%! assert (a.b.b.b, struct ("c", 1)); ## test lazy copying in structs: nested assignment via function %!function aa = do_nest (a); %! aa = a; %! aa.b = a; %! aa.b.c = aa; -%! endfunction +%!endfunction %!test -%! a.c = 1; -%! a = do_nest (a); -%! a = do_nest (a); -%! a = do_nest (a); -%! assert (a.b.c.b.b.c.b.b.c.b, struct ("c", 1)); +%! a.c = 1; +%! a = do_nest (a); +%! a = do_nest (a); +%! a = do_nest (a); +%! assert (a.b.c.b.b.c.b.b.c.b, struct ("c", 1)); ## test lazy copying in structs: nested assignment on different levels. %!test -%! a.b = 1; -%! b.c = a; -%! b.d.e = a; -%! b.f.g.h = a; -%! b.i.j.k.l = a; -%! a.m = b; -%! a.m.c.b = a; -%! assert (a.m.c.b.m.i.j.k.l, struct ("b", 1)); +%! a.b = 1; +%! b.c = a; +%! b.d.e = a; +%! b.f.g.h = a; +%! b.i.j.k.l = a; +%! a.m = b; +%! a.m.c.b = a; +%! assert (a.m.c.b.m.i.j.k.l, struct ("b", 1)); ## test indexed assignment into empty struct array %!test -%! s = resize(struct(),3,2); -%! s(3).foo = 42; -%! assert (s(3), struct ("foo", 42)); +%! s = resize (struct (), 3,2); +%! s(3).foo = 42; +%! assert (s(3), struct ("foo", 42)); %!error id=Octave:index-out-of-bounds -%! s = resize(struct(),3,2); -%! s(3).foo = 42; -%! s(7); +%! s = resize (struct (),3,2); +%! s(3).foo = 42; +%! s(7);
--- a/test/test_switch.m +++ b/test/test_switch.m @@ -27,7 +27,7 @@ %! switch 2 case 1 z = a; case 2 z = b; otherwise z = c; endswitch %! switch 3 case 1 p = a; case 2 p = b; otherwise p = c; endswitch %! -%! assert(x == c && y == a && z == b && p == c); +%! assert (x == c && y == a && z == b && p == c); %% test/octave.test/switch/switch-2.m %!test @@ -41,17 +41,17 @@ %! %! for i = 0:3 %! switch (i) -%! case a -%! x(k) = a; -%! case b -%! x(k) = b; -%! otherwise -%! x(k) = c; -%! endswitch -%! k++; +%! case a +%! x(k) = a; +%! case b +%! x(k) = b; +%! otherwise +%! x(k) = c; +%! endswitch +%! k++; %! endfor %! -%! assert(all (x == [3, 1, 2, 3])); +%! assert (all (x == [3, 1, 2, 3])); %% test/octave.test/switch/switch-3.m %!test @@ -64,14 +64,14 @@ %! k = 1; %! %! for i = 0:3 -%! switch (i) -%! case a -%! x(k) = a; -%! endswitch -%! k++; +%! switch (i) +%! case a +%! x(k) = a; +%! endswitch +%! k++; %! endfor %! -%! assert(all (x == [0, 1, 0, 0])); +%! assert (all (x == [0, 1, 0, 0])); %!test %! a = 1; @@ -81,15 +81,15 @@ %! a = 2; %! endswitch %! -%! assert(a == 2); +%! assert (a == 2); %% test/octave.test/switch/switch-4.m -%!error <syntax error> eval("switch endswitch"); +%!error <syntax error> eval ("switch endswitch") %% test/octave.test/switch/switch-5.m -%!error <syntax error> eval("switch case endswitch"); +%!error <syntax error> eval ("switch case endswitch") %% test/octave.test/switch/switch-6.m -%!error <syntax error> eval("switch 1 default 1; endswitch"); +%!error <syntax error> eval ("switch 1 default 1; endswitch")
--- a/test/test_system.m +++ b/test/test_system.m @@ -20,50 +20,54 @@ %!test %! [t1, u1, s1] = cputime (); %! for i = 1:200 -%! sin (i); +%! sin (i); %! endfor %! [t2, u2, s2] = cputime (); -%! assert(t1 == u1 + s1 && t2 == u2 + s2 && t2 >= t1 && u2 >= u2 && s2 >= s2); - +%! assert (t1, u1 + s1); +%! assert (t2 == u2 + s2); +%! assert (t2 >= t1); +%! assert (u2 >= u2); +%! assert (s2 >= s2); +%!#assert (t1 == u1 + s1 && t2 == u2 + s2 && t2 >= t1 && u2 >= u2 && s2 >= s2); %% test/octave.test/system/tic-toc-1.m %!test %! tic (); %! sleep (2); -%! assert(toc () > 0); +%! assert (toc () > 0); %% test/octave.test/system/pause-1.m %!test %! pause (0); %! printf_assert ("ok\n"); -%! assert(prog_output_assert("ok")); +%! assert (prog_output_assert ("ok")); %% test/octave.test/system/pause-2.m -%!error <Invalid call to pause> pause (1, 2); +%!error <Invalid call to pause> pause (1, 2) %% test/octave.test/system/sleep-1.m %!test %! sleep (0); %! printf_assert ("ok\n"); -%! assert(prog_output_assert("ok")); +%! assert (prog_output_assert ("ok")); %% test/octave.test/system/sleep-2.m -%!error <Invalid call to sleep> sleep (); +%!error <Invalid call to sleep> sleep () %% test/octave.test/system/sleep-3.m -%!error <Invalid call to sleep> sleep (1, 2); +%!error <Invalid call to sleep> sleep (1, 2) %% test/octave.test/system/usleep-1.m %!test %! usleep (0); %! printf_assert ("ok\n"); -%! assert(prog_output_assert("ok")); +%! assert (prog_output_assert ("ok")); %% test/octave.test/system/usleep-2.m -%!error <Invalid call to usleep> usleep (); +%!error <Invalid call to usleep> usleep () %% test/octave.test/system/usleep-3.m -%!error <Invalid call to usleep> usleep (1, 2); +%!error <Invalid call to usleep> usleep (1, 2) %% test/octave.test/system/rename-1.m %!test @@ -77,7 +81,7 @@ %! [s, e] = stat (from); %! if (e < 0) %! [s, e] = stat (to); -%! assert(e == 0); +%! assert (e == 0); %! unlink (to); %! endif %! endif @@ -85,10 +89,10 @@ %! endif %% test/octave.test/system/rename-2.m -%!error <Invalid call to rename> rename (); +%!error <Invalid call to rename> rename () %% test/octave.test/system/rename-3.m -%!error <Invalid call to rename> rename ("foo", "bar", 1); +%!error <Invalid call to rename> rename ("foo", "bar", 1) %% test/octave.test/system/unlink-1.m %!test @@ -97,26 +101,26 @@ %! [s, err] = stat (nm); %! if (! err && fclose (id) == 0 && unlink (nm) == 0) %! [s, err] = stat (nm); -%! assert(err < 0); +%! assert (err < 0); %! endif %! endif %% test/octave.test/system/unlink-2.m -%!error <Invalid call to unlink> unlink (); +%!error <Invalid call to unlink> unlink () %% test/octave.test/system/unlink-3.m -%!error <Invalid call to unlink> unlink ("foo", 1); +%!error <Invalid call to unlink> unlink ("foo", 1) %% test/octave.test/system/readdir-1.m %!test %! [files, status, msg] = readdir (filesep); -%! assert(iscell (files) && status == 0 && strcmp (msg, "")); +%! assert (iscell (files) && status == 0 && strcmp (msg, "")); %% test/octave.test/system/readdir-2.m -%!error <Invalid call to readdir> readdir (); +%!error <Invalid call to readdir> readdir () %% test/octave.test/system/readdir-3.m -%!error <Invalid call to readdir> readdir ("foo", 1); +%!error <Invalid call to readdir> readdir ("foo", 1) %% test/octave.test/system/mk-rm-dir-1.m %!test @@ -125,28 +129,27 @@ %! [s2, e2] = stat (nm); %! e3 = rmdir (nm); %! [s4, e4] = stat (nm); -%! assert((e1 && strcmp (s2.modestr(1), "d") && e3 && e4 < 0)); +%! assert ((e1 && strcmp (s2.modestr(1), "d") && e3 && e4 < 0)); %% test/octave.test/system/mkdir-1.m -%!error <Invalid call to mkdir> mkdir (); +%!error <Invalid call to mkdir> mkdir () %% test/octave.test/system/mkdir-2.m -%!error <Invalid call to mkdir> mkdir ("foo", 1, 2); +%!error <Invalid call to mkdir> mkdir ("foo", 1, 2) %% test/octave.test/system/rmdir-1.m -%!error <Invalid call to rmdir> rmdir (); +%!error <Invalid call to rmdir> rmdir () %% test/octave.test/system/rmdir-2.m %!test %! crr = confirm_recursive_rmdir (); %! confirm_recursive_rmdir (0); -%! assert(!rmdir ("foo", "s")); +%! assert (!rmdir ("foo", "s")); %! confirm_recursive_rmdir (crr); -%% FIXME This test messes up the path it seems!! Why? %% test/octave.test/system/umask-1.m -%!#test -%! umask (0); +%!test +%! orig_umask = umask (0); %! nm = tmpnam (); %! id = fopen (nm, "wb"); %! s1 = stat (nm); @@ -160,18 +163,21 @@ %! fclose (id); %! unlink (nm); %! -%! assert(strcmp (s1.modestr, "-rw-rw-rw-") && strcmp (s2.modestr, "----------")); +%! assert (deblank (s1.modestr), "-rw-rw-rw-"); +%! assert (deblank (s2.modestr), "----------"); +%! # Restore original umask value +%! umask (orig_umask); %% test/octave.test/system/umask-2.m -%!error <Invalid call to umask> umask (); +%!error <Invalid call to umask> umask () %% test/octave.test/system/umask-3.m -%!error <Invalid call to umask> umask (1, 2); +%!error <Invalid call to umask> umask (1, 2) %% test/octave.test/system/stat-1.m %!test %! [s, err, msg] = stat (filesep); -%! assert((err == 0 +%! assert ((err == 0 %! && isstruct (s) %! && isfield (s, "dev") %! && isfield (s, "ino") @@ -186,15 +192,15 @@ %! && ischar (msg))); %% test/octave.test/system/stat-2.m -%!error <Invalid call to stat> stat (); +%!error <Invalid call to stat> stat () %% test/octave.test/system/stat-3.m -%!error <Invalid call to stat> stat ("foo", 1); +%!error <Invalid call to stat> stat ("foo", 1) %% test/octave.test/system/lstat-1.m %!test %! [s, err, msg] = lstat (filesep); -%! assert((err == 0 +%! assert ((err == 0 %! && isstruct (s) %! && isfield (s, "dev") %! && isfield (s, "ino") @@ -209,136 +215,136 @@ %! && ischar (msg))); %% test/octave.test/system/lstat-2.m -%!error <Invalid call to lstat> lstat (); +%!error <Invalid call to lstat> lstat () %% test/octave.test/system/lstat-3.m -%!error <Invalid call to lstat> lstat ("foo", 1); +%!error <Invalid call to lstat> lstat ("foo", 1) %% test/octave.test/system/glob-1.m -%!assert(iscell (glob ([filesep "*"]))); +%!assert (iscell (glob ([filesep "*"]))) %% test/octave.test/system/glob-2.m -%!error <Invalid call to glob*> glob (); +%!error <Invalid call to glob> glob () %% test/octave.test/system/glob-3.m -%!error <Invalid call to glob> glob ("foo", 1); +%!error <Invalid call to glob> glob ("foo", 1) %% test/octave.test/system/fnmatch-1.m %!test %! string_fill_char = setstr (0); -%! assert((fnmatch ("a*a", {"aba"; "xxxba"; "aa"}) == [1; 0; 1] +%! assert ((fnmatch ("a*a", {"aba"; "xxxba"; "aa"}) == [1; 0; 1] %! && fnmatch ({"a*a"; "b*b"}, "bob") %! && fnmatch ("x[0-5]*", {"x1"; "x6"}) == [1; 0] %! && fnmatch ("x[0-5]*", {"x1"; "x6"; "x001"}) == [1; 0; 1] %! && fnmatch ("x???y", {"xabcy"; "xy"}) == [1; 0])); %% test/octave.test/system/fnmatch-2.m -%!error <Invalid call to fnmatch> fnmatch (); +%!error <Invalid call to fnmatch> fnmatch () %% test/octave.test/system/fnmatch-3.m -%!error <Invalid call to fnmatch> fnmatch ("foo", "bar", 3); +%!error <Invalid call to fnmatch> fnmatch ("foo", "bar", 3) %% test/octave.test/system/file_in_path-1.m -%!assert(ischar (file_in_path (path (), "date.m"))); +%!assert (ischar (file_in_path (path (), "date.m"))) %% test/octave.test/system/file_in_path-2.m -%!error <invalid option> file_in_path ("foo", "bar", 1); +%!error <invalid option> file_in_path ("foo", "bar", 1) %% test/octave.test/system/file_in_path-3.m -%!error <Invalid call to file_in_path> file_in_path (); +%!error <Invalid call to file_in_path> file_in_path () %% test/octave.test/system/file_in_path-4.m -%!error <Invalid call to file_in_path> file_in_path ("foo", "bar", "baz", "ooka"); +%!error <Invalid call to file_in_path> file_in_path ("foo", "bar", "baz", "ooka") %% test/octave.test/system/tilde_expand-1.m %!testif HAVE_GETPWUID %! x = getpwuid (getuid ()); -%! assert((strcmp (x.dir, tilde_expand ("~")) +%! assert ((strcmp (x.dir, tilde_expand ("~")) %! && strcmp (x.dir, tilde_expand (sprintf ("~%s", x.name))) %! && strcmp ("foobar", tilde_expand ("foobar")))); %% test/octave.test/system/tilde_expand-2.m -%!error <Invalid call to tilde_expand> tilde_expand (); +%!error <Invalid call to tilde_expand> tilde_expand () %% test/octave.test/system/tilde_expand-3.m -%!error <Invalid call to tilde_expand> tilde_expand ("str", 2); +%!error <Invalid call to tilde_expand> tilde_expand ("str", 2) %% test/octave.test/system/getpgrp-1.m %!testif HAVE_GETPGRP -%! assert(getpgrp () > 0); +%! assert (getpgrp () > 0); %% test/octave.test/system/getpgrp-2.m -%!error <... getpgrp> getpgrp (1); +%!error <... getpgrp> getpgrp (1) %% test/octave.test/system/getpid-1.m -%!assert(getpid () > 0); +%!assert (getpid () > 0) %% test/octave.test/system/getpid-2.m -%!error <... getpid> getpid (1); +%!error <... getpid> getpid (1) %% test/octave.test/system/getppid-1.m %!testif HAVE_GETPPID -%! assert(getppid () > 0); +%! assert (getppid () > 0); %% test/octave.test/system/getppid-2.m -%!error <... getppid> getppid (1); +%!error <... getppid> getppid (1) %% test/octave.test/system/geteuid-1.m -%!assert(geteuid () >= 0); +%!assert (geteuid () >= 0) %% test/octave.test/system/geteuid-2.m -%!error <... geteuid> geteuid (1); +%!error <... geteuid> geteuid (1) %% test/octave.test/system/getuid-1.m -%!assert(getuid () >= 0); +%!assert (getuid () >= 0) %% test/octave.test/system/getuid-2.m -%!error <... getuid> getuid (1); +%!error <... getuid> getuid (1) %% test/octave.test/system/getegid-1.m -%!assert(getegid () >= 0); +%!assert (getegid () >= 0) %% test/octave.test/system/getegid-2.m -%!error <... getegid> getegid (1); +%!error <... getegid> getegid (1) %% test/octave.test/system/getgid-1.m -%!assert(getgid () >= 0); +%!assert (getgid () >= 0) %% test/octave.test/system/getgid-2.m -%!error <... getgid> getgid (1); +%!error <... getgid> getgid (1) %% test/octave.test/system/getenv-1.m -%!assert(strcmp (getenv ("HOME"), tilde_expand ("~"))); +%!assert (getenv ("HOME"), tilde_expand ("~")) %% test/octave.test/system/getenv-2.m -%!error <Invalid call to getenv> getenv (); +%!error <Invalid call to getenv> getenv () %% test/octave.test/system/getenv-3.m -%!error <Invalid call to getenv> getenv ("foo", 1); +%!error <Invalid call to getenv> getenv ("foo", 1) %% test/octave.test/system/getenv-4.m %!test %! wns = warning ("query", "Octave:num-to-str"); %! warning ("on", "Octave:num-to-str"); -%! fail("getenv (1)","warning"); +%! fail ("getenv (1)", "warning"); %! warning (wns.state, "Octave:num-to-str"); %% test/octave.test/system/putenv-1.m %!test %! putenv ("foobar", "baz"); -%! assert(strcmp (getenv ("foobar"), "baz")); +%! assert (getenv ("foobar"), "baz"); %% test/octave.test/system/putenv-2.m -%!error <Invalid call to putenv> putenv (); +%!error <Invalid call to putenv> putenv () %% test/octave.test/system/putenv-3.m -%!error <Invalid call to putenv> putenv ("foo", "bar", 1); +%!error <Invalid call to putenv> putenv ("foo", "bar", 1) %% test/octave.test/system/putenv-4.m %!test %! wns = warning ("query", "Octave:num-to-str"); %! warning ("on", "Octave:num-to-str"); -%! fail("putenv (1, 2)","warning"); +%! fail ("putenv (1, 2)","warning"); %! warning (wns.state, "Octave:num-to-str"); %% test/octave.test/system/cd-1.m @@ -349,25 +355,25 @@ %! cd (xdir); %! if (ispc () && ! isunix ()) %! # should be a drive letter -%! assert(length (d1), 3); -%! assert(d1(2), ":"); -%! assert(d1(3), "\\"); +%! assert (length (d1), 3); +%! assert (d1(2), ":"); +%! assert (d1(3), "\\"); %! else -%! assert("/", d1); +%! assert ("/", d1); %! endif -%! assert(pwd(), xdir); +%! assert (pwd(), xdir); %% test/octave.test/system/cd-2.m -%!error cd (1); +%!error cd (1) %% test/octave.test/system/pwd-1.m -%!assert(ischar (pwd ())); +%!assert (ischar (pwd ())) %% test/octave.test/system/getpwent-1.m %!testif HAVE_GETPWENT %! s = getpwent (); %! endpwent (); -%! assert((isstruct (s) +%! assert ((isstruct (s) %! && isfield (s, "name") %! && isfield (s, "passwd") %! && isfield (s, "uid") @@ -377,33 +383,33 @@ %! && isfield (s, "shell"))); %% test/octave.test/system/getpwent-2.m -%!error <Invalid call to getpwent> getpwent (1); +%!error <Invalid call to getpwent> getpwent (1) %% test/octave.test/system/getpwuid-1.m %!testif HAVE_GETPWUID %! x = getpwent (); %! y = getpwuid (x.uid); %! endpwent (); -%! assert(strcmp (x.name, y.name) && x.uid == y.uid && x.gid == y.gid); +%! assert (strcmp (x.name, y.name) && x.uid == y.uid && x.gid == y.gid); %% test/octave.test/system/getpwuid-2.m -%!error <Invalid call to getpwuid> getpwuid (); +%!error <Invalid call to getpwuid> getpwuid () %% test/octave.test/system/getpwuid-3.m -%!error <Invalid call to getpwuid> getpwuid (1, 2); +%!error <Invalid call to getpwuid> getpwuid (1, 2) %% test/octave.test/system/getpwnam-1.m %!testif HAVE_GETPWNAM %! x = getpwent (); %! y = getpwnam (x.name); %! endpwent (); -%! assert(strcmp (x.name, y.name) && x.uid == y.uid && x.gid == y.gid); +%! assert (strcmp (x.name, y.name) && x.uid == y.uid && x.gid == y.gid); %% test/octave.test/system/getpwnam-2.m -%!error <Invalid call to getpwnam> getpwnam (); +%!error <Invalid call to getpwnam> getpwnam () %% test/octave.test/system/getpwnam-3.m -%!error <Invalid call to getpwnam> getpwnam ("foo", 1); +%!error <Invalid call to getpwnam> getpwnam ("foo", 1) %% test/octave.test/system/setpwent-1.m %!testif HAVE_SETPWENT @@ -411,52 +417,52 @@ %! setpwent (); %! y = getpwent (); %! endpwent (); -%! assert(strcmp (x.name, y.name) && x.uid == y.uid && x.gid == y.gid); +%! assert (strcmp (x.name, y.name) && x.uid == y.uid && x.gid == y.gid); %% test/octave.test/system/setpwent-2.m -%!error <Invalid call to setpwent> setpwent (1); +%!error <Invalid call to setpwent> setpwent (1) %% test/octave.test/system/endpwent-1.m -%!error <Invalid call to endpwent> endpwent (1); +%!error <Invalid call to endpwent> endpwent (1) %% test/octave.test/system/getgrent-1.m %!testif HAVE_GETGRENT %! x = getgrent (); %! endgrent (); -%! assert((isstruct (x) +%! assert ((isstruct (x) %! && isfield (x, "name") %! && isfield (x, "passwd") %! && isfield (x, "gid") %! && isfield (x, "mem"))); %% test/octave.test/system/getgrent-2.m -%!error <Invalid call to getgrent> getgrent (1); +%!error <Invalid call to getgrent> getgrent (1) %% test/octave.test/system/getgrgid-1.m %!testif HAVE_GETGRGID %! x = getgrent (); %! y = getgrgid (x.gid); %! endgrent (); -%! assert(strcmp (x.name, y.name) && x.gid == y.gid); +%! assert (strcmp (x.name, y.name) && x.gid == y.gid); %% test/octave.test/system/getgrgid-2.m -%!error <Invalid call to getgrgid> getgrgid (); +%!error <Invalid call to getgrgid> getgrgid () %% test/octave.test/system/getgrgid-3.m -%!error <Invalid call to getgrgid> getgrgid (1, 2); +%!error <Invalid call to getgrgid> getgrgid (1, 2) %% test/octave.test/system/getgrnam-1.m %!testif HAVE_GETGRNAM %! x = getgrent (); %! y = getgrnam (x.name); %! endgrent (); -%! assert(strcmp (x.name, y.name) && x.gid == y.gid); +%! assert (strcmp (x.name, y.name) && x.gid == y.gid); %% test/octave.test/system/getgrnam-2.m -%!error <Invalid call to getgrnam> getgrnam (); +%!error <Invalid call to getgrnam> getgrnam () %% test/octave.test/system/getgrnam-3.m -%!error <Invalid call to getgrnam> getgrnam ("foo", 1); +%!error <Invalid call to getgrnam> getgrnam ("foo", 1) %% test/octave.test/system/setgrent-1.m %!testif HAVE_SETGRENT @@ -464,20 +470,20 @@ %! setgrent (); %! y = getgrent (); %! endgrent (); -%! assert(strcmp (x.name, y.name) && x.gid == y.gid); +%! assert (strcmp (x.name, y.name) && x.gid == y.gid); %% test/octave.test/system/setgrent-2.m -%!error <Invalid call to setgrent> setgrent (1); +%!error <Invalid call to setgrent> setgrent (1) %% test/octave.test/system/endgrent-1.m -%!error <Invalid call to endgrent> endgrent (1); +%!error <Invalid call to endgrent> endgrent (1) %% test/octave.test/system/isieee-1.m -%!assert(isieee () == 1 || isieee () == 0); +%!assert (isieee () == 1 || isieee () == 0) %% test/octave.test/system/octave_config_info-1.m -%!assert(isstruct (octave_config_info ())); +%!assert (isstruct (octave_config_info ())) %% test/octave.test/system/getrusage-1.m -%!assert(isstruct (getrusage ())); +%!assert (isstruct (getrusage ()))
--- a/test/test_transpose.m +++ b/test/test_transpose.m @@ -16,23 +16,71 @@ ## along with Octave; see the file COPYING. If not, see ## <http://www.gnu.org/licenses/>. -%% test/octave.test/transpose/transpose-1.m +%% Basic tests %!test %! scalar = 2; -%! assert(scalar',2); +%! assert (scalar', 2); -%% test/octave.test/transpose/transpose-2.m %!test %! range = 1:4; -%! assert(range',[1;2;3;4]); +%! assert (range', [1;2;3;4]); -%% test/octave.test/transpose/transpose-3.m %!test %! vector = [1;2;3;4]; -%! assert(vector',[1,2,3,4]); +%! assert (vector', [1,2,3,4]); -%% test/octave.test/transpose/transpose-4.m %!test %! matrix = [1,2;3,4]; -%! assert(matrix',[1,3;2,4]); +%! assert (matrix', [1,3;2,4]); + +%% Basic tests on complex numbers +%!test +%! scalar = 2i; +%! assert (scalar', -2i); + +%!test +%! range = (1:4)*i; +%! assert (range', [-1i;-2i;-3i;-4i]); + +%!test +%! vector = [1;2;3;4]*i; +%! assert (vector', [-1i,-2i,-3i,-4i]); + +%!test +%! matrix = [1,2;3,4]*i; +%! assert (matrix', [-1i,-3i;-2i,-4i]); + +%% Test non-Hermitian transpose +%!test +%! scalar = 2i; +%! assert (scalar.', 2i); +%!test +%! range = (1:4)*i; +%! assert (range.', [1i;2i;3i;4i]); + +%!test +%! vector = [1;2;3;4]*i; +%! assert (vector.', [1i,2i,3i,4i]); + +%!test +%! matrix = [1,2;3,4]*i; +%! assert (matrix.', [1i,3i;2i,4i]); + +%% Basic tests on float complex numbers +%!test +%! scalar = single (2i); +%! assert (scalar', single (-2i)); + +%!test +%! range = single ((1:4)*i); +%! assert (range', single ([-1i;-2i;-3i;-4i])); + +%!test +%! vector = single ([1;2;3;4]*i); +%! assert (vector', single ([-1i,-2i,-3i,-4i])); + +%!test +%! matrix = single ([1,2;3,4]*i); +%! assert (matrix', single ([-1i,-3i;-2i,-4i])); +
--- a/test/test_try.m +++ b/test/test_try.m @@ -20,106 +20,106 @@ %!test %! try %! catch -%! error("Shoudn't get here"); +%! error ("Shoudn't get here"); %! end_try_catch %% test/octave.test/try/try-2.m %!test %! try -%! clear a +%! clear a; %! a; %! catch %! end_try_catch %! a = 1; -%! assert(a,1); +%! assert (a,1); %% test/octave.test/try/try-3.m %!test %! clear x; %! try -%! clear a +%! clear a; %! a; %! x = 1; %! catch %! end_try_catch %! a = 2; -%! assert(!exist('x')) -%! assert(a,2) +%! assert (!exist ('x')); +%! assert (a,2); %% test/octave.test/try/try-4.m %!test %! try -%! clear a +%! clear a; %! a; %! catch %! x = 1; %! end_try_catch -%! assert(exist('x')) +%! assert (exist ('x')); %% test/octave.test/try/try-5.m %!test %! try %! clear a; %! a; -%! error("Shoudn't get here"); +%! error ("Shoudn't get here"); %! catch -%! assert (strcmp(lasterr()(1:13), "`a' undefined")) +%! assert (lasterr()(1:13), "`a' undefined"); %! end_try_catch -%! assert (strcmp(lasterr()(1:13), "`a' undefined")) +%! assert (lasterr()(1:13), "`a' undefined"); %% test/octave.test/try/try-6.m %!test %! try -%! error ("user-defined error") +%! error ("user-defined error"); %! catch -%! assert(lasterr,"user-defined error"); +%! assert (lasterr, "user-defined error"); %! end_try_catch %% test/octave.test/try/try-7.m %!function ms = mangle (s) %! ## Wrap angle brackets around S. %! ms = cstrcat ("<", s, ">"); +%!endfunction %!test %! try -%! clear a +%! clear a; %! a; -%! error("Shoudn't get here"); +%! error ("Shoudn't get here"); %! catch -%! assert(strcmp(mangle (lasterr)(1:14),"<`a' undefined")) +%! assert (mangle (lasterr)(1:14), "<`a' undefined"); %! end_try_catch - %% test/octave.test/try/try-8.m %!test %! try %! try -%! clear a +%! clear a; %! a; -%! error("Shoudn't get here"); +%! error ("Shoudn't get here"); %! catch -%! assert(strcmp(lasterr()(1:13), "`a' undefined")) +%! assert (lasterr()(1:13), "`a' undefined"); %! end_try_catch -%! clear b +%! clear b; %! b; -%! error("Shoudn't get here"); +%! error ("Shoudn't get here"); %! catch -%! assert(strcmp(lasterr()(1:13), "`b' undefined")) +%! assert (lasterr()(1:13), "`b' undefined"); %! end_try_catch %% test/octave.test/try/try-9.m %!test %! try -%! clear a +%! clear a; %! a; -%! error("Shoudn't get here"); +%! error ("Shoudn't get here"); %! catch %! try -%! assert(strcmp(lasterr()(1:13), "`a' undefined")) -%! clear b +%! assert (lasterr()(1:13), "`a' undefined"); +%! clear b; %! b; -%! error("Shoudn't get here"); +%! error ("Shoudn't get here"); %! catch -%! assert(strcmp(lasterr()(1:13), "`b' undefined")) +%! assert (lasterr()(1:13), "`b' undefined"); %! end_try_catch %! end_try_catch @@ -127,13 +127,13 @@ %!test %! try %! try -%! clear a +%! clear a; %! a; -%! error("Shoudn't get here"); +%! error ("Shoudn't get here"); %! catch -%! error(cstrcat("rethrow: ",lasterr)); +%! error (cstrcat ("rethrow: ", lasterr)); %! end_try_catch %! catch -%! assert(strcmp(lasterr()(1:22), "rethrow: `a' undefined")) +%! assert (lasterr()(1:22), "rethrow: `a' undefined"); %! end_try_catch
--- a/test/test_unwind.m +++ b/test/test_unwind.m @@ -30,10 +30,12 @@ %! g = save_g; %! y = [y, g]; %! end_unwind_protect +%!endfunction +%! %!test %! global g = -1; %! y = f ([3,4]); -%! assert(y,[0,1,-1]); +%! assert (y, [0,1,-1]); %% test/octave.test/unwind/unwind-2.m %!function y = f (x) @@ -48,9 +50,11 @@ %! unwind_protect_cleanup %! g = save_g; %! y = [y, g]; -%! assert(y,[0,-1]); +%! assert (y, [0,-1]); %! end_unwind_protect +%!endfunction +%! %!test %! global g = -1; -%! fail("y = f (3);","mismatch"); +%! fail ("y = f (3);", "mismatch");
--- a/test/test_while.m +++ b/test/test_while.m @@ -20,51 +20,51 @@ %!test %! i = 0; %! while (eye (2)) -%! i++; -%! printf_assert ("%d\n", i); -%! endwhile; -%! assert(prog_output_assert("")); +%! i++; +%! printf_assert ("%d\n", i); +%! endwhile +%! assert (prog_output_assert ("")); %% test/octave.test/while/while-2.m %!test %! i = 5; %! while (--i) -%! printf_assert ("%d", i); +%! printf_assert ("%d", i); %! endwhile %! printf_assert ("\n"); -%! assert(prog_output_assert("4321")); +%! assert (prog_output_assert ("4321")); %% test/octave.test/while/while-3.m %!test %! i = 5; %! while (i) -%! i--; -%! printf_assert ("%d", i); +%! i--; +%! printf_assert ("%d", i); %! endwhile %! printf_assert ("\n"); -%! assert(prog_output_assert("43210")); +%! assert (prog_output_assert ("43210")); %% test/octave.test/while/while-4.m %!test %! i = 0; %! while (i++ < 20) -%! if (i > 2) -%! break; -%! endif -%! printf_assert ("%d", i); -%! endwhile; +%! if (i > 2) +%! break; +%! endif +%! printf_assert ("%d", i); +%! endwhile %! printf_assert ("\n"); -%! assert(prog_output_assert("12")); +%! assert (prog_output_assert ("12")); %% test/octave.test/while/while-5.m %!test %! i = 0; %! while (++i < 5) -%! if (i < 3) -%! continue; -%! endif -%! printf_assert ("%d", i); +%! if (i < 3) +%! continue; +%! endif +%! printf_assert ("%d", i); %! endwhile %! printf_assert ("\n"); -%! assert(prog_output_assert("34")); +%! assert (prog_output_assert ("34"));