2 # Copyright (C) 2008, The Perl Foundation.
7 use lib qw( . lib ../lib ../../lib );
15 t/dynpmc/rational.t - Rational PMC
19 % prove t/dynpmc/rational.t
23 Tests the Rational PMC.
27 if ( $PConfig{gmp} ) { # If GMP is available, we check all functions.
30 else { # If GMP is not available, we only test the constructor and the
31 plan tests => 2; # version-method that is used to detect presence of GMP at runtime.
34 pir_output_is(<<'CODE', <<'OUTPUT', "Initialization");
36 loadlib $P1, 'rational'
44 if (! $PConfig{gmp}) { # If GMP is not available, this is the last test:
45 pir_output_is(<<'CODE', <<'OUTPUT', "version-method");
47 loadlib $P1, 'rational'
58 # These tests are only run, if GMP is available.
59 pir_output_is(<<'CODE', <<'OUTPUT', "version-method");
61 loadlib $P1, 'rational'
70 pir_output_is(<<'CODE', <<'OUTPUT', "Set and get native integer");
72 loadlib $P1, 'rational'
85 pir_output_is(<<'CODE', <<'OUTPUT', "Set and get native float");
87 loadlib P0, 'rational'
100 pir_output_is(<<'CODE', <<'OUTPUT', "Set and get native string");
102 loadlib $P1, 'rational'
115 pir_output_is(<<'CODE', <<'OUTPUT', "Set and get Integer");
117 loadlib $P1, 'rational'
133 pir_output_is(<<'CODE', <<'OUTPUT', "Set and get Float");
135 loadlib $P1, 'rational'
151 pir_output_is(<<'CODE', <<'OUTPUT', "Set and get String");
153 loadlib $P1, 'rational'
169 pir_output_is(<<'CODE', <<'OUTPUT', "Increment and decrement");
171 loadlib $P1, 'rational'
188 pir_output_is(<<'CODE', <<'OUTPUT', "Adding integers (+ inplace operation)");
190 loadlib $P1, 'rational'
208 pir_output_is(<<'CODE', <<'OUTPUT', "Adding floats (+ inplace operation)");
210 loadlib $P1, 'rational'
228 pir_output_is(<<'CODE', <<'OUTPUT', "Adding Integers (+ inplace operation)");
230 loadlib $P1, 'rational'
249 pir_output_is(<<'CODE', <<'OUTPUT', "Adding Floats (+ inplace operation)");
251 loadlib $P1, 'rational'
270 pir_output_is(<<'CODE', <<'OUTPUT', "Adding Rationals (+inplace operation)");
272 loadlib $P1, 'rational'
291 pir_output_is(<<'CODE', <<'OUTPUT', "Subtracting integers (+ inplace operation)");
293 loadlib $P1, 'rational'
311 pir_output_is(<<'CODE', <<'OUTPUT', "Subtracting floats (+ inplace operation)");
313 loadlib $P1, 'rational'
331 pir_output_is(<<'CODE', <<'OUTPUT', "Subtracting Integers (+ inplace operation)");
333 loadlib $P1, 'rational'
352 pir_output_is(<<'CODE', <<'OUTPUT', "Subtracting Floats (+ inplace operation)");
354 loadlib $P1, 'rational'
373 pir_output_is(<<'CODE', <<'OUTPUT', "Subtracting Rationals (+inplace operation)");
375 loadlib $P1, 'rational'
394 pir_output_is(<<'CODE', <<'OUTPUT', "Multiplying integers (+ inplace operation)");
396 loadlib $P1, 'rational'
413 pir_output_is(<<'CODE', <<'OUTPUT', "Multiplying floats (+ inplace operation)");
415 loadlib $P1, 'rational'
432 pir_output_is(<<'CODE', <<'OUTPUT', "Multiplying Integers (+ inplace operation)");
434 loadlib $P1, 'rational'
453 pir_output_is(<<'CODE', <<'OUTPUT', "Multiplying Floats (+ inplace operation)");
455 loadlib $P1, 'rational'
474 pir_output_is(<<'CODE', <<'OUTPUT', "Multiplying Rationals (+ inplace operation)");
476 loadlib $P1, 'rational'
495 pir_output_is(<<'CODE', <<'OUTPUT', "Dividing integers (+ inplace operation)");
497 loadlib $P1, 'rational'
514 pir_output_is(<<'CODE', <<'OUTPUT', "Dividing floats (+ inplace operation)");
516 loadlib $P1, 'rational'
533 pir_output_is(<<'CODE', <<'OUTPUT', "Dividing Integers (+ inplace operation)");
535 loadlib $P1, 'rational'
554 pir_output_is(<<'CODE', <<'OUTPUT', "Dividing Floats (+ inplace operation)");
556 loadlib $P1, 'rational'
575 pir_output_is(<<'CODE', <<'OUTPUT', "Dividing Rationals (+ inplace operation)");
577 loadlib $P1, 'rational'
595 pir_output_is(<<'CODE', <<'OUTPUT', "Negating (+inplace operation)");
597 loadlib $P1, 'rational'
613 pir_output_is(<<'CODE', <<'OUTPUT', "Absolute value (+inplace operation)");
615 loadlib $P1, 'rational'
631 pir_output_is(<<'CODE', <<'OUTPUT', "Comparing rationals to rationals");
633 loadlib $P1, 'rational'
640 if $P2 == $P3 goto EQ