[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Aw: Re: changes to graphics.cc and subplot.m
From: |
Stefan Mahr |
Subject: |
Aw: Re: changes to graphics.cc and subplot.m |
Date: |
Thu, 1 Aug 2013 15:07:53 +0200 (CEST) |
>>>>>>>>> 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
>>
>>
>
> I wish I could.
>
> octave-cli:19> for i=1:10, stefan; end
> PASSES 2 out of 2 tests (1 expected failure)
> PASSES 2 out of 2 tests
> PASSES 2 out of 2 tests
> PASSES 2 out of 2 tests
> PASSES 2 out of 2 tests
> PASSES 2 out of 2 tests
> PASSES 2 out of 2 tests (1 expected failure)
> PASSES 2 out of 2 tests (1 expected failure)
> PASSES 2 out of 2 tests
> PASSES 2 out of 2 tests
>
>
> Stefan
>
Ben,
the problem above is fixed now (build with lastest changeset
http://hg.savannah.gnu.org/hgweb/octave/rev/ea19ea629a09 )
Stefan
- Aw: Re: changes to graphics.cc and subplot.m,
Stefan Mahr <=