test_timer ()
{
  double D.6967;
  gchar * D.6970;
  double D.6971;
  double D.6972;
  long unsigned int usec.0;
  double D.6976;
  double D.6977;
  double D.6978;
  struct GTimer * timer;
  gdouble elapsed1;
  gdouble elapsed2;
  gulong usec;

  try
    {
      usec = 0;
      timer = monoeg_g_timer_new ();
      sleep (1);
      elapsed1 = monoeg_g_timer_elapsed (timer, 0B);
      D.6967 = elapsed1 + 1.000000000000000055511151231257827021181583404541015625e-1;
      if (D.6967 < 1.0e+0) goto <D.6968>; else goto <D.6969>;
      <D.6968>:
      D.6970 = FAILED ("Elapsed time should be around 1s and was %f", elapsed1);
      return D.6970;
      <D.6969>:
      monoeg_g_timer_stop (timer);
      elapsed1 = monoeg_g_timer_elapsed (timer, 0B);
      elapsed2 = monoeg_g_timer_elapsed (timer, &usec);
      D.6971 = elapsed1 - elapsed2;
      D.6972 = ABS_EXPR <D.6971>;
      if (D.6972 > 9.99999999999999954748111825886258685613938723690807819366e-7) goto <D.6973>; else goto <D.6974>;
      <D.6973>:
      D.6970 = FAILED ("The elapsed times are not equal %f - %f.", elapsed1, elapsed2);
      return D.6970;
      <D.6974>:
      elapsed2 = elapsed2 * 1.0e+6;
      goto <D.6961>;
      <D.6960>:
      elapsed2 = elapsed2 - 1.0e+6;
      <D.6961>:
      if (elapsed2 > 1.0e+6) goto <D.6960>; else goto <D.6962>;
      <D.6962>:
      usec.0 = usec;
      D.6976 = (double) usec.0;
      D.6977 = D.6976 - elapsed2;
      D.6978 = ABS_EXPR <D.6977>;
      if (D.6978 > 1.0e+2) goto <D.6979>; else goto <D.6980>;
      <D.6979>:
      D.6970 = FAILED ("usecs are wrong.");
      return D.6970;
      <D.6980>:
      monoeg_g_timer_destroy (timer);
      D.6970 = 0B;
      return D.6970;
    }
  finally
    {
      usec = {CLOBBER};
    }
}


timer_tests_init ()
{
  struct Test * D.6983;

  D.6983 = &timer_tests;
  return D.6983;
}


