content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Mon Mar 18 12:42:41 GMT 2024
   */
  
  package org.apache.commons.lang3;
  
  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.lang.reflect.Array;
  import java.util.LinkedList;
  import java.util.List;
  import org.apache.commons.lang3.ClassUtils;
  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 ClassUtils_Original_ESTest extends ClassUtils_Original_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPublicMethodThrowsNullPointerException() throws Throwable  {
        Class<Object>[] classArray = (Class<Object>[]) Array.newInstance(Class.class, 7);
        Class<String>[] arg2 = (Class<String>[]) Array.newInstance(Class.class, 1);
        // Undeclared exception!
        try { 
          ClassUtils.getPublicMethod(classArray[0], "java.lang", arg2);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.apache.commons.lang3.ClassUtils", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testWrapperToPrimitiveReturningNull() throws Throwable  {
        Class<Object> arg0 = Object.class;
        Class<?> wrapperToPrimitive = ClassUtils.wrapperToPrimitive(arg0);
        assertNull(wrapperToPrimitive);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPrimitiveToWrapperReturningClassWhereIsArrayIsTrue() throws Throwable  {
        Class<?> arg0 = ClassUtils.getClass("org.apache.commons.lang3.builder.ToStringStyle$DefaultToStringStyle[]");
        Class<?> primitiveToWrapper = ClassUtils.primitiveToWrapper(arg0);
        assertSame(arg0, primitiveToWrapper);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClassArraysReturningFalse() throws Throwable  {
        Class<Object>[] arg1 = (Class<Object>[]) Array.newInstance(Class.class, 1);
        boolean assignable = ClassUtils.isAssignable(arg1, arg1);
        assertFalse(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClasssReturningFalse() throws Throwable  {
        Class<Character> arg1 = Character.TYPE;
        Class<String> arg0 = String.class;
        boolean assignable = ClassUtils.isAssignable(arg0, arg1);
        assertFalse(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetSimpleNameTaking2ArgumentsReturningNull() throws Throwable  {
        String simpleName = ClassUtils.getSimpleName((Object) null, (String) null);
        assertNull(simpleName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTaking2ArgumentsReturningNull() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName((Object) null, (String) null);
        assertNull(shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortCanonicalNameTaking2ArgumentsReturningNull() throws Throwable  {
        String shortCanonicalName = ClassUtils.getShortCanonicalName((Object) null, (String) null);
        assertNull(shortCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTaking2ArgumentsReturningNull() throws Throwable  {
        Object[] objectArray = new Object[1];
        String packageName = ClassUtils.getPackageName(objectArray[0], (String) null);
        assertNull(packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageCanonicalNameTakingStringReturningNonEmptyString() throws Throwable  {
        String packageCanonicalName = ClassUtils.getPackageCanonicalName("java.lang");
        assertEquals("java", packageCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageCanonicalNameTaking2ArgumentsReturningNull() throws Throwable  {
        String packageCanonicalName = ClassUtils.getPackageCanonicalName((Object) null, (String) null);
        assertNull(packageCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetClassTaking3ArgumentsThrowsClassNotFoundException0() throws Throwable  {
        ClassLoader arg0 = ClassLoader.getSystemClassLoader();
        try { 
          ClassUtils.getClass(arg0, "[]", false);
          fail("Expecting exception: ClassNotFoundException");
        
        } catch(ClassNotFoundException e) {
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPrimitiveToWrapperWithClassWhereIsPrimitiveIsTrue() throws Throwable  {
        Class<Character> arg0 = Character.TYPE;
        Class<?> primitiveToWrapper = ClassUtils.primitiveToWrapper(arg0);
        assertEquals(17, primitiveToWrapper.getModifiers());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClasssAnd1WithClassWhereIsPrimitiveIsTrue() throws Throwable  {
        Class<Character> arg1 = Character.TYPE;
        boolean assignable = ClassUtils.isAssignable(arg1, arg1, true);
        assertTrue(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClasssAnd1WithNullAndIsAssignableTaking2ClasssAnd1ReturningFalse() throws Throwable  {
        boolean assignable = ClassUtils.isAssignable((Class<?>) null, (Class<?>) null, true);
        assertFalse(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsPrimitiveWrapperReturningFalse() throws Throwable  {
        Class<Object> arg0 = Object.class;
        boolean primitiveWrapper = ClassUtils.isPrimitiveWrapper(arg0);
        assertFalse(primitiveWrapper);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsPrimitiveWrapperReturningTrue() throws Throwable  {
        Class<Character> arg0 = Character.class;
        boolean primitiveWrapper = ClassUtils.isPrimitiveWrapper(arg0);
        assertTrue(primitiveWrapper);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClassArraysAnd1WithTrue() throws Throwable  {
        boolean assignable = ClassUtils.isAssignable((Class<?>[]) null, (Class<?>[]) null, true);
        assertTrue(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTakingStringReturningNonEmptyString() throws Throwable  {
        String packageName = ClassUtils.getPackageName("java.lang");
        assertEquals("java", packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTakingString0() throws Throwable  {
        String packageName = ClassUtils.getPackageName("[]");
        assertEquals("", packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTakingStringWithEmptyString() throws Throwable  {
        String packageName = ClassUtils.getPackageName("");
        assertEquals("", packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTakingClassReturningNonEmptyString() throws Throwable  {
        Class<Object> arg0 = Object.class;
        String packageName = ClassUtils.getPackageName(arg0);
        assertEquals("java.lang", packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTakingString0() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName("java.lang");
        assertEquals("lang", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTakingStringReturningEmptyString() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName("");
        assertEquals("", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTakingClassReturningNonEmptyString() throws Throwable  {
        Class<?> arg0 = ClassUtils.getClass("org.apache.commons.lang3.ClassUtils[]");
        String shortClassName = ClassUtils.getShortClassName(arg0);
        assertEquals("ClassUtils[]", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortCanonicalNameTakingStringThrowsNullPointerException() throws Throwable  {
        // Undeclared exception!
        try { 
          ClassUtils.getShortCanonicalName("[]");
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortCanonicalNameTakingStringReturningNonEmptyString() throws Throwable  {
        String shortCanonicalName = ClassUtils.getShortCanonicalName("[L)7;");
        assertEquals(")7[]", shortCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageCanonicalNameTakingString0() throws Throwable  {
        String packageCanonicalName = ClassUtils.getPackageCanonicalName("[L");
        assertEquals("", packageCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageCanonicalNameTakingClassReturningEmptyString() throws Throwable  {
        String packageCanonicalName = ClassUtils.getPackageCanonicalName((Class<?>) null);
        assertEquals("", packageCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageCanonicalNameTakingClassReturningNonEmptyString() throws Throwable  {
        Class<Object> arg0 = Object.class;
        String packageCanonicalName = ClassUtils.getPackageCanonicalName(arg0);
        assertEquals("java.lang", packageCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageCanonicalNameTaking2ArgumentsReturningEmptyString() throws Throwable  {
        String packageCanonicalName = ClassUtils.getPackageCanonicalName((Object) null, "");
        assertEquals("", packageCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageCanonicalNameTaking2ArgumentsReturningNonEmptyString() throws Throwable  {
        String packageCanonicalName = ClassUtils.getPackageCanonicalName((Object) "tw73!,T$Oegl!", "tw73!,T$Oegl!");
        assertEquals("java.lang", packageCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortCanonicalNameTakingClassReturningEmptyString() throws Throwable  {
        String shortCanonicalName = ClassUtils.getShortCanonicalName((Class<?>) null);
        assertEquals("", shortCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortCanonicalNameTakingClassReturningNonEmptyString() throws Throwable  {
        Class<Object> arg0 = Object.class;
        String shortCanonicalName = ClassUtils.getShortCanonicalName(arg0);
        assertEquals("Object", shortCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortCanonicalNameTaking2ArgumentsReturningEmptyString() throws Throwable  {
        String shortCanonicalName = ClassUtils.getShortCanonicalName((Object) null, "");
        assertEquals("", shortCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortCanonicalNameTaking2ArgumentsReturningNonEmptyString() throws Throwable  {
        String shortCanonicalName = ClassUtils.getShortCanonicalName((Object) "Object", "Object");
        assertEquals("String", shortCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetClassTakingStringThrowsNullPointerException() throws Throwable  {
        // Undeclared exception!
        try { 
          ClassUtils.getClass((String) null);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // className must not be null.
           //
           verifyException("org.apache.commons.lang3.ClassUtils", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetClassTaking3ArgumentsThrowsClassNotFoundException1() throws Throwable  {
        ClassLoader arg0 = ClassLoader.getSystemClassLoader();
        try { 
          ClassUtils.getClass(arg0, "ClassUtils.1.1[]", false);
          fail("Expecting exception: ClassNotFoundException");
        
        } catch(ClassNotFoundException e) {
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsInnerClass() throws Throwable  {
        Class<String> arg0 = String.class;
        boolean innerClass = ClassUtils.isInnerClass(arg0);
        assertFalse(innerClass);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetClassTaking2Arguments() throws Throwable  {
        Class<?> arg0 = ClassUtils.getClass("org.apache.commons.lang3.ClassUtils$2", true);
        boolean innerClass = ClassUtils.isInnerClass(arg0);
        assertTrue(innerClass);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsInnerClassWithNull() throws Throwable  {
        boolean innerClass = ClassUtils.isInnerClass((Class<?>) null);
        assertFalse(innerClass);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testWrappersToPrimitivesReturningNonEmptyArray() throws Throwable  {
        Class<Object>[] arg0 = (Class<Object>[]) Array.newInstance(Class.class, 1);
        Class<?>[] wrappersToPrimitives = ClassUtils.wrappersToPrimitives(arg0);
        assertEquals(1, wrappersToPrimitives.length);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testWrappersToPrimitivesReturningNull() throws Throwable  {
        Class<?>[] wrappersToPrimitives = ClassUtils.wrappersToPrimitives((Class<?>[]) null);
        assertNull(wrappersToPrimitives);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testWrappersToPrimitivesReturningEmptyArray() throws Throwable  {
        Class<Object>[] arg0 = (Class<Object>[]) Array.newInstance(Class.class, 0);
        Class<?>[] wrappersToPrimitives = ClassUtils.wrappersToPrimitives(arg0);
        assertEquals(0, wrappersToPrimitives.length);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPrimitivesToWrappersReturningNull() throws Throwable  {
        Class<?>[] primitivesToWrappers = ClassUtils.primitivesToWrappers((Class<?>[]) null);
        assertNull(primitivesToWrappers);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPrimitivesToWrappersReturningNonEmptyArray() throws Throwable  {
        Class<Object>[] arg0 = (Class<Object>[]) Array.newInstance(Class.class, 1);
        Class<?>[] primitivesToWrappers = ClassUtils.primitivesToWrappers(arg0);
        assertEquals(1, primitivesToWrappers.length);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPrimitiveToWrapperReturningClassWhereGetModifiersIsZero() throws Throwable  {
        Class<?> arg0 = ClassUtils.getClass("org.apache.commons.lang3.ClassUtils$1$1");
        Class<?> primitiveToWrapper = ClassUtils.primitiveToWrapper(arg0);
        assertEquals("class org.apache.commons.lang3.ClassUtils$1$1", primitiveToWrapper.toString());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testPrimitiveToWrapperReturningNull() throws Throwable  {
        Class<?> primitiveToWrapper = ClassUtils.primitiveToWrapper((Class<?>) null);
        assertNull(primitiveToWrapper);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClasssAnd1WithFalse() throws Throwable  {
        Class<Character> arg0 = Character.TYPE;
        Class<Object> arg1 = Object.class;
        boolean assignable = ClassUtils.isAssignable(arg0, arg1, false);
        assertFalse(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClasssAnd1WithClassWhereIsPrimitiveIsFalse() throws Throwable  {
        Class<Character> arg1 = Character.TYPE;
        Class<Object> arg0 = Object.class;
        boolean assignable = ClassUtils.isAssignable(arg0, arg1, true);
        assertFalse(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClasssAnd1() throws Throwable  {
        Class<Character> arg0 = Character.TYPE;
        Class<Object> arg1 = Object.class;
        boolean assignable = ClassUtils.isAssignable(arg0, arg1, true);
        assertTrue(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClasssReturningTrue() throws Throwable  {
        Class<Character> arg1 = Character.TYPE;
        Class<Character> arg0 = Character.class;
        boolean assignable = ClassUtils.isAssignable(arg0, arg1);
        assertTrue(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClasssAnd1WithNullAndIsAssignableTaking2ClasssAnd1ReturningTrue() throws Throwable  {
        Class<String> arg1 = String.class;
        boolean assignable = ClassUtils.isAssignable((Class<?>) null, arg1, true);
        assertTrue(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClasssAnd1ReturningFalse() throws Throwable  {
        Class<Character> arg1 = Character.TYPE;
        boolean assignable = ClassUtils.isAssignable((Class<?>) null, arg1, true);
        assertFalse(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsPrimitiveOrWrapperReturningFalse() throws Throwable  {
        Class<Object> arg0 = Object.class;
        boolean primitiveOrWrapper = ClassUtils.isPrimitiveOrWrapper(arg0);
        assertFalse(primitiveOrWrapper);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsPrimitiveOrWrapperReturningTrue() throws Throwable  {
        Class<Character> arg0 = Character.class;
        boolean primitiveOrWrapper = ClassUtils.isPrimitiveOrWrapper(arg0);
        assertTrue(primitiveOrWrapper);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsPrimitiveOrWrapperWithNull() throws Throwable  {
        boolean primitiveOrWrapper = ClassUtils.isPrimitiveOrWrapper((Class<?>) null);
        assertFalse(primitiveOrWrapper);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsPrimitiveOrWrapperWithClassWhereIsPrimitiveIsTrue() throws Throwable  {
        Class<Character> arg0 = Character.TYPE;
        boolean primitiveOrWrapper = ClassUtils.isPrimitiveOrWrapper(arg0);
        assertTrue(primitiveOrWrapper);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testToClass() throws Throwable  {
        ClassUtils.Interfaces[] arg0 = ClassUtils.Interfaces.values();
        Class<?>[] arg1 = ClassUtils.toClass(arg0);
        assertNotNull(arg1);
        
        boolean assignable = ClassUtils.isAssignable(arg1, arg1, false);
        assertEquals(2, arg1.length);
        assertTrue(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClassArraysAnd10() throws Throwable  {
        Class<Character>[] arg1 = (Class<Character>[]) Array.newInstance(Class.class, 6);
        boolean assignable = ClassUtils.isAssignable(arg1, arg1, false);
        assertFalse(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClassArraysAnd11() throws Throwable  {
        Class<Object>[] arg1 = (Class<Object>[]) Array.newInstance(Class.class, 1);
        Class<Object>[] arg0 = (Class<Object>[]) Array.newInstance(Class.class, 8);
        boolean assignable = ClassUtils.isAssignable(arg0, arg1, false);
        assertFalse(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testConvertClassesToClassNames() throws Throwable  {
        List<String> convertClassesToClassNames = ClassUtils.convertClassesToClassNames((List<Class<?>>) null);
        assertNull(convertClassesToClassNames);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testConvertClassNamesToClassesReturningNull() throws Throwable  {
        List<Class<?>> convertClassNamesToClasses = ClassUtils.convertClassNamesToClasses((List<String>) null);
        assertNull(convertClassNamesToClasses);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testConvertClassNamesToClassesReturningListWhereIsEmptyIsTrue() throws Throwable  {
        LinkedList<String> arg0 = new LinkedList<String>();
        List<Class<?>> convertClassNamesToClasses = ClassUtils.convertClassNamesToClasses(arg0);
        assertTrue(convertClassNamesToClasses.isEmpty());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAllInterfaces() throws Throwable  {
        List<Class<?>> allInterfaces = ClassUtils.getAllInterfaces((Class<?>) null);
        assertNull(allInterfaces);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAllSuperclassesReturningListWhereIsEmptyIsFalse() throws Throwable  {
        Class<String> arg0 = String.class;
        List<Class<?>> allSuperclasses = ClassUtils.getAllSuperclasses(arg0);
        assertFalse(allSuperclasses.isEmpty());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAllSuperclassesReturningNull() throws Throwable  {
        List<Class<?>> allSuperclasses = ClassUtils.getAllSuperclasses((Class<?>) null);
        assertNull(allSuperclasses);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAllSuperclassesReturningListWhereIsEmptyIsTrue() throws Throwable  {
        Class<Object> arg0 = Object.class;
        List<Class<?>> allSuperclasses = ClassUtils.getAllSuperclasses(arg0);
        assertEquals(0, allSuperclasses.size());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTakingString1() throws Throwable  {
        String packageName = ClassUtils.getPackageName("Lp)7;");
        assertEquals("", packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTakingString2() throws Throwable  {
        String packageName = ClassUtils.getPackageName("L)0");
        assertEquals("", packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageCanonicalNameTakingStringWithNull() throws Throwable  {
        String packageCanonicalName = ClassUtils.getPackageCanonicalName((String) null);
        assertEquals("", packageCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTakingClassReturningEmptyString() throws Throwable  {
        String packageName = ClassUtils.getPackageName((Class<?>) null);
        assertEquals("", packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTaking2ArgumentsReturningEmptyString() throws Throwable  {
        String packageName = ClassUtils.getPackageName((Object) null, "");
        assertEquals("", packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageNameTaking2ArgumentsReturningNonEmptyString() throws Throwable  {
        Object arg0 = new Object();
        String packageName = ClassUtils.getPackageName(arg0, "[java.lang.Clss");
        assertEquals("java.lang", packageName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetSimpleNameTaking2ArgumentsReturningNonEmptyString() throws Throwable  {
        String simpleName = ClassUtils.getSimpleName((Object) null, ":`R%&IRukWLfA7cc");
        assertEquals(":`R%&IRukWLfA7cc", simpleName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetSimpleNameTakingClassReturningEmptyString() throws Throwable  {
        String simpleName = ClassUtils.getSimpleName((Class<?>) null);
        assertEquals("", simpleName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetSimpleNameTakingClassReturningNonEmptyString() throws Throwable  {
        Class<String> arg0 = String.class;
        String simpleName = ClassUtils.getSimpleName(arg0);
        assertEquals("String", simpleName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTakingString1() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName("$");
        assertEquals(".", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTakingString2() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName("[L;");
        assertEquals("[]", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTakingString3() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName("[L");
        assertEquals("L[]", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTakingString4() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName("[B");
        assertEquals("byte[]", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTakingClassReturningEmptyString() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName((Class<?>) null);
        assertEquals("", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTaking2ArgumentsReturningEmptyString() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName((Object) null, "");
        assertEquals("", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortClassNameTaking2ArgumentsReturningNonEmptyString() throws Throwable  {
        String shortClassName = ClassUtils.getShortClassName((Object) "OS/400", "OS/400");
        assertEquals("String", shortClassName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHierarchyTaking2Arguments() throws Throwable  {
        Class<Object> arg0 = Object.class;
        ClassUtils.Interfaces arg1 = ClassUtils.Interfaces.INCLUDE;
        Iterable<Class<?>> hierarchy = ClassUtils.hierarchy(arg0, arg1);
        assertNotNull(hierarchy);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHierarchyTakingClass() throws Throwable  {
        Class<String> arg0 = String.class;
        Iterable<Class<?>> hierarchy = ClassUtils.hierarchy(arg0);
        assertNotNull(hierarchy);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesClassUtils() throws Throwable  {
        ClassUtils classUtils = new ClassUtils();
        assertEquals('$', ClassUtils.INNER_CLASS_SEPARATOR_CHAR);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsAssignableTaking2ClassArraysReturningTrue() throws Throwable  {
        boolean assignable = ClassUtils.isAssignable((Class<?>[]) null, (Class<?>[]) null);
        assertTrue(assignable);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShortCanonicalNameTakingStringReturningEmptyString() throws Throwable  {
        String shortCanonicalName = ClassUtils.getShortCanonicalName("");
        assertEquals("", shortCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetPackageCanonicalNameTakingString1() throws Throwable  {
        String packageCanonicalName = ClassUtils.getPackageCanonicalName("[");
        assertEquals("", packageCanonicalName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testWrapperToPrimitiveReturningClassWhereIsSyntheticIsFalse() throws Throwable  {
        Class<Character> arg0 = Character.class;
        Class<?> wrapperToPrimitive = ClassUtils.wrapperToPrimitive(arg0);
        assertFalse(wrapperToPrimitive.isEnum());
    }
  }
  