content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Mon Mar 18 11:35:41 GMT 2024
   */
  
  package org.apache.commons.codec.language;
  
  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 org.apache.commons.codec.language.DoubleMetaphone;
  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 DoubleMetaphone_Original_ESTest extends DoubleMetaphone_Original_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking3ArgumentsReturningTrue() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.isDoubleMetaphoneEqual("W", "W", false);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetMaxCodeLenReturningZero() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
        
        doubleMetaphone.setMaxCodeLen(0);
        int maxCodeLen = doubleMetaphone.getMaxCodeLen();
        assertEquals(0, maxCodeLen);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingObjectReturningNonNull() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        Object encode = doubleMetaphone.encode((Object) "org.apache.commons.codec.EncoderException");
        assertEquals("ARKP", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testDoubleMetaphoneReturningEmptyString() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.doubleMetaphone("`6");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testContainsReturningTrue() throws Throwable  {
        String[] arg3 = new String[6];
        arg3[1] = "";
        boolean contains = DoubleMetaphone.contains("PSCK", 0, 0, arg3);
        assertTrue(contains);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testContainsReturningFalse() throws Throwable  {
        String[] arg3 = new String[0];
        boolean contains = DoubleMetaphone.contains("org.apache.commons.codec.EncoderException", (-1084), (-857), arg3);
        assertFalse(contains);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCharAtReturningOtherChar() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        char charAt = doubleMetaphone.charAt("6", (-548));
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
        assertEquals('\u0000', charAt);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCharAtReturningDigit() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        char charAt = doubleMetaphone.charAt("wFa2;0d-(PR]&_6ZF", 3);
        assertEquals('2', charAt);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCharAtReturningAlphabeticChar() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        char charAt = doubleMetaphone.charAt("org.apache.commons.codec.EncoderException", 0);
        assertEquals('o', charAt);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsComplete() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(651);
        boolean complete = doubleMetaphone_DoubleMetaphoneResult.isComplete();
        assertFalse(complete);
        assertEquals(4, arg0.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendAlternateTakingStringAndAppendAlternateTakingString() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(651);
        doubleMetaphone_DoubleMetaphoneResult.appendAlternate("TIA");
        assertEquals("TIA", doubleMetaphone_DoubleMetaphoneResult.getAlternate());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendAlternateTakingString() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult((-3165));
        // Undeclared exception!
        try { 
          doubleMetaphone_DoubleMetaphoneResult.appendAlternate("&^>f}'PA6oSxN");
          fail("Expecting exception: StringIndexOutOfBoundsException");
        
        } catch(StringIndexOutOfBoundsException e) {
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesDoubleMetaphoneResultTaking2ArgumentsAndCallsAppendPrimaryTakingString() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(620);
        doubleMetaphone_DoubleMetaphoneResult.appendPrimary("bn>@\"8ue@b0z~*xPaT");
        assertEquals(4, arg0.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendPrimaryTakingString() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(1);
        doubleMetaphone_DoubleMetaphoneResult.appendPrimary('T');
        doubleMetaphone_DoubleMetaphoneResult.appendPrimary("T");
        assertEquals("T", doubleMetaphone_DoubleMetaphoneResult.getPrimary());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesDoubleMetaphoneResultTaking2ArgumentsAndCallsAppendAlternateTakingChar0() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(1883);
        doubleMetaphone_DoubleMetaphoneResult.appendAlternate('V');
        assertEquals("V", doubleMetaphone_DoubleMetaphoneResult.getAlternate());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesDoubleMetaphoneResultTaking2ArgumentsAndCallsAppendAlternateTakingChar1() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult((-108));
        doubleMetaphone_DoubleMetaphoneResult.appendAlternate('S');
        assertEquals(4, arg0.getMaxCodeLen());
        assertEquals("", doubleMetaphone_DoubleMetaphoneResult.getAlternate());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetMaxCodeLenReturningPositive() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        int maxCodeLen = doubleMetaphone.getMaxCodeLen();
        assertEquals(4, maxCodeLen);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPrimary() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult((-2258));
        doubleMetaphone_DoubleMetaphoneResult.getPrimary();
        assertEquals(4, arg0.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingChar() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(651);
        doubleMetaphone_DoubleMetaphoneResult.append('\u0000');
        assertEquals("\u0000", doubleMetaphone_DoubleMetaphoneResult.getPrimary());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTaking2Strings() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult((-121));
        // Undeclared exception!
        try { 
          doubleMetaphone_DoubleMetaphoneResult.append("0", "0");
          fail("Expecting exception: StringIndexOutOfBoundsException");
        
        } catch(StringIndexOutOfBoundsException e) {
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingString() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(1);
        doubleMetaphone_DoubleMetaphoneResult.append("M*T'J:\"s,${Unp!i");
        boolean complete = doubleMetaphone_DoubleMetaphoneResult.isComplete();
        assertEquals("M", doubleMetaphone_DoubleMetaphoneResult.getAlternate());
        assertTrue(complete);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAlternate() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(0);
        doubleMetaphone_DoubleMetaphoneResult.getAlternate();
        assertEquals(4, arg0.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTaking2Chars() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(2);
        doubleMetaphone_DoubleMetaphoneResult.appendPrimary('*');
        doubleMetaphone_DoubleMetaphoneResult.append('#', '1');
        boolean complete = doubleMetaphone_DoubleMetaphoneResult.isComplete();
        assertEquals("1", doubleMetaphone_DoubleMetaphoneResult.getAlternate());
        assertFalse(complete);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesDoubleMetaphoneResultTaking2ArgumentsAndCallsAppendPrimaryTakingChar() throws Throwable  {
        DoubleMetaphone arg0 = new DoubleMetaphone();
        DoubleMetaphone.DoubleMetaphoneResult doubleMetaphone_DoubleMetaphoneResult = arg0.new DoubleMetaphoneResult(0);
        doubleMetaphone_DoubleMetaphoneResult.appendPrimary('+');
        assertEquals("", doubleMetaphone_DoubleMetaphoneResult.getPrimary());
        assertEquals(4, arg0.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testDoubleMetaphoneReturningNull() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.doubleMetaphone((String) null);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString0() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("V%%vd%{MM:QdU_Cq}");
        assertEquals("FFTM", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningTrue0() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        boolean doubleMetaphoneEqual = doubleMetaphone.isDoubleMetaphoneEqual("RLLA", "RLLA");
        assertTrue(doubleMetaphoneEqual);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString1() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("CH");
        assertEquals("K", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString2() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("Mh$pCHoMAr2JvH");
        assertEquals("MPXM", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking3Arguments0() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.isDoubleMetaphoneEqual("K", "BACHER", false);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingStringReturningEmptyString() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("w");
        assertEquals("", encode);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString3() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("PSPSCED<1R!WKW:5~G");
        assertEquals("SPST", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString4() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("SCH");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
        assertEquals("X", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString5() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("SCHED<1WW{b:50~G");
        assertEquals("SKTP", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningTrue1() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        boolean doubleMetaphoneEqual = doubleMetaphone.isDoubleMetaphoneEqual("PSZ", "PSZ");
        assertTrue(doubleMetaphoneEqual);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString6() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("Sn]iL");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
        assertEquals("SNL", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningFalse0() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        boolean doubleMetaphoneEqual = doubleMetaphone.isDoubleMetaphoneEqual("NJPT", "SUGAR");
        assertFalse(doubleMetaphoneEqual);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString7() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("RRKP");
        assertEquals("RKP", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString8() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("@PSIER");
        assertEquals("PS", encode);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningTrue2() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.isDoubleMetaphoneEqual("WR", "WR");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningFalse1() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        boolean doubleMetaphoneEqual = doubleMetaphone.isDoubleMetaphoneEqual("b#lac qW%~HgN,", " ScZpePh=^(O");
        assertFalse(doubleMetaphoneEqual);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningTrue3() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.isDoubleMetaphoneEqual("@L~V1r,0HY,aJJ,),q>", "@L~V1r,0HY,aJJ,),q>");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString9() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("iJOS*E");
        assertEquals("AJS", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking3Arguments1() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        boolean doubleMetaphoneEqual = doubleMetaphone.isDoubleMetaphoneEqual("~e_zz[pY4sJWOJt", "Pi", false);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
        assertFalse(doubleMetaphoneEqual);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningTrue4() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        boolean doubleMetaphoneEqual = doubleMetaphone.isDoubleMetaphoneEqual("GNJOSE", "GNJOSE");
        assertTrue(doubleMetaphoneEqual);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningFalse2() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        boolean doubleMetaphoneEqual = doubleMetaphone.isDoubleMetaphoneEqual("HOR", "*M");
        assertFalse(doubleMetaphoneEqual);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString10() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("PSIGHHA.FKPW [/8");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
        assertEquals("SFKP", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString11() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("DE:uGho)%hILo[{");
        assertEquals("TKL", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString12() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("P&D1dUGHO)%HI\"O[{");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
        assertEquals("PTT", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningFalse3() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        boolean doubleMetaphoneEqual = doubleMetaphone.isDoubleMetaphoneEqual("IGhhA.fKPW [/8", "KNSIAN");
        assertFalse(doubleMetaphoneEqual);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningTrue5() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.isDoubleMetaphoneEqual("NGh%&", "NGh%&");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString13() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("Me=hkFgG@lk4+9");
        assertNotNull(encode);
        assertEquals("MKFK", encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString14() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("g4xxx>~R|imL>boWj/p");
        assertEquals("KKSK", encode);
        assertNotNull(encode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetMaxCodeLenWithPositive() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.setMaxCodeLen(9);
        boolean doubleMetaphoneEqual = doubleMetaphone.isDoubleMetaphoneEqual("o40:NW_Z'l?(glI", "WqU;hXCf4");
        assertEquals(9, doubleMetaphone.getMaxCodeLen());
        assertFalse(doubleMetaphoneEqual);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningTrue6() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.isDoubleMetaphoneEqual("CHORE", "CHORE");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningTrue7() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.isDoubleMetaphoneEqual("e)`EjN*cgzu5f,RbpPM", "e)`EjN*cgzu5f,RbpPM");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingString15() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("*CCES");
        assertEquals("XS", encode);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingObjectThrowsException() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        Object arg0 = new Object();
        try { 
          doubleMetaphone.encode(arg0);
          fail("Expecting exception: Exception");
        
        } catch(Exception e) {
           //
           // DoubleMetaphone encode parameter is not of type String
           //
           verifyException("org.apache.commons.codec.language.DoubleMetaphone", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingObjectReturningNull() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        Object encode = doubleMetaphone.encode((Object) "");
        assertNull(encode);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDoubleMetaphoneEqualTaking2ArgumentsAndIsDoubleMetaphoneEqualTaking2ArgumentsReturningTrue8() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.isDoubleMetaphoneEqual(";shZh^NwBdhz", ";shZh^NwBdhz");
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetMaxCodeLenReturningNegative() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        doubleMetaphone.setMaxCodeLen((-596));
        int maxCodeLen = doubleMetaphone.getMaxCodeLen();
        assertEquals((-596), maxCodeLen);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEncodeTakingStringReturningNull() throws Throwable  {
        DoubleMetaphone doubleMetaphone = new DoubleMetaphone();
        String encode = doubleMetaphone.encode("");
        assertNull(encode);
        assertEquals(4, doubleMetaphone.getMaxCodeLen());
    }
  }
  