content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Thu Mar 21 00:51:38 GMT 2024
   */
  
  package de.beiri22.stringincrementor;
  
  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 de.beiri22.stringincrementor.StringIncrementor;
  import de.beiri22.stringincrementor.relativestring.RelativeString;
  import de.beiri22.stringincrementor.relativestring.StringLink;
  import java.io.InputStream;
  import org.evosuite.runtime.EvoRunner;
  import org.evosuite.runtime.EvoRunnerParameters;
  import org.junit.runner.RunWith;
  
  @RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, separateClassLoader = true) 
  public class StringIncrementor_Original_ESTest extends StringIncrementor_Original_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPatchTaking2ArgumentsReturningEmptyString() throws Throwable  {
        RelativeString arg1 = new RelativeString((InputStream) null);
        String patch = StringIncrementor.patch("", arg1);
        assertEquals("", patch);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testDiffTaking3ArgumentsReturningRelativeStringWhereGetLengthIsZero() throws Throwable  {
        RelativeString diff = StringIncrementor.diff("e3qe:&Ew\fc&akUf", "", false);
        assertEquals(0, diff.linksCount());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testDiffTaking3ArgumentsWithFalse() throws Throwable  {
        RelativeString diff = StringIncrementor.diff("e3qe:&Ew\fc&akUf", "e3qe:&Ew\fc&akUf", false);
        assertEquals("", diff.getAbsolute());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPatchTaking3ArgumentsThrowsStringIndexOutOfBoundsException() throws Throwable  {
        RelativeString arg1 = StringIncrementor.diff("Nd8o%BLW#:6qqn", "Nd8o%BLW#:6qqn");
        StringLink arg0 = new StringLink(11, 11, 1);
        arg1.addLink(arg0);
        // Undeclared exception!
        try { 
          StringIncrementor.patch("Nd8o%BLW#:6qqn", arg1, true);
          fail("Expecting exception: StringIndexOutOfBoundsException");
        
        } catch(StringIndexOutOfBoundsException e) {
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPatchTaking3ArgumentsReturningNonEmptyString() throws Throwable  {
        RelativeString arg1 = StringIncrementor.diff("eating index...", "Creating index...");
        String patch = StringIncrementor.patch("eating index...", arg1, false);
        assertEquals("Creating index...", patch);
        assertEquals("Cr", arg1.getAbsolute());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testDiffTaking3ArgumentsWithTrue() throws Throwable  {
        RelativeString diff = StringIncrementor.diff("zV x)(Sg3lA7JElEm'", "zV x)(Sg3lA7JElEm'", true);
        assertEquals("", diff.getAbsolute());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testDiffTaking3ArgumentsThrowsArithmeticException() throws Throwable  {
        // Undeclared exception!
        try { 
          StringIncrementor.diff("sK/TisceT*eHbr54", "p``exaE2_!2e@/", true);
          fail("Expecting exception: ArithmeticException");
        
        } catch(ArithmeticException e) {
           //
           // / by zero
           //
           verifyException("de.beiri22.stringincrementor.StringIncrementor", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testDiffTaking3ArgumentsWithEmptyString() throws Throwable  {
        RelativeString diff = StringIncrementor.diff("", "hV i_~Xr8#dtWSs", false);
        assertEquals("hV i_~Xr8#dtWSs", diff.getAbsolute());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesStringIncrementor() throws Throwable  {
        StringIncrementor stringIncrementor = new StringIncrementor();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPatchTaking2ArgumentsReturningNonEmptyString() throws Throwable  {
        RelativeString arg1 = StringIncrementor.diff("p``exaE2_!2e@/", "p``exaE2_!2e@/");
        String patch = StringIncrementor.patch("p``exaE2_!2e@/", arg1);
        assertEquals("", arg1.getAbsolute());
        assertEquals("p``exaE2_!2e@/", patch);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPatchTaking3ArgumentsReturningEmptyString() throws Throwable  {
        RelativeString arg1 = StringIncrementor.diff("", "");
        String patch = StringIncrementor.patch("", arg1, true);
        assertEquals("", patch);
    }
  }
  