modTest.frink

View or download modTest.frink in plain text format


// This tests the modulus operator.

trouble = 2^31

test[x,y] :=
{
   r = x mod y
   if y > 0
   {
      if ! ((0 <= r) && (r < y))
         println["ERROR:  $x mod $y == $r"]
   } else
   {
      if ! ((0 >= r) && (r > y))
         println["ERROR:  $x mod $y == $r"]
   }
   if ! ((x div y) * y + r == x)
      println["ERROR in reverse:  $x mod $y == $r,  $x div $y == " + (x div y)]
}

for x = trouble - 5 to trouble + 5
   for y = trouble - 5 to trouble + 5
      test[x,y]

for x = -trouble - 5 to -trouble + 5
   for y = trouble - 5 to trouble + 5
      test[x,y]

for x = trouble - 5 to trouble + 5
   for y = -trouble - 5 to -trouble + 5
      test[x,y]

for x = -trouble - 5 to -trouble + 5
   for y = -trouble - 5 to -trouble + 5
      test[x,y]

for x = -trouble - 5 to -trouble + 5
   for y = -5 to 5
   {
      if y != 0
         test[x,y]
      if x != 0
         test[y,x]
   }      


View or download modTest.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 17683 days, 4 hours, 38 minutes ago.