Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[sprintf] Correct tests for %g, fudge %F for Rakudo (NYI).
  • Loading branch information
pmichaud committed Jul 6, 2012
1 parent 13e241a commit e2fb70e
Showing 1 changed file with 35 additions and 30 deletions.
65 changes: 35 additions & 30 deletions S32-str/sprintf.t
Expand Up @@ -126,64 +126,69 @@ is sprintf('%03X', 42.6), '02A', '0-padded decimal %X';
}

is sprintf('%5.2f', 3.1415), ' 3.14', '5.2 %f';
#?rakudo skip 'sprintf %F NYI'
is sprintf('%5.2F', 3.1415), ' 3.14', '5.2 %F';
is sprintf('%5.2g', 3.1415), ' 3.14', '5.2 %g';
is sprintf('%5.2G', 3.1415), ' 3.14', '5.2 %G';
is sprintf('%5.2g', 3.1415), ' 3.1', '5.2 %g';
is sprintf('%5.2G', 3.1415), ' 3.1', '5.2 %G';

ok sprintf('%5.2e', 3.1415) ~~ /^ "3.14e+" "0"? "00" $/, '5.2 %e';
ok sprintf('%5.2E', 3.1415) ~~ /^ "3.14E+" "0"? "00" $/, '5.2 %E';
ok sprintf('%5.2g', 3.1415e30) ~~ /^ "3.14e+" "0"? "30" $/, '5.2 %g';
ok sprintf('%5.2G', 3.1415e30) ~~ /^ "3.14E+" "0"? "30" $/, '5.2 %G';
ok sprintf('%5.2g', 3.1415e-30) ~~ /^ "3.14e-" "0"? "30" $/, '5.2 %g';
ok sprintf('%5.2G', 3.1415e-30) ~~ /^ "3.14E-" "0"? "30" $/, '5.2 %G';
ok sprintf('%5.2g', 3.1415e30) ~~ /^ "3.1e+" "0"? "30" $/, '5.2 %g';
ok sprintf('%5.2G', 3.1415e30) ~~ /^ "3.1E+" "0"? "30" $/, '5.2 %G';
ok sprintf('%5.2g', 3.1415e-30) ~~ /^ "3.1e-" "0"? "30" $/, '5.2 %g';
ok sprintf('%5.2G', 3.1415e-30) ~~ /^ "3.1E-" "0"? "30" $/, '5.2 %G';

is sprintf('%20.2f', 3.1415), ' 3.14', '20.2 %f';
#?rakudo skip 'sprintf %F NYI'
is sprintf('%20.2F', 3.1415), ' 3.14', '20.2 %F';
is sprintf('%20.2g', 3.1415), ' 3.14', '20.2 %g';
is sprintf('%20.2G', 3.1415), ' 3.14', '20.2 %G';
is sprintf('%20.2g', 3.1415), ' 3.1', '20.2 %g';
is sprintf('%20.2G', 3.1415), ' 3.1', '20.2 %G';

ok sprintf('%20.2e', 3.1415) eq ' 3.14e+000' | ' 3.14e+00', '20.2 %e';
ok sprintf('%20.2E', 3.1415) eq ' 3.14E+000' | ' 3.14E+00', '20.2 %E';
ok sprintf('%20.2g', 3.1415e30) eq ' 3.14e+030' | ' 3.14e+30', '20.2 %g';
ok sprintf('%20.2G', 3.1415e30) eq ' 3.14E+030' | ' 3.14e+30', '20.2 %G';
ok sprintf('%20.2g', 3.1415e-30) eq ' 3.14e-030' | ' 3.14e-30', '20.2 %g';
ok sprintf('%20.2G', 3.1415e-30) eq ' 3.14E-030' | ' 3.14e-30', '20.2 %G';
ok sprintf('%20.2g', 3.1415e30) eq ' 3.1e+030' | ' 3.1e+30', '20.2 %g';
ok sprintf('%20.2G', 3.1415e30) eq ' 3.1E+030' | ' 3.1E+30', '20.2 %G';
ok sprintf('%20.2g', 3.1415e-30) eq ' 3.1e-030' | ' 3.1e-30', '20.2 %g';
ok sprintf('%20.2G', 3.1415e-30) eq ' 3.1E-030' | ' 3.1E-30', '20.2 %G';

is sprintf('%20.2f', -3.1415), ' -3.14', 'negative 20.2 %f';
#?rakudo skip 'sprintf %F NYI'
is sprintf('%20.2F', -3.1415), ' -3.14', 'negative 20.2 %F';
is sprintf('%20.2g', -3.1415), ' -3.14', 'negative 20.2 %g';
is sprintf('%20.2G', -3.1415), ' -3.14', 'negative 20.2 %G';
is sprintf('%20.2g', -3.1415), ' -3.1', 'negative 20.2 %g';
is sprintf('%20.2G', -3.1415), ' -3.1', 'negative 20.2 %G';

