#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_string Param;
  unsigned short J;
  unsigned short K;
  static const unsigned short Cint3 = 10;
  static const unsigned short Cint4 = 3;
  static int Failures = 0;
  void Pass(void) {
    Printstring(_imp_str_literal("Pass"));
    Newline();
  }
  void Fail(void) {
    Printstring(_imp_str_literal("FAIL"));
    Newline();
    Failures++;
  }
  unsigned short F(void) { return (3); }
  Param = Cliparam();
  if (Param == _imp_str_literal(""))
    Selectoutput(2);
  else if (Param == _imp_str_literal("s") || Param == _imp_str_literal("S"))
    Selectoutput(0);
  else if (Param == _imp_str_literal("j") || Param == _imp_str_literal("J")) {
    Openoutput(2, _imp_str_literal("journal"));
    Selectoutput(2);
  } else {
    Openoutput(2, Param);
    Selectoutput(2);
  }
  Newlines(2);
  Printstring(_imp_str_literal("HALF INTEGER Arithmetic Validation"));
  Newline();
  Printstring(_imp_str_literal("=================================="));
  Newlines(3);
  Printstring(_imp_str_literal("Test the Six Simple Relational Comparators"));
  Newline();
  Printstring(_imp_str_literal("------------------------------------------"));
  Newlines(3);
  Newline();
  Printstring(_imp_str_literal("Test for Half Integer Equality"));
  Newline();
  Printstring(_imp_str_literal("------------------------------"));
  Newline();
#if 1 /* 3==3 */
  Pass();
#else
  Fail();
#endif

#if 1 /* Cint4==3 */
  Pass();
#else
  Fail();
#endif

#if 1 /* 3==Cint4 */
  Pass();
#else
  Fail();
#endif

#if 1 /* Cint4==Cint4 */
  Pass();
#else
  Fail();
#endif
  J = Cint4;
  K = Cint4;
  if (J == Cint4)
    Pass();
  else
    Fail();
  if (Cint4 == J)
    Pass();
  else
    Fail();
  if (J == K)
    Pass();
  else
    Fail();
  if (J == J)
    Pass();
  else
    Fail();
  if (J == 3)
    Pass();
  else
    Fail();
  if (3 == J)
    Pass();
  else
    Fail();
  if (3 == F())
    Pass();
  else
    Fail();
  if (F() == 3)
    Pass();
  else
    Fail();
  if (F() * 3 + 10 == F() * F() + 5 * 2)
    Pass();
  else
    Fail();
  Newline();
  Printstring(_imp_str_literal("Test for Half Integer Inequality  "));
  Newline();
  Printstring(_imp_str_literal("--------------------------------"));
  Newline();
#if 0 /* 3!=3 */
Fail();
#else
  Pass();
#endif

#if 0 /* Cint4!=3 */
Fail();
#else
  Pass();
#endif

#if 0 /* 3!=Cint4 */
Fail();
#else
  Pass();
#endif

#if 0 /* Cint4!=Cint4 */
Fail();
#else
  Pass();
#endif
  if (J != Cint4)
    Fail();
  else
    Pass();
  if (Cint4 != J)
    Fail();
  else
    Pass();
  if (J != K)
    Fail();
  else
    Pass();
  if (J != J)
    Fail();
  else
    Pass();
  if (J != 3)
    Fail();
  else
    Pass();
  if (3 != J)
    Fail();
  else
    Pass();
  if (3 != F())
    Fail();
  else
    Pass();
  if (F() != 3)
    Fail();
  else
    Pass();
  Newline();
  Printstring(_imp_str_literal("Test for LESS THAN in Half Integers  "));
  Newline();
  Printstring(_imp_str_literal("-----------------------------------"));
  Newline();
  J = Cint4;
#if 0 /* 3 < 3 */
Fail();
#else
  Pass();
#endif
  if (3 < J)
    Fail();
  else
    Pass();
  if (J < 3)
    Fail();
  else
    Pass();
#if 0 /* 3 < Cint4 */
Fail();
#else
  Pass();
#endif

#if 0 /* Cint4 < 3 */
Fail();
#else
  Pass();
#endif
  if (J < Cint4)
    Fail();
  else
    Pass();
  if (Cint4 < J)
    Fail();
  else
    Pass();
