process_ok("[% -123.2.length %]" => -5) if ! $is_tt; # the - doesn't bind as tight as the dot methods
process_ok("[% (-123.2).length %]" => 6) if ! $is_tt;
process_ok("[% a = 23; a.0 %]" => 23) if ! $is_tt; # '0' is a scalar_op
-process_ok('[% 1.rand %]' => qr/^0\.\d+$/) if ! $is_tt;
+process_ok('[% 1.rand %]' => qr/^0\.\d+(?:e-?\d+)?$/) if ! $is_tt;
process_ok("[% n.repeat %]" => '1', {n => 1}) if ! $is_tt; # tt2 virtual method defaults to 0
process_ok("[% n.repeat(0) %]" => '', {n => 1});
process_ok("[% ' ' | uri %]" => '%20');
-process_ok('[% "one".as %]' => "one") if ! $is_tt;
-process_ok('[% 2.as("%02d") %]' => "02") if ! $is_tt;
+process_ok('[% "one".fmt %]' => "one") if ! $is_tt;
+process_ok('[% 2.fmt("%02d") %]' => "02") if ! $is_tt;
-process_ok('[% [1..3].as %]' => "1 2 3") if ! $is_tt;
-process_ok('[% [1..3].as("%02d") %]' => '01 02 03') if ! $is_tt;
-process_ok('[% [1..3].as("%s", ", ") %]' => '1, 2, 3') if ! $is_tt;
+process_ok('[% [1..3].fmt %]' => "1 2 3") if ! $is_tt;
+process_ok('[% [1..3].fmt("%02d") %]' => '01 02 03') if ! $is_tt;
+process_ok('[% [1..3].fmt("%s", ", ") %]' => '1, 2, 3') if ! $is_tt;
-process_ok('[% {a => "B", c => "D"}.as %]' => "a\tB\nc\tD") if ! $is_tt;
-process_ok('[% {a => "B", c => "D"}.as("%s:%s") %]' => "a:B\nc:D") if ! $is_tt;
-process_ok('[% {a => "B", c => "D"}.as("%s:%s", "; ") %]' => "a:B; c:D") if ! $is_tt;
+process_ok('[% {a => "B", c => "D"}.fmt %]' => "a\tB\nc\tD") if ! $is_tt;
+process_ok('[% {a => "B", c => "D"}.fmt("%s:%s") %]' => "a:B\nc:D") if ! $is_tt;
+process_ok('[% {a => "B", c => "D"}.fmt("%s:%s", "; ") %]' => "a:B; c:D") if ! $is_tt;
###----------------------------------------------------------------###
### virtual objects