content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Thu Mar 21 03:28:28 GMT 2024
   */
  
  package org.objectweb.asm.jip;
  
  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.evosuite.runtime.EvoRunner;
  import org.evosuite.runtime.EvoRunnerParameters;
  import org.junit.runner.RunWith;
  import org.objectweb.asm.jip.AnnotationVisitor;
  import org.objectweb.asm.jip.ClassWriter;
  import org.objectweb.asm.jip.Label;
  import org.objectweb.asm.jip.MethodWriter;
  
  @RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, separateClassLoader = true) 
  public class MethodWriter_Original_ESTest extends MethodWriter_Original_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReadUnsignedShortReturningPositive() throws Throwable  {
        byte[] arg0 = new byte[7];
        arg0[2] = (byte) (-34);
        int readUnsignedShort = MethodWriter.readUnsignedShort(arg0, 2);
        assertEquals(56832, readUnsignedShort);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReadShortReturningPositive() throws Throwable  {
        byte[] arg0 = new byte[5];
        arg0[2] = (byte)12;
        short readShort = MethodWriter.readShort(arg0, (byte)2);
        assertEquals((short)3072, readShort);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReadShortReturningNegative() throws Throwable  {
        byte[] arg0 = new byte[6];
        arg0[1] = (byte) (-109);
        short readShort = MethodWriter.readShort(arg0, (byte)1);
        assertEquals((short) (-27904), readShort);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReadIntReturningPositive() throws Throwable  {
        byte[] arg0 = new byte[7];
        arg0[1] = (byte) (-5);
        int readInt = MethodWriter.readInt(arg0, (byte)0);
        assertEquals(16449536, readInt);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReadIntReturningNegative() throws Throwable  {
        byte[] arg0 = new byte[6];
        arg0[1] = (byte) (-86);
        int readInt = MethodWriter.readInt(arg0, 1);
        assertEquals((-1442840576), readInt);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNewOffsetTaking4ArgumentsReturningZero() throws Throwable  {
        int[] arg1 = new int[9];
        int newOffset = MethodWriter.getNewOffset(arg1, arg1, 0, 0);
        assertEquals(0, newOffset);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNewOffsetTaking3Arguments0() throws Throwable  {
        int[] arg1 = new int[3];
        Label arg2 = new Label();
        arg2.status = 54;
        MethodWriter.getNewOffset(arg1, arg1, arg2);
        assertArrayEquals(new int[] {0, 0, 0}, arg1);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNewOffsetTaking4ArgumentsReturningNegative() throws Throwable  {
        int[] arg1 = new int[9];
        arg1[3] = 24;
        int newOffset = MethodWriter.getNewOffset(arg1, arg1, 73, 0);
        assertEquals((-97), newOffset);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNewOffsetTaking4ArgumentsReturningPositive() throws Throwable  {
        int[] arg1 = new int[5];
        arg1[1] = (-1);
        int newOffset = MethodWriter.getNewOffset(arg1, arg1, (-1450), (-1));
        assertEquals(1448, newOffset);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNewOffsetTaking3Arguments1() throws Throwable  {
        int[] arg1 = new int[1];
        Label arg2 = new Label();
        MethodWriter.getNewOffset(arg1, arg1, arg2);
        assertEquals(1, arg1.length);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsGetSize0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1698);
        String[] arg5 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "3", "'2/H{", (String) null, arg5, false, false);
        int size = methodWriter.getSize();
        assertEquals(8, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsGetSize1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3588));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3588), "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        arg0.visit((-2455), 26, "q)[[aYnJ6w~yu!", "wcd)+n`<erTp,", "q)[[aYnJ6w~yu!", arg5);
        int size = methodWriter.getSize();
        assertEquals(34, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsGetSize2() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3588));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3588), "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        int size = methodWriter.getSize();
        assertEquals(40, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitLineNumber() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 197, "", "", "UMDQf&@d", arg5, false, false);
        methodWriter.visitInsn(1686);
        Label arg1 = new Label();
        methodWriter.visitLineNumber(1686, arg1);
        int size = methodWriter.getSize();
        assertEquals(47, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsGetSize3() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-2612));
        String[] arg5 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, (-2612), "3", "3", "3", arg5, false, false);
        methodWriter.classReaderOffset = 1;
        int size = methodWriter.getSize();
        assertEquals(6, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitMaxs0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1677);
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 1677, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, false);
        Label arg1 = new Label();
        arg1.addToSubroutine(1, 1048575);
        methodWriter.visitJumpInsn(168, arg1);
        methodWriter.visitMaxs(2, 2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitTryCatchBlockWithNullAndVisitMaxs() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3573));
        String[] arg5 = new String[2];
        arg5[0] = "q)j[aYnJ6wyz!";
        arg5[1] = "q)j[aYnJ6wyz!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3573), "q)j[aYnJ6wyz!", "q)j[aYnJ6wyz!", "q)j[aYnJ6wyz!", arg5, true, false);
        Label arg2 = new Label();
        methodWriter.visitTryCatchBlock(arg2, (Label) null, arg2, "q)j[aYnJ6wyz!");
        methodWriter.visitMaxs(70, 2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitMaxs0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        MethodWriter methodWriter = new MethodWriter(arg0, (-663), "q)j[aYnJ6wyz!", "q)j[aYnJ6wyz!", "q)j[aYnJ6wyz!", (String[]) null, true, true);
        methodWriter.visitMaxs(2, 1);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitMaxs1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1698);
        String[] arg5 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "", "", "", arg5, false, false);
        methodWriter.visitMaxs(59, 59);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitLineNumberWithNegative() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[8];
        arg5[0] = "";
        arg5[1] = "";
        arg5[2] = "";
        arg5[3] = "";
        arg5[4] = "";
        arg5[5] = "";
        arg5[6] = "";
        arg5[7] = "";
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "", "", "", arg5, false, false);
        Label arg1 = new Label();
        methodWriter.visitLineNumber(2, arg1);
        methodWriter.visitLineNumber((-1443978979), arg1);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitLocalVariable0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, true);
        Label arg4 = new Label();
        methodWriter.visitLocalVariable("=^'4", "DVDL nHSS|V=iY", "=^'4", arg4, arg4, 2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitLocalVariable1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1509950702);
        MethodWriter methodWriter = new MethodWriter(arg0, 3524, "JSR/RET are not supported with computeFrames option", "q)[[aYnJ6w~yu!", "Ljava/lang/Synthetic;", (String[]) null, true, false);
        Label arg4 = new Label();
        methodWriter.visitLocalVariable("JSR/RET are not supported with computeFrames option", "JSR/RET are not supported with computeFrames option", "Synthetic", arg4, arg4, 4096);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitLocalVariableThrowsStringIndexOutOfBoundsException() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 1686, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        Label arg4 = new Label();
        methodWriter.visitLocalVariable("PH", "PH", "q)[[aYnJ6w~yu!", arg4, arg4, 2);
        // Undeclared exception!
        try { 
          methodWriter.visitLocalVariable("q)[[aYnJ6w~yu!", "", "Z>\rF~2l", arg4, arg4, (-865));
          fail("Expecting exception: StringIndexOutOfBoundsException");
        
        } catch(StringIndexOutOfBoundsException e) {
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitLocalVariable2() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "LineNumberTable", (String[]) null, false, false);
        Label arg4 = new Label();
        methodWriter.visitLocalVariable("LineNumberTable", "LineNumberTable", "LineNumberTable", arg4, arg4, 1);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitLocalVariableWithNull() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[Je[aYnJ6w~yu!", "q)[Je[aYnJ6w~yu!", "LineNumxberT8ble", (String[]) null, true, true);
        Label arg4 = new Label();
        methodWriter.visitLocalVariable("LocalVariableTypeTable", "LineNumxberT8ble", (String) null, arg4, arg4, 1);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitTryCatchBlockWithNullAndNull() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3588));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3588), "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        methodWriter.visitTryCatchBlock((Label) null, (Label) null, (Label) null, "q)[[aYnJ6w~yu!");
        methodWriter.visitTryCatchBlock((Label) null, (Label) null, (Label) null, "q)[[aYnJ6w~yu!");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitTryCatchBlockWithNonNull() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        MethodWriter methodWriter = new MethodWriter(arg0, (-663), "q)j[aYnJ6wyz!", "q)j[aYnJ6wyz!", "q)j[aYnJ6wyz!", (String[]) null, true, true);
        Label arg2 = new Label();
        methodWriter.visitTryCatchBlock(arg2, arg2, arg2, "@_8rBW33S\"{L");
        methodWriter.visitMaxs(2, 1);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitTryCatchBlockWithNullAndNonNull() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[1];
        arg5[0] = ".kIm\"";
        MethodWriter methodWriter = new MethodWriter(arg0, 1686, "u", "", ".kIm\"", arg5, false, false);
        Label arg2 = new Label();
        methodWriter.visitTryCatchBlock(arg2, arg2, arg2, (String) null);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitMultiANewArrayInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(54);
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 54, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        methodWriter.visitMultiANewArrayInsn("q)[[aYnJ6w~yu!", (-1047));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitMultiANewArrayInsnWithPositive() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitMultiANewArrayInsn("q)[[aYnJ6w~yu!", 2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitMultiANewArrayInsnWithEmptyString() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1659);
        String[] arg5 = new String[6];
        arg5[0] = "k.lW";
        arg5[1] = "3&H>p^Rx7hC";
        arg5[2] = "?{%O-um<<VS7;Elz2s)";
        arg5[3] = "?{%O-um<<VS7;Elz2s)";
        arg5[4] = "StackMapTable";
        arg5[5] = "k.lW";
        MethodWriter methodWriter = new MethodWriter(arg0, (-1721093879), "?{%O-um<<VS7;Elz2s)", "3&H>p^Rx7hC", "k.lW", arg5, false, false);
        methodWriter.visitMultiANewArrayInsn("", (-1721093879));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitTableSwitchInsnThrowsNullPointerException() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3617));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3617), "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, false, false);
        Label arg2 = new Label();
        Label[] arg3 = new Label[4];
        // Undeclared exception!
        try { 
          methodWriter.visitTableSwitchInsn(1454, 22, arg2, arg3);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.objectweb.asm.jip.MethodWriter", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitTableSwitchInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-4803));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6wyu!";
        arg5[1] = "q)[[aYnJ6wyu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-4803), "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", arg5, true, false);
        Label arg2 = new Label();
        Label[] arg3 = new Label[0];
        methodWriter.visitTableSwitchInsn(187, (-318), arg2, arg3);
        assertEquals(0, arg3.length);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitIincInsn0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitIincInsn(1, 256);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitIincInsn1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3609));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3609), "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        methodWriter.visitIincInsn(2, 2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitIincInsnWithNegativeAndNegative() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitIincInsn((-1161), (-1161));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitIincInsn2() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 197, "Cmk%j,d", "Cmk%j,d", "UMD$fU@d", arg5, false, false);
        methodWriter.visitIincInsn(16777221, 16777221);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitLdcInsn0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        arg0.index = 1686;
        String[] arg5 = new String[2];
        arg5[0] = "yWo*x";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 1686, "yWo*x", "q)[[aYnJ6w~yu!", "yWo*x", arg5, true, false);
        methodWriter.visitLdcInsn("yWo*x");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitLdcInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1175));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitFieldInsn(2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "I");
        methodWriter.visitLdcInsn("I");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitLdcInsn1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, true);
        methodWriter.visitLdcInsn("q)[[aYnJ6w~yu!");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetSizeAndVisitLdcInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1698);
        String[] arg5 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 168, "R4aS1-#nS.;za~k^HxG", "R4aS1-#nS.;za~k^HxG", "l", arg5, false, false);
        methodWriter.visitLdcInsn("l");
        methodWriter.visitFrame((-4202), 2, (Object[]) null, 68, arg5);
        arg0.visit(1698, 1048575, "r.06.@T,0!N\"W%I,8C", "V)nNDWx*.Pgw;E,N;", "r.06.@T,0!N\"W%I,8C", arg5);
        int size = methodWriter.getSize();
        assertEquals(44, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitMaxs1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1655);
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        Label arg1 = new Label();
        arg1.status = (-661);
        methodWriter.visitJumpInsn(1, arg1);
        methodWriter.visitMaxs(197, 868);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitMaxs2() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1677);
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 1677, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, false);
        Label arg1 = new Label();
        methodWriter.visitJumpInsn(168, arg1);
        methodWriter.visitMaxs(2, 2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitJumpInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(167);
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 167, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        Label arg1 = new Label();
        methodWriter.visitJumpInsn(167, arg1);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitMethodInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 1686, "yWo*x", "q)[[aYnJ6w~yu!", "yWo*x", arg5, true, false);
        Label arg1 = new Label();
        methodWriter.visitJumpInsn(24, arg1);
        methodWriter.visitMethodInsn(1, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitMethodInsn0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3588));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6wyu!";
        arg5[1] = "q)[[aYnJ6wyu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3588), "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", arg5, true, true);
        methodWriter.visitMethodInsn(185, "s:MQW.!)Nq", "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitMethodInsn1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-2612));
        String[] arg5 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, (-2612), "3", "3", "3", arg5, false, false);
        methodWriter.visitMethodInsn(1, "3", "3", "3");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitMethodInsn2() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3588));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6wyu!";
        arg5[1] = "q)[[aYnJ6wyu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3588), "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", arg5, true, false);
        methodWriter.visitMethodInsn(185, "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitMethodInsn3() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitMethodInsn(186, "s:MQW.!)Nq", "int", "s:MQW.!)Nq");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitFieldInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-4803));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6wyu!";
        arg5[1] = "q)[[aYnJ6wyu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-4803), "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", arg5, true, false);
        methodWriter.visitFieldInsn(1, "Cw-_Z", "Cw-_Z", "Dbm6nrR9i^sD/U<");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFieldInsnWithEmptyString() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1509950715);
        String[] arg5 = new String[1];
        arg5[0] = "";
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "", "", "", arg5, false, false);
        methodWriter.visitFieldInsn(2, "", "", "");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFieldInsnWithNegative() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3583));
        String[] arg5 = new String[2];
        arg5[0] = "1)[[aYnJ6w~yu!";
        arg5[1] = "1)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3583), "1)[[aYnJ6w~yu!", "1)[[aYnJ6w~yu!", "1)[[aYnJ6w~yu!", arg5, true, false);
        methodWriter.visitFieldInsn((-3583), "#@", "1)[[aYnJ6w~yu!", "LocalVariableTypeTable");
        methodWriter.visitTypeInsn(187, "1)[[aYnJ6w~yu!");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitTypeInsn0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3583));
        String[] arg5 = new String[2];
        arg5[0] = "1)[[aYnJ6w~yu!";
        arg5[1] = "1)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3583), "1)[[aYnJ6w~yu!", "1)[[aYnJ6w~yu!", "1)[[aYnJ6w~yu!", arg5, true, false);
        methodWriter.visitTypeInsn(187, "1)[[aYnJ6w~yu!");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitTypeInsnWithNegative() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitTypeInsn((-1161), "~h4/8#+g:");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitLocalVariableWithNegative() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 1686, "yWo*x", "q)[[aYnJ6w~yu!", "yWo*x", arg5, true, true);
        methodWriter.visitVarInsn(1, 1686);
        Label arg4 = new Label();
        methodWriter.visitLocalVariable("q)[[aYnJ6w~yu!", "EnclosingMethod", "q)[[aYnJ6w~yu!", arg4, arg4, (-335));
        int size = methodWriter.getSize();
        assertEquals(86, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitMaxsAndVisitVarInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3615));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3615), "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        methodWriter.visitVarInsn(57, 1);
        methodWriter.visitMaxs(2, 2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndVisitVarInsnAndVisitVarInsnWithPositive0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3573));
        String[] arg5 = new String[2];
        arg5[0] = "q)j[aYnJ6wyz!";
        arg5[1] = "q)j[aYnJ6wyz!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3573), "q)j[aYnJ6wyz!", "q)j[aYnJ6wyz!", "q)j[aYnJ6wyz!", arg5, true, false);
        methodWriter.visitVarInsn(22, 2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndVisitVarInsnAndVisitVarInsnWithPositive1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3588));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6wyu!";
        arg5[1] = "q)[[aYnJ6wyu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3588), "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", "q)[[aYnJ6wyu!", arg5, true, false);
        methodWriter.visitVarInsn(169, 185);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndVisitVarInsnAndVisitVarInsnWithPositive2() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", ",c_0kRf.g$1\"m3w*Bs", (String[]) null, true, true);
        methodWriter.visitVarInsn(24, 125);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndVisitVarInsnAndVisitVarInsnWithNegative0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        MethodWriter methodWriter = new MethodWriter(arg0, 2712, "ae9]bmcW", "ae9]bmcW", "q)[[aYnJ6w~yu!", (String[]) null, false, false);
        methodWriter.visitVarInsn(169, (-4203));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitIntInsnWithNegativeAndVisitFieldInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~wdu!", "q)[[aYnJ6w~wdu!", "q)[[aYnJ6w~wdu!", (String[]) null, true, false);
        methodWriter.visitFieldInsn(2, "q)[[aYnJ6w~wdu!", "q)[[aYnJ6w~wdu!", "q)[[aYnJ6w~wdu!");
        methodWriter.visitIntInsn(183, (-1161));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitIntInsn0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[2];
        arg5[0] = "[;}f)s*XV}z6U%x9";
        arg5[1] = "yWo*x";
        MethodWriter methodWriter = new MethodWriter(arg0, (-1864), "[;}f)s*XV}z6U%x9", "[;}f)s*XV}z6U%x9", "[;}f)s*XV}z6U%x9", arg5, true, false);
        methodWriter.visitIntInsn(188, 25165824);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitIntInsnThrowsNullPointerException() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 1686, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        // Undeclared exception!
        try { 
          methodWriter.visitIntInsn(1686, 1686);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.objectweb.asm.jip.Frame", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitIntInsnWithNegativeAndPositive() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitIntInsn((-2049), 1);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitIntInsn1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3588));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 24, "byte", "byte", (String) null, arg5, false, false);
        methodWriter.visitIntInsn(17, 16777216);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitInsn0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[2];
        arg5[0] = "q)[[awWYnJ6w~yu!";
        arg5[1] = "Wo*Xx";
        MethodWriter methodWriter = new MethodWriter(arg0, (-1002), "KB^H5qXN", "q)[[awWYnJ6w~yu!", "p9jA>c8", arg5, false, true);
        methodWriter.visitInsn(191);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitInsn1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitInsn(2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitInsn2() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitInsn(178);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFrameWithZero() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg4 = new String[2];
        arg4[0] = "[;}f)s*XV}z6U%x9";
        arg4[1] = "yWo*x";
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "[;}f)s*XV}z6U%x9", "[;}f)s*XV}z6U%x9", "[;}f)s*XV}z6U%x9", arg4, true, false);
        methodWriter.visitFrame(0, (-3576), arg4, 0, arg4);
        assertEquals(2, arg4.length);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFrameThrowsNullPointerExceptionAndVisitFrameWithNull() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1691);
        MethodWriter methodWriter = new MethodWriter(arg0, (-1913645811), "5[g'uc-3[", "!s", (String) null, (String[]) null, false, false);
        // Undeclared exception!
        try { 
          methodWriter.visitFrame(0, 1, (Object[]) null, 2, (Object[]) null);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.objectweb.asm.jip.MethodWriter", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetSizeAndVisitJumpInsn() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1698);
        String[] arg4 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "", "", "", arg4, false, false);
        methodWriter.visitFrame(25165824, 1024, arg4, 1024, arg4);
        Label arg1 = new Label();
        methodWriter.visitJumpInsn(802, arg1);
        int size = methodWriter.getSize();
        assertEquals(45, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFrameThrowsNullPointerExceptionAndVisitFrameWithPositive() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1694);
        String[] arg5 = new String[1];
        arg5[0] = "";
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "", "", "", arg5, false, false);
        Label[] arg4 = new Label[1];
        // Undeclared exception!
        try { 
          methodWriter.visitFrame(4, 1694, arg4, 1, arg4);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.objectweb.asm.jip.MethodWriter", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndVisitFrameAndVisitFrameWithNegativeAndVisitFrameWithPositive() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1694);
        String[] arg4 = new String[1];
        arg4[0] = "LocalVariableTypeTable";
        MethodWriter methodWriter = new MethodWriter(arg0, 1, " \"ic>1!=6", "LocalVariableTypeTable", "LocalVariableTypeTable", arg4, false, false);
        methodWriter.visitFrame(1, 1, arg4, 1645, arg4);
        methodWriter.visitFrame(3, (-2152), arg4, 115, arg4);
        assertEquals(1, arg4.length);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFrame() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg4 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "Cmk%j,d", "Cmk%j,d", "UMD$fU@d", arg4, false, false);
        methodWriter.visitFrame(2, 2, arg4, 2, arg4);
        methodWriter.visitTypeInsn(102, "^#Q");
        methodWriter.visitFrame(2, 2, (Object[]) null, 1, (Object[]) null);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFrameThrowsIllegalStateException() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg4 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "Cmk%j,d", "Cmk%j,d", "UMD$fU@d", arg4, false, false);
        methodWriter.visitFrame(2, 2, arg4, 2, arg4);
        // Undeclared exception!
        try { 
          methodWriter.visitFrame(2, 2, (Object[]) null, 1, (Object[]) null);
          fail("Expecting exception: IllegalStateException");
        
        } catch(IllegalStateException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.objectweb.asm.jip.MethodWriter", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndVisitFrameAndVisitFrameWithNegative() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(808);
        String[] arg4 = new String[7];
        arg4[0] = "n*i9~b3^L#P%oJ$Al~";
        arg4[1] = "n*i9~b3^L#P%oJ$Al~";
        arg4[2] = "n*i9~b3^L#P%oJ$Al~";
        arg4[3] = "WTu8EDxo8[";
        arg4[4] = "";
        arg4[5] = "";
        arg4[6] = "n*i9~b3^L#P%oJ$Al~";
        MethodWriter methodWriter = new MethodWriter(arg0, 808, "", "WTu8EDxo8[", "n*i9~b3^L#P%oJ$Al~", arg4, false, false);
        methodWriter.visitFrame((-1), 1, arg4, 2, arg4);
        assertEquals(7, arg4.length);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFrameThrowsNullPointerException0() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1691);
        String[] arg4 = new String[1];
        arg4[0] = "";
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "", "", "", arg4, false, false);
        Object[] arg2 = new Object[8];
        // Undeclared exception!
        try { 
          methodWriter.visitFrame((-1), 2, arg2, 1, arg4);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.objectweb.asm.jip.MethodWriter", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFrameThrowsNullPointerException1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1694);
        String[] arg2 = new String[1];
        arg2[0] = "";
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "", "", "", arg2, false, false);
        Label[] arg4 = new Label[1];
        // Undeclared exception!
        try { 
          methodWriter.visitFrame((-1), 1, arg2, 1694, arg4);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.objectweb.asm.jip.MethodWriter", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndVisitFrameAndVisitFrameWithNullAndVisitFrameWithNull() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1655);
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYn66w~yu!", "q)[[aYn66w~yu!", "q)[[aYn66w~yu!", (String[]) null, true, true);
        methodWriter.visitFrame(1, 1, (Object[]) null, 2, (Object[]) null);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitFrameThrowsNullPointerExceptionAndVisitFrameWithNegative() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1156));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[eY1J6~yuU", "q)[eY1J6~yuU", "q)[eY1J6~yuU", (String[]) null, true, false);
        // Undeclared exception!
        try { 
          methodWriter.visitFrame(0, (-1335), (Object[]) null, 2, (Object[]) null);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.objectweb.asm.jip.MethodWriter", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitParameterAnnotationThrowsArrayIndexOutOfBoundsException() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[2];
        arg5[0] = "yWo*x";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, 1686, "yWo*x", "q)[[aYnJ6w~yu!", "yWo*x", arg5, true, false);
        // Undeclared exception!
        try { 
          methodWriter.visitParameterAnnotation(2, "O.@eUI", false);
          fail("Expecting exception: ArrayIndexOutOfBoundsException");
        
        } catch(ArrayIndexOutOfBoundsException e) {
           //
           // 2
           //
           verifyException("org.objectweb.asm.jip.MethodWriter", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitParameterAnnotation() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1681);
        String[] arg5 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 197, "Cmk%j,d", "Cmk%j,d", "UMDQfU@d", arg5, false, false);
        AnnotationVisitor visitParameterAnnotation = methodWriter.visitParameterAnnotation(197, "Ljava/lang/Synthetic;", false);
        assertNotNull(visitParameterAnnotation);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitParameterAnnotationWithTrue() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        // Undeclared exception!
        try { 
          methodWriter.visitParameterAnnotation(2, "q)[[aYnJ6w~yu!", true);
          fail("Expecting exception: ArrayIndexOutOfBoundsException");
        
        } catch(ArrayIndexOutOfBoundsException e) {
           //
           // 2
           //
           verifyException("org.objectweb.asm.jip.MethodWriter", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitAnnotationWithTrue() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3588));
        String[] arg5 = new String[2];
        arg5[0] = "q)[[aYnJ6w~yu!";
        arg5[1] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3588), "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, true);
        methodWriter.visitAnnotation("T", true);
        int size = methodWriter.getSize();
        assertEquals(52, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitAnnotationWithFalse() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-1161));
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", (String[]) null, true, false);
        methodWriter.visitAnnotation("q)[[aYnJ6w~yu!", false);
        int size = methodWriter.getSize();
        assertEquals(28, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndVisitVarInsnAndVisitVarInsnWithNegative1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3624));
        String[] arg5 = new String[1];
        arg5[0] = "q)[[aYnJ6w~yu!";
        MethodWriter methodWriter = new MethodWriter(arg0, (-3624), "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", "q)[[aYnJ6w~yu!", arg5, true, false);
        methodWriter.visitVarInsn(170, (-3624));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitMaxsThrowsNullPointerException() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1698);
        MethodWriter methodWriter = new MethodWriter(arg0, 2, "<init>", "q)[[aYnJ6w~yu!", "<init>", (String[]) null, false, true);
        Label arg1 = new Label();
        methodWriter.visitJumpInsn(2, arg1);
        // Undeclared exception!
        try { 
          methodWriter.visitMaxs(2, 1698);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.objectweb.asm.jip.Frame", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesMethodWriterAndCallsVisitTypeInsn1() throws Throwable  {
        ClassWriter arg0 = new ClassWriter((-3597));
        MethodWriter methodWriter = new MethodWriter(arg0, 3665, "N?(@8:FB2q", "q)[[aYnJ6w~yu!", "u'9>?f", (String[]) null, false, true);
        methodWriter.visitTypeInsn(2, "q)[[aYnJ6w~yu!");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitEnd() throws Throwable  {
        String[] arg5 = new String[8];
        arg5[0] = "";
        arg5[1] = "StackMapTable";
        arg5[2] = "";
        arg5[3] = "";
        arg5[4] = "";
        arg5[5] = "";
        arg5[6] = "StackMapTable";
        arg5[7] = "";
        ClassWriter arg0 = new ClassWriter(1686);
        MethodWriter methodWriter = new MethodWriter(arg0, (-1256), "8\"X.$`b", "", "RuntimeInvisibleAnnotations", arg5, false, false);
        methodWriter.visitEnd();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitAnnotationDefault() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1698);
        String[] arg5 = new String[0];
        MethodWriter methodWriter = new MethodWriter(arg0, 1, "", "", "", arg5, false, false);
        methodWriter.visitAnnotationDefault();
        int size = methodWriter.getSize();
        assertEquals(22, size);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReadIntReturningZero() throws Throwable  {
        byte[] arg0 = new byte[7];
        int readInt = MethodWriter.readInt(arg0, (byte)0);
        assertEquals(0, readInt);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReadShortReturningZero() throws Throwable  {
        byte[] arg0 = new byte[5];
        short readShort = MethodWriter.readShort(arg0, (byte)2);
        assertEquals((short)0, readShort);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testWriteShort() throws Throwable  {
        byte[] arg0 = new byte[7];
        MethodWriter.writeShort(arg0, 2, 1024);
        assertArrayEquals(new byte[] {(byte)0, (byte)0, (byte)4, (byte)0, (byte)0, (byte)0, (byte)0}, arg0);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitCode() throws Throwable  {
        ClassWriter arg0 = new ClassWriter(1686);
        String[] arg5 = new String[5];
        arg5[0] = "Ia8{OGCG&HQ{jfGs l";
        arg5[1] = "RuntimeVisibleParameterAnnotations";
        arg5[2] = "RuntimeInvisibleAnnotations";
        arg5[3] = "RuntimeInvisibleAnnotations";
        arg5[4] = "Ia8{OGCG&HQ{jfGs l";
        MethodWriter methodWriter = new MethodWriter(arg0, (-2979), "Ia8{OGCG&HQ{jfGs l", "", "RuntimeVisibleParameterAnnotations", arg5, false, false);
        methodWriter.visitCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReadUnsignedShortReturningZero() throws Throwable  {
        byte[] arg0 = new byte[7];
        int readUnsignedShort = MethodWriter.readUnsignedShort(arg0, 2);
        assertEquals(0, readUnsignedShort);
    }
  }
  