#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_string Param;
  short J;
  short K;
  short M;
  short N;
  static const short Cint3 = 10;
  static const 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++;
  }
  int 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("SHORT INTEGER Arithmetic Validation"));
  Newline();
  Printstring(_imp_str_literal("==================================="));
  Newlines(3);
  Printstring(_imp_str_literal("Test SHORT INTEGER ADDITION."));
  Newline();
  Printstring(_imp_str_literal("----------------------------"));
  Newline();
  J = 50;
  K = 10;
  J += 10;
  if (J == 60)
    Pass();
  else
    Fail();
  J += 10;
  if (J == 70)
    Pass();
  else
    Fail();
  J += Cint3;
  if (J == 80)
    Pass();
  else
    Fail();
  J += Cint3;
  if (J == 90)
    Pass();
  else
    Fail();
  J += K;
  if (J == 100)
    Pass();
  else
    Fail();
  J += K;
  if (J == 110)
    Pass();
  else
    Fail();
  M = J + K;
  if (M == 120)
    Pass();
  else
    Fail();
  if (J == 110 && K == 10)
    Pass();
  else
    Fail();
  Newlines(2);
  Printstring(_imp_str_literal("Test SHORT INTEGER SUBTRACTION."));
  Newline();
  Printstring(_imp_str_literal("-------------------------------"));
  Newline();
  J = 110;
  K = 10;
  J -= 10;
  if (J == 100)
    Pass();
  else
    Fail();
  J -= 10;
  if (J == -90)
    Pass();
  else
    Fail();
  J -= Cint3;
  if (J == -100)
    Pass();
  else
    Fail();
  J -= Cint3;
  if (J == 110)
    Pass();
  else
    Fail();
  J -= K;
  if (J == 100)
    Pass();
  else
    Fail();
  J -= K;
  if (J == -90)
    Pass();
  else
    Fail();
  M = J - K;
  if (M == -100)
    Pass();
  else
    Fail();
  if (J == -90 && K == 10)
    Pass();
  else
    Fail();
  Newlines(2);
  Printstring(_imp_str_literal("Test the UNARY MINUS"));
  Newline();
  Printstring(_imp_str_literal("--------------------"));
  Newlines(1);
  J = 50;
  K = 10;
  N = -Cint4;
  M = -J;
  K = -K;
  J = -(-(-M));
  if (N == -3)
    Pass();
  else
    Fail();
  if (M == -50)
    Pass();
  else
    Fail();
  if (K == -10)
    Pass();
  else
    Fail();
  if (J == 50)
    Pass();
  else
    Fail();
  Selectoutput(0);
  Write(Failures, 1);
  Printstring(_imp_str_literal(" failure(s)"));
  Newline();
  exit(0);
  return (1);
}
