ph::make (4, 8, 12),
&const_quot));
ASSERT_EQ (const_quot, C (2));
- ASSERT_EQ (can_div_trunc_p (ph::make (15, 25, 40),
+ ASSERT_TRUE (can_div_trunc_p (ph::make (15, 25, 40),
+ ph::make (4, 8, 10),
+ &const_quot));
+ ASSERT_EQ (const_quot, C (3));
+ const_quot = 0;
+ ASSERT_EQ (can_div_trunc_p (ph::make (15, 25, 41),
ph::make (4, 8, 10),
&const_quot), N <= 2);
- ASSERT_EQ (const_quot, C (N <= 2 ? 3 : 2));
+ ASSERT_EQ (const_quot, C (N <= 2 ? 3 : 0));
ASSERT_EQ (can_div_trunc_p (ph::make (43, 79, 80),
ph::make (4, 8, 10),
&const_quot), N == 1);
- ASSERT_EQ (const_quot, C (N == 1 ? 10 : N == 2 ? 3 : 2));
+ ASSERT_EQ (const_quot, C (N == 1 ? 10 : N == 2 ? 3 : 0));
ASSERT_TRUE (can_div_trunc_p (ph::make (3, 4, 5),
ph::make (4, 5, 6),
&const_quot));
&const_quot, &rem));
ASSERT_EQ (const_quot, C (2));
ASSERT_KNOWN_EQ (rem, ph::make (1, 7, 6));
- ASSERT_EQ (can_div_trunc_p (ph::make (15, 25, 40),
+ ASSERT_TRUE (can_div_trunc_p (ph::make (15, 25, 40),
+ ph::make (4, 8, 10),
+ &const_quot, &rem));
+ ASSERT_EQ (const_quot, C (3));
+ ASSERT_KNOWN_EQ (rem, ph::make (3, 1, 10));
+ const_quot = 0, rem = 0;
+ ASSERT_EQ (can_div_trunc_p (ph::make (15, 25, 41),
ph::make (4, 8, 10),
&const_quot, &rem), N <= 2);
- ASSERT_EQ (const_quot, C (N <= 2 ? 3 : 2));
+ ASSERT_EQ (const_quot, C (N <= 2 ? 3 : 0));
if (N <= 2)
ASSERT_KNOWN_EQ (rem, ph::make (3, 1, 0));
ASSERT_EQ (can_div_trunc_p (ph::make (43, 79, 80),
ph::make (4, 8, 10),
&const_quot, &rem), N == 1);
- ASSERT_EQ (const_quot, C (N == 1 ? 10 : N == 2 ? 3 : 2));
+ ASSERT_EQ (const_quot, C (N == 1 ? 10 : N == 2 ? 3 : 0));
if (N == 1)
ASSERT_KNOWN_EQ (rem, ch::make (3));
ASSERT_TRUE (can_div_trunc_p (ph::make (3, 4, 5),
&const_quot, &rem));
ASSERT_EQ (const_quot, C (0));
ASSERT_KNOWN_EQ (rem, ch::make (0));
+ ASSERT_TRUE (can_div_trunc_p (ph::make (9, 10, 20),
+ ph::make (5, 5, 20),
+ &const_quot, &rem));
+ ASSERT_EQ (const_quot, C (1));
+ ASSERT_KNOWN_EQ (rem, ph::make (4, 5, 0));
+ ASSERT_EQ (can_div_trunc_p (ph::make (9, 11, 20),
+ ph::make (5, 5, 20),
+ &const_quot, &rem), N == 1);
+ if (N == 1)
+ {
+ ASSERT_EQ (const_quot, C (1));
+ ASSERT_KNOWN_EQ (rem, C (4));
+ }
}
/* Test the form of can_div_trunc_p that returns a polynomail quotient,
ph::make (4, 8, 12),
&const_quot));
ASSERT_EQ (const_quot, C (3));
- ASSERT_EQ (can_div_away_from_zero_p (ph::make (15, 25, 40),
- ph::make (4, 8, 10),
- &const_quot), N <= 2);
- ASSERT_EQ (const_quot, C (N <= 2 ? 4 : 3));
+ ASSERT_TRUE (can_div_away_from_zero_p (ph::make (15, 25, 40),
+ ph::make (4, 8, 10),
+ &const_quot));
+ ASSERT_EQ (const_quot, C (4));
ASSERT_EQ (can_div_away_from_zero_p (ph::make (43, 79, 80),
ph::make (4, 8, 10),
&const_quot), N == 1);
- ASSERT_EQ (const_quot, C (N == 1 ? 11 : N == 2 ? 4 : 3));
+ ASSERT_EQ (const_quot, C (N == 1 ? 11 : 4));
ASSERT_TRUE (can_div_away_from_zero_p (ph::make (3, 4, 5),
ph::make (4, 5, 6),
&const_quot));
&const_quot, &rem));
ASSERT_EQ (const_quot, -2);
ASSERT_KNOWN_EQ (rem, ph::make (2, 1, 3));
+ ASSERT_TRUE (can_div_trunc_p (ph::make (-9, -10, -20),
+ ph::make (-5, -5, -20),
+ &const_quot, &rem));
+ ASSERT_EQ (const_quot, C (1));
+ ASSERT_KNOWN_EQ (rem, ph::make (-4, -5, 0));
+ ASSERT_EQ (can_div_trunc_p (ph::make (-9, -11, -20),
+ ph::make (-5, -5, -20),
+ &const_quot, &rem), N == 1);
+ if (N == 1)
+ {
+ ASSERT_EQ (const_quot, C (1));
+ ASSERT_KNOWN_EQ (rem, C (-4));
+ }
+ ASSERT_TRUE (can_div_trunc_p (ph::make (9, 10, 20),
+ ph::make (-5, -5, -20),
+ &const_quot, &rem));
+ ASSERT_EQ (const_quot, C (-1));
+ ASSERT_KNOWN_EQ (rem, ph::make (4, 5, 0));
+ ASSERT_EQ (can_div_trunc_p (ph::make (9, 11, 20),
+ ph::make (-5, -5, -20),
+ &const_quot, &rem), N == 1);
+ if (N == 1)
+ {
+ ASSERT_EQ (const_quot, C (-1));
+ ASSERT_KNOWN_EQ (rem, C (4));
+ }
+ ASSERT_TRUE (can_div_trunc_p (ph::make (-9, -10, -20),
+ ph::make (5, 5, 20),
+ &const_quot, &rem));
+ ASSERT_EQ (const_quot, C (-1));
+ ASSERT_KNOWN_EQ (rem, ph::make (-4, -5, 0));
+ ASSERT_EQ (can_div_trunc_p (ph::make (-9, -11, -20),
+ ph::make (5, 5, 20),
+ &const_quot, &rem), N == 1);
+ if (N == 1)
+ {
+ ASSERT_EQ (const_quot, C (-1));
+ ASSERT_KNOWN_EQ (rem, C (-4));
+ }
}
/* Test the form of can_div_trunc_p that returns a poly_int, for signed C. */