Skip to content

Commit 172950b

Browse files
committed
Test QAST::Want
1 parent 2f6536c commit 172950b

File tree

1 file changed

+88
-1
lines changed

1 file changed

+88
-1
lines changed

t/qast/01-qast.t

Lines changed: 88 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use QAST;
22

3-
plan(125);
3+
plan(130);
44

55
# Following a test infrastructure.
66
sub compile_qast($qast) {
@@ -2090,3 +2090,90 @@ is_qast(
20902090
'for loop nohandler');
20912091

20922092
}
2093+
2094+
is_qast(
2095+
QAST::Block.new(
2096+
QAST::Op.new(
2097+
:op<add_i>,
2098+
QAST::IVal.new( :value(0) ),
2099+
QAST::Want.new(
2100+
QAST::IVal.new( :value(100) ),
2101+
'N',
2102+
QAST::NVal.new( :value(200) ),
2103+
'I',
2104+
QAST::IVal.new( :value(300) ),
2105+
'S',
2106+
QAST::SVal.new( :value('400') ),
2107+
)
2108+
)
2109+
), 300, 'QAST::Want - choosing int'
2110+
);
2111+
2112+
is_qast(
2113+
QAST::Block.new(
2114+
QAST::Op.new(
2115+
:op<add_n>,
2116+
QAST::NVal.new( :value(0) ),
2117+
QAST::Want.new(
2118+
QAST::IVal.new( :value(100) ),
2119+
'N',
2120+
QAST::NVal.new( :value(200) ),
2121+
'I',
2122+
QAST::IVal.new( :value(300) ),
2123+
'S',
2124+
QAST::SVal.new( :value('400') ),
2125+
)
2126+
)
2127+
), 200, 'QAST::Want - choosing num'
2128+
);
2129+
2130+
is_qast(
2131+
QAST::Block.new(
2132+
QAST::Op.new(
2133+
:op<concat>,
2134+
QAST::SVal.new( :value('') ),
2135+
QAST::Want.new(
2136+
QAST::IVal.new( :value(100) ),
2137+
'N',
2138+
QAST::NVal.new( :value(200) ),
2139+
'I',
2140+
QAST::IVal.new( :value(300) ),
2141+
'S',
2142+
QAST::SVal.new( :value('400') ),
2143+
)
2144+
)
2145+
), '400', 'QAST::Want - choosing str'
2146+
);
2147+
2148+
is_qast(
2149+
QAST::Block.new(
2150+
QAST::Op.new(
2151+
:op<clone>,
2152+
QAST::Want.new(
2153+
QAST::IVal.new( :value(100) ),
2154+
'N',
2155+
QAST::NVal.new( :value(200) ),
2156+
'I',
2157+
QAST::IVal.new( :value(300) ),
2158+
'S',
2159+
QAST::SVal.new( :value('400') ),
2160+
)
2161+
)
2162+
), 100, 'QAST::Want - choose first for objects'
2163+
);
2164+
2165+
is_qast(
2166+
QAST::Block.new(
2167+
QAST::Op.new(
2168+
:op<concat>,
2169+
QAST::SVal.new( :value('x') ),
2170+
QAST::Want.new(
2171+
QAST::IVal.new( :value(100) ),
2172+
'N',
2173+
QAST::NVal.new( :value(200) ),
2174+
'I',
2175+
QAST::IVal.new( :value(300) ),
2176+
)
2177+
)
2178+
), 'x100', 'QAST::Want - choose first when no match'
2179+
);

0 commit comments

Comments
 (0)