1 public class DoubleArithTests {
   2 
   3     private static double test_neg(double a) {
   4         return -a;
   5     }
   6 
   7     private static double test_add(double a, double b) {
   8         return a + b;
   9     }
  10 
  11     private static double test_sub(double a, double b) {
  12         return a - b;
  13     }
  14 
  15     private static double test_mul(double a, double b) {
  16         return a * b;
  17     }
  18 
  19     private static double test_div(double a, double b) {
  20         return a / b;
  21     }
  22 
  23     private static double test_rem(double a, double b) {
  24         return a % b;
  25     }
  26 
  27     private static void assertThat(boolean assertion) {
  28         if (! assertion) {
  29             throw new AssertionError();
  30         }
  31     }
  32 
  33     public static void main(String[] args) {
  34         assertThat(test_neg(10.0) == -10.0);
  35         assertThat(test_add(3.0, 2.0) == 5.0);
  36 
  37         assertThat(test_sub(40.0, 13.0) == 27.0);
  38 
  39         assertThat(test_mul(5.0, 200.0) == 1000.0);
  40 
  41         assertThat(test_div(30.0, 3.0) == 10.0);
  42         assertThat(test_div(30.0, 0.0) == Double.POSITIVE_INFINITY);
  43 
  44         assertThat(test_rem(30.0, 3.0) == 0.0);
  45         assertThat(test_rem(29.0, 3.0) == 2.0);
  46         assertThat(Double.isNaN(test_rem(30.0, 0.0)));
  47 
  48     }
  49 }