Closed brodieG closed 2 years ago
This is because the code in question emits uncaught, undisplayed conditions:
$conditions
$conditions[[1]]
<svgchop_unsupported: unit (cm) in <svg width='...'>.>
$conditions[[2]]
<svgchop_unsupported: unit (cm) in <svg height='...'>.>
$conditions[[3]]
<svgchop_unsupported: 'preserveAspectRatio' value 'xMidYMid' unsupported>
So the fix here is to display the conditions, although current behavior at the R prompt is to simply ignore these:
> res <- signalCondition(simpleCondition('hello'))
>
I.e. without a handler, these might as well not exist. It really feels like unitizer
should say something. The tension is that many conditions do usually manifest, e.g. by outputting to standard err or some other way. Perhaps what we need to do is only show the "additionally, 3 conditions were emitted, check .NEW$conditions
" if there is no stderr output.
We can get to the conditions via .NEW
, but the display is not ideal there either:
~~~ New Test ~~~
page <- compare_rsvg(display = 0, steps = 50, quietly = TRUE)
* value: chr[1]
* conditions:
Access components with `$`, e.g. `.NEW$value`; see `help("$", "unitizer")`
unitizer> .NEW$conditions
Condition list with 3 conditions:
1. SimpleCondition: unit (cm) in <svg width='...'>.
2. SimpleCondition: unit (cm) in <svg height='...'>.
3. SimpleCondition: 'preserveAspectRatio' value 'xMidYMid' unsupported
Note class display for conditionList
is bad, it should be showing "svgchop_unsupported", and the .NEW
display is not telling us anything about the condition list.
Loosely related to #229
The assignment to
error
in addition to the display of it get both treated as tests, instead of only the latter of the two.