octave-maintainers
[Top][All Lists]
Advanced

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

Re: changes to graphics.cc and subplot.m


From: Ben Abbott
Subject: Re: changes to graphics.cc and subplot.m
Date: Thu, 25 Jul 2013 11:22:29 +0200

On Jul 25, 2013, at 10:54 AM, Stefan Mahr wrote:

>>>>>>> oops!  The test only fails for me the 1st time it is run, and only 
>>>>>>> because the axes handles are in the wrong order.
>>>>>>> 
>>>>>>> Ben
>>>>>> 
>>>>>> It's weird. With your test script I get the same results as you.
>>>>>> However, the resulting output still has different y-axis size for both
>>>>>> plots.
>>>>>> 
>>>>>> If I copy-paste your example block-wise in interactive mode, I get more
>>>>>> errors. Could it be some kind of timing problem?
>>>>> 
>>>>> The extra errors are because the test aborts after the first error.
>>>>> 
>>>>>> -----------
>>>>>> 
>>>>>> graphics_toolkit fltk
>>>>>> close all
>>>>>> hf = figure (gcf (), "__graphics_toolkit__", "fltk", "visible", "on");
>>>>>> 
>>>>>> 
>>>>>> subplot(2,1,1); plot(rand(10,1)); subplot(2,1,2); plot(rand(10,1))
>>>>>> hax = findall (gcf (), "type", "axes");
>>>>>> positions = cell2mat (get (hax, "position"));
>>>>>> outerpositions = cell2mat (get (hax, "outerposition"));
>>>>>> looseinsets = cell2mat (get (hax, "looseinset"));
>>>>>> tightinsets = cell2mat (get (hax, "tightinset"));
>>>>>> close all
>>>>>> 
>>>>>> 
>>>>>> subplot(2,1,1); plot(rand(10,1)); subplot(2,1,2); plot(rand(10,1))
>>>>>> hax = findall (gcf (), "type", "axes");
>>>>>> assert (cell2mat (get (hax, "position")), positions, 0.001)
>>>>>> assert (cell2mat (get (hax, "outerposition")), outerpositions, 0.001)
>>>>>> assert (cell2mat (get (hax, "looseinset")), looseinsets, 0.001)
>>>>>> assert (cell2mat (get (hax, "tightinset")), tightinsets, 0.001)
>>>>>> 
>>>>>> ------------------------
>>>>>> 
>>>>>>> assert (cell2mat (get (hax, "position")), positions, 0.001)
>>>>>> error: assert (cell2mat (get (hax, "position")),positions,0.001) expected
>>>>>> 0.13000   0.58384   0.77500   0.32733
>>>>>> 0.13000   0.12384   0.77500   0.32733
>>>>>> but got
>>>>>> 0.13000   0.60122   0.77500   0.30994
>>>>>> 0.13000   0.18964   0.77500   0.26152
>>>>>> maximum absolute error 0.0658047 exceeds tolerance 0.001
>>>>>> error: called from:
>>>>>> error:   /usr/share/octave/3.7.5/m/testfun/assert.m at line 235, column 5
>>>>>>> assert (cell2mat (get (hax, "outerposition")), outerpositions, 0.001)
>>>>>>> assert (cell2mat (get (hax, "looseinset")), looseinsets, 0.001)
>>>>>>> assert (cell2mat (get (hax, "tightinset")), tightinsets, 0.001)
>>>>>> error: assert (cell2mat (get (hax, "tightinset")),tightinsets,0.001)
>>>>>> expected
>>>>>> 0.042857   0.013122   0.000000   0.026316
>>>>>> 0.042857   0.013199   0.000000   0.026316
>>>>>> but got
>>>>>> 0.04286   0.09122   0.00000   0.01696
>>>>>> 0.04286   0.13964   0.00000   0.00000
>>>>>> maximum absolute error 0.126443 exceeds tolerance 0.001
>>>>>> error: called from:
>>>>>> error:   /usr/share/octave/3.7.5/m/testfun/assert.m at line 235, column 5
>>>>> 
>>>>> The second error is the one I hoped to catch.  I'll work in fixing the 
>>>>> test.
>>>>> 
>>>>> Ben
>>>> 
>>>> Does the attached version isolate the second error?
>>>> 
>>>> Ben
>>> 
>>> It's not related to the test itself, but line
>>> hf = figure (gcf (), "__graphics_toolkit__", "fltk", "visible", "on");
>>> fails for me. I need to add 'graphics_toolkit fltk' in the first line to 
>>> make it work.
>>> 
>>> 
>>> If the test in run in script mode, it always pass. While testing Rik's plot 
>>> issue I realized, that subplot is not neccessary for catching the y-axis 
>>> bug. The optical difference is not as big as with subplot, so I overlooked 
>>> it in the past. With attached patch the bug is reproducable in script mode. 
>>> Please note the 'sleep(2)' after the plot command. Without this sleep, the 
>>> test pass without error.
>>> 
>>> 
>>> Stefan
>> 
>> Stefan / Dimitri / others,
>> 
>> I'm still hoping to add some tests that demonstrate the problem.
>> 
>> Does running this script produce one expected failure and 1 passing test?
>> 
>> Ben
>> 
> 
> No, since it's inverted. The first test passes, the second fails.
> 
> However, it's still not 100% sure:
> 
> octave-cli:44> test stefan; test stefan
> [...]
> PASSES 2 out of 2 tests (1 expected failure)
> PASSES 2 out of 2 tests
> 
> When calling 'test stefan' twice in one command line, the second run passes 
> both tests. It also happens when you copy&paste
> 
> test stefan
> test stefan
> 
> to command line:
> 
> octave-cli:68> test stefan
> [...]
> PASSES 2 out of 2 tests (1 expected failure)
> octave-cli:69> test stefan
> PASSES 2 out of 2 tests
> octave-cli:70> test stefan
> PASSES 2 out of 2 tests
> 
> If you wait until the plot window is closed before starting new test, you get 
> the expected failure.
> 
> Stefan

Stefan, can I impose on you to modify the tests so that they give the result we 
desire (i.e. one failure and then a passing test)?

Ben



reply via email to

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