#if 0 /* Cint4 < Cint4 */
Fail();
#else
  Pass();
#endif
  if (J < J)
    Fail();
  else
    Pass();
  if (F() < 3)
    Fail();
  else
    Pass();
  Newline();
  Printstring(
      _imp_str_literal("Test for LESS THAN OR EQUALS in Half Integers  "));
  Newline();
  Printstring(
      _imp_str_literal("---------------------------------------------"));
  Newline();
  J = Cint4;
#if 1 /* 3<=3 */
  Pass();
#else
  Fail();
#endif
  if (3 <= J)
    Pass();
  else
    Fail();
  if (J <= 3)
    Pass();
  else
    Fail();
#if 1 /* 3<=Cint4 */
  Pass();
#else
  Fail();
#endif

#if 1 /* Cint4<=3 */
  Pass();
#else
  Fail();
#endif
  if (J <= Cint4)
    Pass();
  else
    Fail();
  if (Cint4 <= J)
    Pass();
  else
    Fail();
#if 1 /* Cint4<=Cint4 */
  Pass();
#else
  Fail();
#endif
  if (J <= J)
    Pass();
  else
    Fail();
  if (F() <= 3)
    Pass();
  else
    Fail();
  Newline();
  Printstring(_imp_str_literal("Test for GREATER THAN in Half Integers  "));
  Newline();
  Printstring(_imp_str_literal("--------------------------------------"));
  Newline();
  J = Cint4;
#if 0 /* 3 > 3 */
Fail();
#else
  Pass();
#endif
  if (3 > J)
    Fail();
  else
    Pass();
  if (J > 3)
    Fail();
  else
    Pass();
#if 0 /* Cint4 > 3 */
Fail();
#else
  Pass();
#endif
  if (J > Cint4)
    Fail();
  else
    Pass();
  if (Cint4 > J)
    Fail();
  else
    Pass();
#if 0 /* Cint4 > Cint4 */
Fail();
#else
  Pass();
#endif
  if (J > J)
    Fail();
  else
    Pass();
  if (F() > 3)
    Fail();
  else
    Pass();
  Newline();
  Printstring(
      _imp_str_literal("Test for GREATER THAN OR EQUALS in Half Integers  "));
  Newline();
  Printstring(
      _imp_str_literal("------------------------------------------------"));
  Newline();
  J = Cint4;
#if 1 /* 3>=3 */
  Pass();
#else
  Fail();
#endif
  if (3 >= J)
    Pass();
  else
    Fail();
  if (J >= 3)
    Pass();
  else
    Fail();
#if 1 /* 3>=Cint4 */
  Pass();
#else
  Fail();
#endif

#if 1 /* Cint4>=3 */
  Pass();
#else
  Fail();
#endif
  if (J >= Cint4)
    Pass();
  else
    Fail();
  if (Cint4 >= J)
    Pass();
  else
    Fail();
#if 1 /* Cint4>=Cint4 */
  Pass();
#else
  Fail();
#endif
  if (J >= J)
    Pass();
  else
    Fail();
  if (F() >= 3)
    Pass();
  else
    Fail();
  Newline();
  Printstring(_imp_str_literal("Second test for Half Integer Equality  "));
  Newline();
  Printstring(_imp_str_literal("-------------------------------------"));
  Newline();
#if 0 /* 3==10 */
Fail();
#else
  Pass();
#endif

#if 0 /* Cint4==10 */
Fail();
#else
  Pass();
#endif

#if 0 /* 10==Cint4 */
Fail();
#else
  Pass();
#endif

#if 0 /* Cint4==Cint3 */
Fail();
#else
  Pass();
#endif
  J = Cint4;
  K = Cint3;
  if (J == Cint3)
    Fail();
  else
    Pass();
  if (Cint3 == J)
    Fail();
  else
    Pass();
  if (J == K)
    Fail();
  else
    Pass();
  if (J == 10)
    Fail();
  else
    Pass();
  if (10 == J)
    Fail();
  else
    Pass();
  Newline();
  Printstring(_imp_str_literal("Second test for Half Integer Inequality  "));
  Newline();
  Printstring(_imp_str_literal("---------------------------------------"));
  Newline();
#if 1 /* 3!=10 */
  Pass();