ok sprintf('%20.2e', -3.1415) eq ' -3.14e+000' | ' -3.14e+00', 'negative 20.2 %e';
ok sprintf('%20.2E', -3.1415) eq ' -3.14E+000' | ' -3.14E+00', 'negative 20.2 %E';
ok sprintf('%20.2g', -3.1415e30) eq ' -3.14e+030' | ' -3.14e+30', 'negative 20.2 %g';
ok sprintf('%20.2G', -3.1415e30) eq ' -3.14E+030' | ' -3.14e+30', 'negative 20.2 %G';
ok sprintf('%20.2g', -3.1415e-30) eq ' -3.14e-030' | ' -3.14e-30', 'negative 20.2 %g';
ok sprintf('%20.2G', -3.1415e-30) eq ' -3.14E-030' | ' -3.14e-30', 'negative 20.2 %G';
ok sprintf('%20.2g', -3.1415e30) eq ' -3.1e+030' | ' -3.1e+30', 'negative 20.2 %g';
ok sprintf('%20.2G', -3.1415e30) eq ' -3.1E+030' | ' -3.1E+30', 'negative 20.2 %G';
ok sprintf('%20.2g', -3.1415e-30) eq ' -3.1e-030' | ' -3.1e-30', 'negative 20.2 %g';
ok sprintf('%20.2G', -3.1415e-30) eq ' -3.1E-030' | ' -3.1E-30', 'negative 20.2 %G';

is sprintf('%020.2f', 3.1415), '00000000000000003.14', '020.2 %f';
#?rakudo skip 'sprintf %F NYI'
is sprintf('%020.2F', 3.1415), '00000000000000003.14', '020.2 %F';
is sprintf('%020.2g', 3.1415), '00000000000000003.14', '020.2 %g';
is sprintf('%020.2G', 3.1415), '00000000000000003.14', '020.2 %G';
is sprintf('%020.2g', 3.1415), '000000000000000003.1', '020.2 %g';
is sprintf('%020.2G', 3.1415), '000000000000000003.1', '020.2 %G';

ok sprintf('%020.2e', 3.1415) eq '000000000003.14e+000' | '0000000000003.14e+00', '020.2 %e';
ok sprintf('%020.2E', 3.1415) eq '000000000003.14E+000' | '0000000000003.14E+00', '020.2 %E';
ok sprintf('%020.2g', 3.1415e30) eq '000000000003.14e+030' | '0000000000003.14e+30', '020.2 %g';
ok sprintf('%020.2G', 3.1415e30) eq '000000000003.14E+030' | '0000000000003.14e+30', '020.2 %G';
ok sprintf('%020.2g', 3.1415e-30) eq '000000000003.14e-030' | '0000000000003.14e-30', '020.2 %g';
ok sprintf('%020.2G', 3.1415e-30) eq '000000000003.14E-030' | '0000000000003.14e-30', '020.2 %G';
ok sprintf('%020.2g', 3.1415e30) eq '0000000000003.1e+030' | '00000000000003.1e+30', '020.2 %g';
ok sprintf('%020.2G', 3.1415e30) eq '0000000000003.1E+030' | '00000000000003.1E+30', '020.2 %G';
ok sprintf('%020.2g', 3.1415e-30) eq '0000000000003.1e-030' | '00000000000003.1e-30', '020.2 %g';
ok sprintf('%020.2G', 3.1415e-30) eq '0000000000003.1E-030' | '00000000000003.1E-30', '020.2 %G';

is sprintf('%020.2f', -3.1415), '-0000000000000003.14', 'negative 020.2 %f';
#?rakudo skip 'sprintf %F NYI'
is sprintf('%020.2F', -3.1415), '-0000000000000003.14', 'negative 020.2 %F';
is sprintf('%020.2g', -3.1415), '-0000000000000003.14', 'negative 020.2 %g';
is sprintf('%020.2G', -3.1415), '-0000000000000003.14', 'negative 020.2 %G';
is sprintf('%020.2g', -3.1415), '-00000000000000003.1', 'negative 020.2 %g';
is sprintf('%020.2G', -3.1415), '-00000000000000003.1', 'negative 020.2 %G';

ok sprintf('%020.2e', -3.1415) eq '-00000000003.14e+000' | '-000000000003.14e+00', 'negative 020.2 %e';
ok sprintf('%020.2E', -3.1415) eq '-00000000003.14E+000' | '-000000000003.14E+00', 'negative 020.2 %E';
ok sprintf('%020.2g', -3.1415e30) eq '-00000000003.14e+030' | '-000000000003.14e+30', 'negative 020.2 %g';
ok sprintf('%020.2G', -3.1415e30) eq '-00000000003.14E+030' | '-000000000003.14e+30', 'negative 020.2 %G';
ok sprintf('%020.2g', -3.1415e-30) eq '-00000000003.14e-030' | '-000000000003.14e-30', 'negative 020.2 %g';
ok sprintf('%020.2G', -3.1415e-30) eq '-00000000003.14E-030' | '-000000000003.14e-30', 'negative 020.2 %G';
ok sprintf('%020.2g', -3.1415e30) eq '-000000000003.1e+030' | '-0000000000003.1e+30', 'negative 020.2 %g';
ok sprintf('%020.2G', -3.1415e30) eq '-000000000003.1E+030' | '-0000000000003.1E+30', 'negative 020.2 %G';
ok sprintf('%020.2g', -3.1415e-30) eq '-000000000003.1e-030' | '-0000000000003.1e-30', 'negative 020.2 %g';
ok sprintf('%020.2G', -3.1415e-30) eq '-000000000003.1E-030' | '-0000000000003.1E-30', 'negative 020.2 %G';

# L<S32::Str/"Str"/"The special directive, %n does not work in Perl 6">
dies_ok(sub {my $x = sprintf('%n', 1234)}, '%n dies (Perl 5 compatibility)'); #OK not used
Expand Down

0 comments on commit e2fb70e

Please sign in to comment.