@Test
  public void testInput4() {
    String test = "ABCDE-+$*EF*-";
    // ((A (B (C (DE-) +) $) *) (EF*) -)

    addLine("LD", "D");
    addLine("SB", "E");
    addLine("ST", "TEMP1");
    addLine("LD", "C");
    addLine("AD", "TEMP1");
    addLine("ST", "TEMP2");
    addLine("LD", "B");
    addLine("XP", "TEMP2");
    addLine("ST", "TEMP3");
    addLine("LD", "A");
    addLine("ML", "TEMP3");
    addLine("ST", "TEMP4");
    addLine("LD", "E");
    addLine("ML", "F");
    addLine("ST", "TEMP5");
    addLine("LD", "TEMP4");
    addLine("SB", "TEMP5");
    addLine("ST", "TEMP6");

    PostFixToMachineInstructions pf = new PostFixToMachineInstructions(test);
    assertEquals("Input4: ", ans.toString(), pf.convert());
  }
 @Test
 public void testInput10() {
   String test2 = "AB0+/CBA+-/";
   PostFixToMachineInstructions pf = new PostFixToMachineInstructions(test2);
   // expected IllegalArgumentException: 0 is not a valid character"
   exception.expect(IllegalArgumentException.class);
   pf.convert();
 }
 @Test
 public void testInput8() {
   // ((A (BC-) /) (BA-) +) /
   String test = "ABC-/BA-+/";
   // Expected unmatched operator
   PostFixToMachineInstructions pf = new PostFixToMachineInstructions(test);
   exception.expect(IllegalArgumentException.class);
   pf.convert();
 }
 @Test
 public void testInput7() {
   // (AB-) *CBA+-*
   String test = "AB-*CBA+-*";
   // Expected unmatched operator
   PostFixToMachineInstructions pf = new PostFixToMachineInstructions(test);
   exception.expect(IllegalArgumentException.class);
   pf.convert();
 }
 @Test
 public void testInput6() {
   // (A (BC+) /) (C (BA*) +)
   String test = "ABC+/CBA*+";
   // Expected invalid expression
   PostFixToMachineInstructions pf = new PostFixToMachineInstructions(test);
   exception.expect(IllegalArgumentException.class);
   pf.convert();
 }
  @Test
  public void testInput2() {
    String test = "ABC+-";
    addLine("LD", "B");
    addLine("AD", "C");
    addLine("ST", "TEMP1");
    addLine("LD", "A");
    addLine("SB", "TEMP1");
    addLine("ST", "TEMP2");

    PostFixToMachineInstructions pf = new PostFixToMachineInstructions(test);
    assertEquals("Input2: ", ans.toString(), pf.convert());
  }
  @Test
  public void testInput9() {
    String test = "ABC+$CBA-+*";
    // ((A (BC+) $) (C (BA-) +) *)
    addLine("LD", "B");
    addLine("AD", "C");
    addLine("ST", "TEMP1");
    addLine("LD", "A");
    addLine("XP", "TEMP1");
    addLine("ST", "TEMP2");
    addLine("LD", "B");
    addLine("SB", "A");
    addLine("ST", "TEMP3");
    addLine("LD", "C");
    addLine("AD", "TEMP3");
    addLine("ST", "TEMP4");
    addLine("LD", "TEMP2");
    addLine("ML", "TEMP4");
    addLine("ST", "TEMP5");

    PostFixToMachineInstructions pf = new PostFixToMachineInstructions(test);
    assertEquals("Input9: ", ans.toString(), pf.convert());
  }
  @Test
  public void testInput3() {
    String test = "AB-C+DEF-+$";
    // (((AB-) C+)  (D (EF-)+) $)

    addLine("LD", "A");
    addLine("SB", "B");
    addLine("ST", "TEMP1");
    addLine("LD", "TEMP1");
    addLine("AD", "C");
    addLine("ST", "TEMP2");
    addLine("LD", "E");
    addLine("SB", "F");
    addLine("ST", "TEMP3");
    addLine("LD", "D");
    addLine("AD", "TEMP3");
    addLine("ST", "TEMP4");
    addLine("LD", "TEMP2");
    addLine("XP", "TEMP4");
    addLine("ST", "TEMP5");

    PostFixToMachineInstructions pf = new PostFixToMachineInstructions(test);
    assertEquals("Input3: ", ans.toString(), pf.convert());
  }