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: Oliver Heimlich
Subject: Re: Support for N-dimensional arrays almost done
Date: Mon, 31 Jul 2017 10:03:36 +0200

Hi, 

sorry for top posting. I am on the road.

I can't use the latest symbolic package. I am still on Debian Jessie. The new 
version of symbolic seems to produce different output for the scalar prefix 2 
(spot the difference in .* vs. *).

Regarding "make run" your fix makes sense. Maybe my Octave is outdated and 
supports the old syntax as well (regression?).

To continue your work it makes sense to 'pull' and 'update' from the original 
repository (in hg speak). You should be able to do that in your local hg client.

Oliver


  Ursprüngliche Nachricht  
Von: address@hidden
Gesendet: 31. Juli 2017 9:43 vorm.
An: address@hidden
Antworten: address@hidden
Cc: address@hidden; address@hidden
Betreff: Re: Support for N-dimensional arrays almost done

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]