#else
  Fail();
#endif

#if 1 /* Cint4!=10 */
  Pass();
#else
  Fail();
#endif

#if 1 /* 10!=Cint4 */
  Pass();
#else
  Fail();
#endif

#if 1 /* Cint4!=Cint3 */
  Pass();
#else
  Fail();
#endif
  if (J != Cint3)
    Pass();
  else
    Fail();
  if (Cint3 != J)
    Pass();
  else
    Fail();
  if (J != K)
    Pass();
  else
    Fail();
  if (J != 10)
    Pass();
  else
    Fail();
  if (10 != J)
    Pass();
  else
    Fail();
  Newline();
  Printstring(_imp_str_literal("Second test for LESS THAN in Half Integers  "));
  Newline();
  Printstring(_imp_str_literal("------------------------------------------"));
  Newline();
#if 1 /* 3 < 10 */
  Pass();
#else
  Fail();
#endif
  if (10 < J)
    Fail();
  else
    Pass();
  if (J < 10)
    Pass();
  else
    Fail();
#if 0 /* 10 < Cint4 */
Fail();
#else
  Pass();
#endif

#if 1 /* Cint4 < 10 */
  Pass();
#else
  Fail();
#endif
  if (J < Cint3)
    Pass();
  else
    Fail();
  if (Cint3 < J)
    Fail();
  else
    Pass();
#if 1 /* Cint4 < Cint3 */
  Pass();
#else
  Fail();
#endif
  Newline();
  Printstring(_imp_str_literal(
      "Second test for LESS THAN OR EQUALS in Half Integers  "));
  Newline();
  Printstring(
      _imp_str_literal("----------------------------------------------------"));
  Newline();
#if 1 /* 3<=10 */
  Pass();
#else
  Fail();
#endif
  if (10 <= J)
    Fail();
  else
    Pass();
  if (J <= 10)
    Pass();
  else
    Fail();
#if 0 /* 10<=Cint4 */
Fail();
#else
  Pass();
#endif

#if 1 /* Cint4<=10 */
  Pass();
#else
  Fail();
#endif
  if (J <= Cint3)
    Pass();
  else
    Fail();
  if (Cint3 <= J)
    Fail();
  else
    Pass();
#if 1 /* Cint4<=Cint3 */
  Pass();
#else
  Fail();
#endif
  if (J <= J)
    Pass();
  else
    Fail();
  Newline();
  Printstring(
      _imp_str_literal("Second test for GREATER THAN in Half Integers  "));
  Newline();
  Printstring(
      _imp_str_literal("---------------------------------------------"));
  Newline();
#if 0 /* 3 > 10 */
Fail();
#else
  Pass();
#endif
  if (10 > J)
    Pass();
  else
    Fail();
  if (J > 10)
    Fail();
  else
    Pass();
#if 0 /* 3 > Cint3 */
Fail();
#else
  Pass();
#endif

#if 0 /* Cint4 > 10 */
Fail();
#else
  Pass();
#endif
  if (J > Cint3)
    Fail();
  else
    Pass();
  if (Cint3 > J)
    Pass();
  else
    Fail();
#if 0 /* Cint4 > Cint3 */
Fail();
#else
  Pass();
#endif
  Newline();
  Printstring(_imp_str_literal(
      "Second test for GREATER THAN OR EQUALS in Half Integers  "));
  Newline();
  Printstring(_imp_str_literal(
      "-------------------------------------------------------"));
  Newline();
#if 1 /* 10>=3 */
  Pass();
#else
  Fail();
#endif
  if (10 >= J)
    Pass();
  else
    Fail();
  if (J >= 10)
    Fail();
  else
    Pass();
#if 1 /* 10>=Cint4 */
  Pass();
#else
  Fail();
#endif

#if 1 /* Cint3>=3 */
  Pass();
#else
  Fail();
#endif
  if (J >= Cint3)
    Fail();
  else
    Pass();
  if (Cint3 >= J)
    Pass();
  else
    Fail();
#if 1 /* Cint3>=Cint4 */
  Pass();
#else
  Fail();
#endif
  Selectoutput(0);
  Write(Failures, 1);
  Printstring(_imp_str_literal(" failure(s)"));
  Newline();
  exit(0);
  return (1);
}
