#!perl -w
use strict;
use Test::More;
use Text::Xslate;
my $tx = Text::Xslate->new();
my @data = (
['<: 0x011 +| 0x100 :>', 0x111 ],
['<: $value0 +| 0x111 :>', 0x111 ],
['<: $value0x201 +| 0x111 :>', 0x311 ],
['<: 0x111 +| $value0x201 :>', 0x311 ],
['<: 0x011 +& 0x010 :>', 0x010 ],
['<: $value0 +& 0x111 :>', 0x000 ],
['<: $value0x201 +& 0x111 :>', 0x001 ],
['<: 0x111 +& $value0x201 :>', 0x001 ],
['<: 0x00101 +^ 0x00100 :>', 0x00001 ],
['<: 0x10100 +^ 0x10000 :>', 0x00100 ],
['<: $value0 +^ 0x111 :>', 0x111 ],
['<: $value0x201 +^ 0x111 :>', 0x310 ],
['<: 0x111 +^ $value0x201 :>', 0x310 ],
['<: +^0 :>', ~0, 'const'],
['<: +^0x201 :>', ~0x201, 'const'],
['<: +^$value0 :>', ~0, 'var'],
['<: +^$value0x201 :>', ~0x201, 'var'],
);
my %vars = (
value0 => 0,
value0x201 => 0x201,
);
foreach my $d(@data) {
my($in, $out, $msg) = @$d;
is $tx->render_string($in, \%vars), $out, $msg
or diag $in;
}
done_testing;