--TEST--
"empty" test
--TEMPLATE--
{{ string_empty is empty ? 'ok' : 'ko' }}
{{ string_zero is empty ? 'ko' : 'ok' }}
{{ value_null is empty ? 'ok' : 'ko' }}
{{ value_false is empty ? 'ok' : 'ko' }}
{{ value_int_zero is empty ? 'ko' : 'ok' }}
{{ array_empty is empty ? 'ok' : 'ko' }}
{{ array_not_empty is empty ? 'ko' : 'ok' }}
{{ magically_callable is empty ? 'ko' : 'ok' }}
{{ countable_empty is empty ? 'ok' : 'ko' }}
{{ countable_not_empty is empty ? 'ko' : 'ok' }}
{{ tostring_empty is empty ? 'ok' : 'ko' }}
{{ tostring_not_empty is empty ? 'ko' : 'ok' }}
{{ markup_empty is empty ? 'ok' : 'ko' }}
{{ markup_not_empty is empty ? 'ko' : 'ok' }}
{{ iterator is empty ? 'ko' : 'ok' }}
{{ empty_iterator is empty ? 'ok' : 'ko' }}
{{ callback_iterator is empty ? 'ko' : 'ok' }}
{{ empty_callback_iterator is empty ? 'ok' : 'ko' }}
--DATA--
return [
    'string_empty' => '', 'string_zero' => '0',
    'value_null' => null, 'value_false' => false, 'value_int_zero' => 0,
    'array_empty' => [], 'array_not_empty' => [1, 2],
    'magically_callable' => new \Twig\Tests\MagicCallStub(),
    'countable_empty' => new \Twig\Tests\CountableStub([]), 'countable_not_empty' => new \Twig\Tests\CountableStub([1, 2]),
    'tostring_empty' => new \Twig\Tests\ToStringStub(''), 'tostring_not_empty' => new \Twig\Tests\ToStringStub('0' /* edge case of using "0" as the string */),
    'markup_empty' => new \Twig\Markup('', 'UTF-8'), 'markup_not_empty' => new \Twig\Markup('test', 'UTF-8'),
    'iterator' => $iter = new \ArrayIterator(['bar', 'foo']),
    'empty_iterator' => new \ArrayIterator(),
    'callback_iterator' => new \CallbackFilterIterator($iter, function ($el) { return true; }),
    'empty_callback_iterator' => new \CallbackFilterIterator($iter, function ($el) { return false; }),
]
--EXPECT--
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
