Skip to content

Commit ceed491

Browse files
committed
1 parent 81f0a53 commit ceed491

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

S32-str/sprintf.t

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use lib <t/spec/packages>;
33
use Test;
44
use Test::Util;
55

6-
plan 172;
6+
plan 173;
77

88
# L<S32::Str/Str/"identical to" "C library sprintf">
99

@@ -302,4 +302,34 @@ throws-like { sprintf "%d" }, X::Str::Sprintf::Directives::Count,
302302
'%064b format works with negatives';
303303
}
304304

305+
# RT #132846
306+
subtest 'sprintf with Numeric/Str type objects' => {
307+
plan 18*my @types := Num, Int, Rat, Complex, Str;
308+
sub qs (|c) { quietly sprintf |c }
309+
310+
for @types -> \T {
311+
my $p := "with {T.perl}";
312+
is-deeply qs('%c', T), "\0", "%c $p";
313+
is-deeply qs('%02c', T), "0\0", "%02c $p";
314+
is-deeply qs('%u', T), '0', "%u $p";
315+
is-deeply qs('%02u', T), '00', "%02u $p";
316+
is-deeply qs('%x', T), '0', "%x $p";
317+
is-deeply qs('%02x', T), '00', "%02x $p";
318+
319+
is-deeply qs('%d', T), '0', "%d $p";
320+
is-deeply qs('%02d', T), '00', "%02d $p";
321+
is-deeply qs('%b', T), '0', "%b $p";
322+
is-deeply qs('%02b', T), '00', "%02b $p";
323+
is-deeply qs('%o', T), '0', "%o $p";
324+
is-deeply qs('%02o', T), '00', "%02o $p";
325+
326+
is-deeply qs('%f', T), '0.000000', "%f $p";
327+
is-deeply qs('%.2f', T), '0.00', "%.2f $p";
328+
is-deeply qs('%e', T), '0.000000e+00', "%e $p";
329+
is-deeply qs('%.2e', T), '0.00e+00', "%.2e $p";
330+
is-deeply qs('%g', T), '0', "%g $p";
331+
is-deeply qs('%.2g', T), '0', "%.2g $p";
332+
}
333+
}
334+
305335
# vim: ft=perl6

0 commit comments

Comments
 (0)