content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Mon Mar 18 07:56:51 GMT 2024
   */
  
  package umd.cs.shop;
  
  import org.junit.jupiter.api.Test;
  import static org.junit.jupiter.api.Assertions.*;
  import org.junit.jupiter.api.Timeout;
  import java.util.concurrent.TimeUnit;
  import static org.evosuite.runtime.EvoAssertions.*;
  import java.util.Collection;
  import org.evosuite.runtime.EvoRunner;
  import org.evosuite.runtime.EvoRunnerParameters;
  import org.junit.runner.RunWith;
  import umd.cs.shop.JSSubstitution;
  import umd.cs.shop.JSTerm;
  
  @RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, separateClassLoader = true) 
  public class JSTerm_Original_ESTest extends JSTerm_Original_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testStandardizerTermReturningJSTermWhereIsEvalIsTrue() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.add((Object) "%%%");
        jSTerm.makeEval(true);
        jSTerm.standardizerTerm();
        assertTrue(jSTerm.isEval());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsEvalReturningTrue() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.makeEval(true);
        boolean eval = jSTerm.isEval();
        assertTrue(eval);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCloneTReturningJSTermWhereIsEvalIsTrue() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.add((Object) null);
        jSTerm.makeEval(true);
        jSTerm.cloneT();
        assertTrue(jSTerm.isEval());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testApplySubstitutionTReturningJSTermWhereIsEvalIsTrue() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.add((Object) null);
        jSTerm.makeEval(true);
        JSSubstitution arg0 = new JSSubstitution();
        jSTerm.applySubstitutionT(arg0);
        assertTrue(jSTerm.isEval());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsThrowsArrayIndexOutOfBoundsException() throws Throwable  {
        JSTerm arg0 = new JSTerm();
        arg0.makeVariable();
        // Undeclared exception!
        try { 
          arg0.equals(arg0);
          fail("Expecting exception: ArrayIndexOutOfBoundsException");
        
        } catch(ArrayIndexOutOfBoundsException e) {
           //
           // 0 >= 0
           //
           verifyException("java.util.Vector", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsVariable() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        boolean variable = jSTerm.isVariable();
        assertFalse(variable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsConstant() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        boolean constant = jSTerm.isConstant();
        assertFalse(constant);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCallThrowsArrayIndexOutOfBoundsException() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.add((Object) "%%%");
        jSTerm.makeEval(true);
        // Undeclared exception!
        try { 
          jSTerm.call();
          fail("Expecting exception: ArrayIndexOutOfBoundsException");
        
        } catch(ArrayIndexOutOfBoundsException e) {
           //
           // 1 >= 1
           //
           verifyException("java.util.Vector", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCallReturningJSTermWhereSizeIsPositive() throws Throwable  {
        JSTerm arg0 = new JSTerm();
        arg0.add((Object) arg0);
        JSTerm call = arg0.call();
        assertTrue(call.isFunction());
        assertFalse(call.isConstant());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCallAndMakeEval() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.makeVariable();
        jSTerm.makeEval(true);
        jSTerm.call();
        assertTrue(jSTerm.isEval());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCallReturningJSTermWhereCapacityIsZero() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.makeVariable();
        assertTrue(jSTerm.isVariable());
        
        JSTerm call = jSTerm.call();
        assertEquals(0, call.capacity());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsGroundReturningFalse() throws Throwable  {
        JSTerm arg0 = new JSTerm();
        arg0.add((Object) arg0);
        JSTerm standardizerTerm = arg0.standardizerTerm();
        arg0.makeVariable();
        standardizerTerm.addAll((Collection) arg0);
        boolean ground = standardizerTerm.isGround();
        assertTrue(arg0.isVariable());
        assertFalse(ground);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsGroundAndStandardizerTerm() throws Throwable  {
        JSTerm arg0 = new JSTerm();
        arg0.add((Object) arg0);
        JSTerm standardizerTerm = arg0.standardizerTerm();
        standardizerTerm.addAll((Collection) arg0);
        boolean ground = standardizerTerm.isGround();
        assertEquals("[[(this Collection)], [(this Collection)]]", standardizerTerm.toString());
        assertTrue(ground);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testToStrThrowsNullPointerException() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.setSize(40);
        // Undeclared exception!
        try { 
          jSTerm.toStr();
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("umd.cs.shop.JSTerm", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMakeFunction() throws Throwable  {
        JSTerm arg0 = new JSTerm();
        arg0.add((Object) arg0);
        JSTerm jSTerm = new JSTerm();
        arg0.makeFunction();
        boolean equals = jSTerm.equals(arg0);
        assertTrue(arg0.isFunction());
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMakeVariable() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.makeVariable();
        JSTerm arg0 = new JSTerm();
        boolean equals = jSTerm.equals(arg0);
        assertTrue(jSTerm.isVariable());
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testApplySubstitutionTReturningJSTermWhereIsEvalIsFalse() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.add((Object) null);
        JSSubstitution arg0 = new JSSubstitution();
        JSTerm applySubstitutionT = jSTerm.applySubstitutionT(arg0);
        assertFalse(applySubstitutionT.isVariable());
        assertFalse(applySubstitutionT.isConstant());
        assertTrue(applySubstitutionT.isFunction());
        assertFalse(applySubstitutionT.isEval());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCloneTReturningJSTermWhereIsEvalIsFalse() throws Throwable  {
        JSTerm arg0 = new JSTerm();
        arg0.add((Object) arg0);
        JSTerm standardizerTerm = arg0.standardizerTerm();
        standardizerTerm.addAll((Collection) arg0);
        JSTerm cloneT = standardizerTerm.cloneT();
        assertEquals(1, arg0.size());
        assertNotSame(standardizerTerm, cloneT);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPrint() throws Throwable  {
        JSTerm arg0 = new JSTerm();
        arg0.add((Object) arg0);
        arg0.makeEval(true);
        arg0.print();
        assertTrue(arg0.isEval());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPrintThrowsArrayIndexOutOfBoundsException() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.makeVariable();
        // Undeclared exception!
        try { 
          jSTerm.print();
          fail("Expecting exception: ArrayIndexOutOfBoundsException");
        
        } catch(ArrayIndexOutOfBoundsException e) {
           //
           // 0 >= 0
           //
           verifyException("java.util.Vector", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsReturningFalse() throws Throwable  {
        JSTerm arg0 = new JSTerm();
        boolean equals = arg0.equals(arg0);
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMakeConstant() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        jSTerm.makeConstant();
        boolean ground = jSTerm.isGround();
        assertTrue(jSTerm.isConstant());
        assertTrue(ground);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMatchesThrowsArrayIndexOutOfBoundsException() throws Throwable  {
        JSTerm arg0 = new JSTerm();
        arg0.makeVariable();
        JSTerm jSTerm = new JSTerm();
        JSSubstitution arg1 = new JSSubstitution();
        // Undeclared exception!
        try { 
          jSTerm.matches(arg0, arg1);
          fail("Expecting exception: ArrayIndexOutOfBoundsException");
        
        } catch(ArrayIndexOutOfBoundsException e) {
           //
           // 0 >= 0
           //
           verifyException("java.util.Vector", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsEvalReturningFalse() throws Throwable  {
        JSTerm jSTerm = new JSTerm();
        boolean eval = jSTerm.isEval();
        assertFalse(eval);
    }
  }
  