content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Tue Mar 19 11:06:43 GMT 2024
   */
  
  package org.apache.commons.lang3.builder;
  
  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 java.util.LinkedList;
  import java.util.Set;
  import org.apache.commons.lang3.builder.HashCodeBuilder;
  import org.apache.commons.lang3.builder.IDKey;
  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 HashCodeBuilder_Original_ESTest extends HashCodeBuilder_Original_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testUnregister() throws Throwable  {
        HashCodeBuilder arg0 = new HashCodeBuilder();
        HashCodeBuilder.unregister(arg0);
        assertEquals(17, arg0.toHashCode());
        assertEquals(17, (int)arg0.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking1And1ReturningNegativeAndReflectionHashCodeTaking1And10() throws Throwable  {
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((Object) "tb_4y!.JC4", (String[]) null);
        assertEquals((-1220132505), reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking1And1ReturningPositiveAndReflectionHashCodeTaking1And10() throws Throwable  {
        Object arg0 = new Object();
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode(arg0, false);
        assertEquals(17, reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking6ArgumentsReturningZero() throws Throwable  {
        HashCodeBuilder arg2 = new HashCodeBuilder();
        Class<Object> arg4 = Object.class;
        String[] arg5 = new String[5];
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((-1), (-1), (Object) arg2, false, (Class<? super Object>) arg4, arg5);
        assertEquals(0, reflectionHashCode);
        assertEquals(17, arg2.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRegistry() throws Throwable  {
        Set<IDKey> arg2 = HashCodeBuilder.getRegistry();
        assertNotNull(arg2);
        
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((-2593), (-2593), (Object) arg2, true);
        assertEquals(6723654, reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking3ArgumentsReturningZero() throws Throwable  {
        HashCodeBuilder arg2 = new HashCodeBuilder();
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((-1), (-1), (Object) arg2);
        assertEquals(0, reflectionHashCode);
        assertEquals(17, arg2.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking3ArgumentsReturningPositive() throws Throwable  {
        HashCodeBuilder arg2 = new HashCodeBuilder();
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode(4177, (-1), (Object) arg2);
        assertEquals(4178, reflectionHashCode);
        assertEquals(17, arg2.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsRegisteredReturningFalse() throws Throwable  {
        Integer arg0 = new Integer(0);
        boolean registered = HashCodeBuilder.isRegistered(arg0);
        assertFalse(registered);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendSuperReturningHashCodeBuilderWhereToHashCodeIsNegative() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        byte[] arg0 = new byte[7];
        HashCodeBuilder append = hashCodeBuilder.append(arg0);
        append.appendSuper((-1));
        assertEquals((-779599632), (int)append.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testBuild() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder((-1), (-1));
        Integer build = hashCodeBuilder.build();
        hashCodeBuilder.appendSuper((-1));
        double[] arg0 = new double[4];
        arg0[0] = (double) (-1);
        arg0[1] = (double) (-1);
        arg0[2] = (double) (-1);
        arg0[3] = (double) (int)build;
        hashCodeBuilder.append(arg0);
        assertEquals(0, hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingBooleanReturningHashCodeBuilderWhereToHashCodeIsNegative() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        float[] arg0 = new float[3];
        arg0[0] = (float) 17;
        arg0[1] = (float) 17;
        hashCodeBuilder.append(arg0);
        hashCodeBuilder.append(true);
        assertEquals((-1399445503), hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingLongReturningHashCodeBuilderWhereToHashCodeIsNegative() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        byte[] arg0 = new byte[7];
        HashCodeBuilder append = hashCodeBuilder.append(arg0);
        append.append(190L);
        assertEquals((-779599441), append.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingIntReturningHashCodeBuilderWhereToHashCodeIsPositive() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((int) (byte)80);
        assertEquals(709, hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingByteReturningHashCodeBuilderWhereToHashCodeIsNegative() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder(9, (-2443));
        HashCodeBuilder append = hashCodeBuilder.append((byte)8);
        int hashCode = append.toHashCode();
        assertEquals((-21979), (int)hashCodeBuilder.build());
        assertEquals((-21979), hashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingCharArrayReturningHashCodeBuilderWhereToHashCodeIsNegative() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        char[] arg0 = new char[8];
        hashCodeBuilder.append(arg0);
        assertEquals((-779599631), hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking6ArgumentsReturningNegative() throws Throwable  {
        Class<Object> arg4 = Object.class;
        String[] arg5 = new String[9];
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode(3, 3, (Object) "4}E+|if<`eB,+,@?WS=", true, (Class<? super Object>) arg4, arg5);
        assertEquals((-556103817), reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testToHashCodeReturningPositive() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder(9, (-2443));
        int hashCode = hashCodeBuilder.toHashCode();
        assertEquals(9, hashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingLongReturningHashCodeBuilderWhereToHashCodeIsZero() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder(29, (-1));
        hashCodeBuilder.append((long) 29);
        assertEquals(0, hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingShortArrayReturningHashCodeBuilderWhereToHashCodeIsPositive() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((short[]) null);
        assertEquals(629, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingShortArrayReturningHashCodeBuilderWhereToHashCodeIsNegative() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        short[] arg0 = new short[7];
        hashCodeBuilder.append(arg0);
        assertEquals((-1065792035), (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingObjectArray() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((Object[]) null);
        assertEquals(629, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingObject() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((Object) null);
        assertEquals(629, hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingLongArrayWithNull() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((long[]) null);
        assertEquals(629, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingShortReturningHashCodeBuilderWhereToHashCodeIsZero() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder((-1), (-1));
        long[] arg0 = new long[3];
        HashCodeBuilder append = hashCodeBuilder.append(arg0);
        append.append((short)1);
        assertEquals(0, (int)hashCodeBuilder.build());
        assertEquals(0, hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingIntArray() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((int[]) null);
        assertEquals(629, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingFloatArrayReturningHashCodeBuilderWhereToHashCodeIsPositive() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((float[]) null);
        assertEquals(629, hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingDoubleArrayReturningHashCodeBuilderWhereToHashCodeIsPositive() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((double[]) null);
        assertEquals(629, hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingCharArrayReturningHashCodeBuilderWhereToHashCodeIsPositive() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((char[]) null);
        assertEquals(629, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingChar() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        byte[] arg0 = new byte[7];
        HashCodeBuilder append = hashCodeBuilder.append(arg0);
        append.append('V');
        assertEquals((-779599545), (int)hashCodeBuilder.build());
        assertEquals((-779599545), hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingByteArray() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((byte[]) null);
        assertEquals(629, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingBooleanArrayWithNonEmptyArray() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder(3517, 1255);
        boolean[] arg0 = new boolean[8];
        hashCodeBuilder.append(arg0);
        assertEquals(1359747869, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingBooleanArrayReturningHashCodeBuilderWhereToHashCodeIsPositive() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder((-1), (-1));
        hashCodeBuilder.append((boolean[]) null);
        assertEquals(1, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingBooleanReturningHashCodeBuilderWhereToHashCodeIsPositive() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append(false);
        assertEquals(630, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testFailsToCreateHashCodeBuilderTaking2ArgumentsThrowsIllegalArgumentException0() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = null;
        try {
          hashCodeBuilder = new HashCodeBuilder((-473), 2930);
          fail("Expecting exception: IllegalArgumentException");
        
        } catch(IllegalArgumentException e) {
           //
           // HashCodeBuilder requires an odd multiplier
           //
           verifyException("org.apache.commons.lang3.builder.HashCodeBuilder", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testFailsToCreateHashCodeBuilderTaking2ArgumentsThrowsIllegalArgumentException1() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = null;
        try {
          hashCodeBuilder = new HashCodeBuilder(2844, 3868);
          fail("Expecting exception: IllegalArgumentException");
        
        } catch(IllegalArgumentException e) {
           //
           // HashCodeBuilder requires an odd initial value
           //
           verifyException("org.apache.commons.lang3.builder.HashCodeBuilder", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking6ArgumentsReturningPositive() throws Throwable  {
        LinkedList<String> arg0 = new LinkedList<String>();
        IDKey arg2 = new IDKey(arg0);
        Class<IDKey> arg4 = IDKey.class;
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode(23533, 23533, arg2, true, (Class<? super IDKey>) arg4, (String[]) null);
        assertEquals(1693925572, reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking6ArgumentsThrowsIllegalArgumentException() throws Throwable  {
        Class<Object> arg4 = Object.class;
        String[] arg5 = new String[14];
        // Undeclared exception!
        try { 
          HashCodeBuilder.reflectionHashCode(2156, 2156, (Object) null, false, (Class<? super Object>) arg4, arg5);
          fail("Expecting exception: IllegalArgumentException");
        
        } catch(IllegalArgumentException e) {
           //
           // The object to build a hash code for must not be null
           //
           verifyException("org.apache.commons.lang3.builder.HashCodeBuilder", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking1And1ReturningPositiveAndReflectionHashCodeTaking1And11() throws Throwable  {
        LinkedList<String> arg1 = new LinkedList<String>();
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((Object) arg1, (Collection<String>) arg1);
        assertEquals(17, reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking1And1() throws Throwable  {
        char[] charArray = new char[2];
        String[] arg1 = new String[4];
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((Object) charArray[0], arg1);
        assertEquals(634, reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRegister() throws Throwable  {
        Object arg0 = new Object();
        HashCodeBuilder.register(arg0);
        String[] arg1 = new String[2];
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode(arg0, arg1);
        assertEquals(17, reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsRegisteredReturningTrue() throws Throwable  {
        boolean registered = HashCodeBuilder.isRegistered((Object) null);
        assertFalse(registered);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking4ArgumentsReturningNegative() throws Throwable  {
        HashCodeBuilder arg2 = new HashCodeBuilder();
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((-1947), 7, (Object) arg2, false);
        assertEquals((-95370), reflectionHashCode);
        assertEquals(17, arg2.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingIntReturningHashCodeBuilderWhereToHashCodeIsNegative() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((-3082));
        assertEquals((-2453), hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking1And1ReturningNegativeAndReflectionHashCodeTaking1And11() throws Throwable  {
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((Object) "Qn=VMg|aoUSk<[(O", true);
        assertEquals((-39354868), reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingByteReturningHashCodeBuilderWhereToHashCodeIsZero() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder((-1), (-1));
        HashCodeBuilder append = hashCodeBuilder.append((short)1);
        append.append((byte)2);
        assertEquals(0, append.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingDouble() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((double) (short) (-35));
        assertEquals((-1069448587), hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingFloat() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.append((-464.5708F));
        assertEquals((-1008186491), hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking3ArgumentsReturningNegative() throws Throwable  {
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((-1081229337), (int) (byte)75, (Object) "n?a#jfs}");
        assertEquals((-882623859), reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHashCode() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        hashCodeBuilder.hashCode();
        assertEquals(17, (int)hashCodeBuilder.build());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReflectionHashCodeTaking1And1ReturningNegativeAndReflectionHashCodeTaking1And12() throws Throwable  {
        LinkedList<String> arg1 = new LinkedList<String>();
        int reflectionHashCode = HashCodeBuilder.reflectionHashCode((Object) "6h#M+ft7/LeV", (Collection<String>) arg1);
        assertEquals((-714307977), reflectionHashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendTakingBooleanArrayReturningHashCodeBuilderWhereToHashCodeIsZero() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder((-1), (-1));
        hashCodeBuilder.appendSuper((-1));
        hashCodeBuilder.append((boolean[]) null);
        assertEquals(0, hashCodeBuilder.toHashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testBuildReturningPositive() throws Throwable  {
        HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
        Integer build = hashCodeBuilder.build();
        assertEquals(17, (int)build);
    }
  }
  