#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_string Param;
  int Number;
  int Char;
  _imp_string Text;
  static int Failures = 0;
  void Pass(void) {
    Printstring(_imp_str_literal("Pass"));
    Newline();
  }
  void Fail(void) {
    Printstring(_imp_str_literal("Fail"));
    Newline();
    Failures++;
  }
  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);
  }
  Openinput(2, _imp_str_literal("Char.dat"));
  Openinput(3, _imp_str_literal("Read.dat"));
  Printstring(_imp_str_literal(
      "Testing The Ability To Read From The Keyboard And Files"));
  Newline();
  Printstring(_imp_str_literal(
      "======================================================="));
  Newline();
  Selectinput(2);
  Text = _imp_str_literal("");
  while (Nextsymbol() != Nl) {
    Text = _imp_join(Text, Tostring(Nextsymbol()));
    Skipsymbol();
  }
  if (Text == _imp_str_literal("Character Input Test Successful"))
    Pass();
  else
    Fail();
  Closeinput();
  Openinput(1, _imp_str_literal("Char.dat"));
  Selectinput(1);
  Text = _imp_str_literal("");
  do {
    Readsymbol(Char);
    Text = _imp_join(Text, Tostring(Char));
  } while (Char != Nl);
  if (Text == _imp_join(_imp_str_literal("Character Input Test Successful"),
                        Tostring(Nl)))
    Pass();
  else
    Fail();
  Selectinput(3);
  Read(Number);
  if (Number == 123456)
    Pass();
  else
    Fail();
  if (Nextsymbol() == 'R')
    Pass();
  else
    Fail();
  Read(Text);
  if (Nextsymbol() == 10)
    Pass();
  else
    Fail();
  Read(Text);
  if (Text == _imp_str_literal("Success"))
    Pass();
  else
    Fail();
  Read(Number);
  if (!Number)
    Pass();
  else
    Fail();
  Read(Number);
  if (Number == -123456)
    Pass();
  else
    Fail();
  Read(Number);
  if (Number == -345543)
    Pass();
  else
    Fail();
  if (Nextsymbol() == 32)
    Pass();
  else
    Fail();
  Selectoutput(0);
  Write(Failures, 1);
  Printstring(_imp_str_literal(" failure(s)"));
  Newline();
  exit(0);
  return (1);
}
