Mercurial > octave
view test/build_bc_overload_tests.sh @ 10090:655ab6f6c369
add tests for built-in class overloads
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Wed, 13 Jan 2010 08:44:24 +0100 |
parents | |
children | ffc5426c85a4 |
line wrap: on
line source
#!/bin/sh # Copyright (C) 2010 VZLU Prague # # This file is part of Octave. # # Octave is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # Octave is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with Octave; see the file COPYING. If not, see # <http://www.gnu.org/licenses/>. CLASSES="double single char logical int8 int16 int32 int64 \ uint8 uint16 uint32 uint64 struct cell function_handle" for class in $CLASSES ; do DIR=\@$class test -d $DIR || mkdir $DIR || { echo "error: could not create $DIR" ; exit ; } cat > $DIR/tbcover.m <<end % DO NOT EDIT - generated automatically function s = tbcover (x, y) s = '$class'; end done cat > tbcover.m <<end % DO NOT EDIT - generated automatically function s = tbcover (x, y) s = 'none'; end if test "$1" == "overloads_only" ; then exit fi cat > test_bc_overloads.m <<end ## THIS IS AN AUTOMATICALLY GENERATED FILE --- DO NOT EDIT --- ## instead modify build_bc_overload_tests.sh to generate the tests that you want. %!shared ex %! ex.double = 1; %! ex.single = single(1); %! ex.logical = true; %! ex.char = 'char'; %! ex.int8 = int8 (1); %! ex.int16 = int16 (1); %! ex.int32 = int32 (1); %! ex.int64 = int64 (1); %! ex.uint8 = uint8 (1); %! ex.uint16 = uint16 (1); %! ex.uint32 = uint32 (1); %! ex.uint64 = uint64 (1); %! ex.cell = {}; %! ex.struct = struct (); %! ex.function_handle = @numel; end cat bc_overloads_expected |\ while read cl1 cl2 clr ; do cat >> test_bc_overloads.m <<end %% Name call %!assert (tbcover (ex.$cl1, ex.$cl2), "$clr") %% Handle call %!assert ((@tbcover) (ex.$cl1, ex.$cl2), "$clr") end done cat >> test_bc_overloads.m <<end %%test handles through cellfun %!test %! f = fieldnames (ex); %! n = numel (f); %! s = c1 = c2 = cell (n); %! for i = 1:n %! for j = 1:n %! c1{i,j} = ex.(f{i}); %! c2{i,j} = ex.(f{j}); %! s{i,j} = tbcover (ex.(f{i}), ex.(f{j})); %! endfor %! endfor %! assert (cellfun (@tbcover, c1, c2, "uniformoutput", false), s); end