octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Support for N-dimensional arrays almost done


From: Joel Dahne
Subject: Re: Support for N-dimensional arrays almost done
Date: Mon, 31 Jul 2017 07:43:43 +0000

Hi Oliver

Oliver Heimlich writes:

>> There is one more test that always fails for me
>>
>> doc/chapter/examples.texinfo ........................... FAIL    1/15
>>
>>    >> f = @(x) sqrt (x) + (x + 1) .* cos (x);
>>     pkg load symbolic
>>     df = function_handle (diff (formula (f (sym ("x")))))
>>
>>       expected:    df = @(x) -(x + 1) .* sin (x) + cos (x) + 1 ./ (2 .* sqrt 
>> (x))
>>
>>       got     : df =
>>
>> @(x) -(x + 1) .* sin (x) + cos (x) + 1 ./ (2 * sqrt (x))
>>
>> It seems like that there is only a problem with the formatting but I
>> have not been able to fix it. Does it fail for you to, and if so should
>> I add a SKIP for it?
>
> The formatting has changed in the symbolic package since I have written
> this example. I am going to fix the formatting of the example to match
> the new version.

The test still fails for me with the new patch. I think texinfo (or
doctest) has trouble with multiple newlines. Tried to add specific
newlines with @NL (where NL is a newline character) but it still did not
work. For reference I'm using symbolic 2.6.0.

>> Oliver Heimlich writes:
>>> Regarding the unit tests: I'll put a little bit more work into the
>>> Makefile and add complete support for the new ITF1788 test data during
>>> all make targets, e. g., “make run”.  The aim is that we can eventually
>>> get rid of the generated test/*.tst files (or
>>> build/octave/native/interval/*.tst files in the package development
>>> workspace).  For the user it makes package testing more straight forward
>>> since you can simply test the function that you want to test and don't
>>> have to execute an extra test suite.  If you want, you can spread use of
>>> itl.mat among the other methods and add ND array test by reshaping the
>>> test data.
>>
>> I'm not sure I follow you here. You want to get rid of the test/*.tst
>> files, where should the test be stored then? Is the goal to be able to
>> use Octaves test-command to perform all tests (thus making it easy to
>> test only one function)? ITF1788 will supply the testing data, where
>> will we reshape the data, in ITF1788 or in the interval packages Makefile?
>
> I am currently working on this. I hope to finish migration this night.
> You can have a peek in [6], I am going to push other functions later.
> The test data will be stored in a .mat file. The tests are performed
> during “test <functioname>”, which has to load its part of the test data
> from the .mat file.
>
> Shaping the test data into the .mat file has already been implemented.
> The testcases are stored as cell arrays. It is possible to either
> iterate over the cell array (for scalar tests) or cat the cell array
> (for vector tests). I have already prepared %!test blocks to do this.
>
> Your job would be to add one or more %!test blocks, which reshape the
> data into ND arrays (you may discard some test cases to get correct
> dimensions).
>
> [6]
> https://sourceforge.net/p/octave/interval/ci/f35e6c4964256c14b87d1aa315dd60a6ad38e52b/tree/inst/@infsup/plus.m#l80

Running 'make run' does not work for me with the current tip. I get the
error

Regenerating interval test library (build/inst/test/itl.mat) ...
  build/octave/dictionary/interval-dictionary/abs_rev.tst
error: wrong type argument 'cell'
error: source: FILE must be a string

Changing line 355 in the Makefile from

--eval 'for file = strsplit ("$^"), printf ("  %s\n", file{:}); source
  (file); endfor;' \

to

--eval 'for file = strsplit ("$^"), printf ("  %s\n", file{:}); source
  (file{:); endfor;' \

fixes it for me.

Finally I have a question. Up until recently I have been working on my
fork of the interval package and you have been merging changes from time
to time. Now you have made changes to the original repository that I
would need to merge to mine. What is the simplest way to accomplish
that? On sourceforge I have a "request merge" button which I guess is
for if I want you to merge my changes, but I can find no way to merge
your changes to my repository.

Best,
Joel

reply via email to

[Prev in Thread] Current Thread [Next in Thread]