content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Tue Mar 19 13:52:23 GMT 2024
   */
  
  package com.google.javascript.jscomp;
  
  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 com.google.javascript.jscomp.AbstractCompiler;
  import com.google.javascript.jscomp.Compiler;
  import com.google.javascript.jscomp.ControlFlowAnalysis;
  import com.google.javascript.jscomp.ControlFlowGraph;
  import com.google.javascript.jscomp.NodeTraversal;
  import com.google.javascript.rhino.Node;
  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 ControlFlowAnalysis_Original_ESTest extends ControlFlowAnalysis_Original_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsContinueStructureReturningFalse() throws Throwable  {
        Node arg0 = new Node(103);
        boolean continueStructure = ControlFlowAnalysis.isContinueStructure(arg0);
        assertFalse(continueStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFollowNodeTaking2Arguments() throws Throwable  {
        Node arg0 = new Node(86, 86, 86);
        Node node = new Node(114, arg0, arg0, arg0, 43, 38);
        Node computeFollowNode = ControlFlowAnalysis.computeFollowNode(arg0, (ControlFlowAnalysis) null);
        assertNotNull(computeFollowNode);
        assertFalse(computeFollowNode.isAssign());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFollowNodeTakingNodeReturningNodeWhereIsWhileIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg0 = compiler.parseTestCode("=SC_CONSTANT_PROPERTY_REHSSIGNED_VALUE");
        Node node = new Node(113, arg0, arg0);
        Node computeFollowNode = ControlFlowAnalysis.computeFollowNode(arg0);
        assertNotNull(computeFollowNode);
        assertEquals(113, computeFollowNode.getType());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFollowNodeTakingNodeReturningNodeWhereIsDoIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg0 = compiler.parseTestCode("com.google.javascript.jscomp.ControlFlowAnalysis");
        Node node = new Node(114, arg0, arg0, arg0, arg0);
        Node computeFollowNode = ControlFlowAnalysis.computeFollowNode(arg0);
        assertNotNull(computeFollowNode);
        assertEquals((-1), computeFollowNode.getCharno());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFollowNodeTakingNodeReturningNodeWhereIsCaseIsTrue() throws Throwable  {
        Node arg3 = Node.newString((-538), ": k", (-538), (-538));
        Node arg2 = new Node(111, arg3, arg3, arg3, 49, 51);
        Node arg0 = Node.newString(": k", 2, 16);
        Node node = new Node((-582), arg0, arg2);
        Node computeFollowNode = ControlFlowAnalysis.computeFollowNode(arg0);
        assertEquals(29, Node.JSDOC_INFO_PROP);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsWhileIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg2 = compiler.parseTestCode("yt{X#8!EN#pBj");
        Node arg0 = new Node(113, arg2, arg2);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(46, Node.IS_NAMESPACE);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsVarIsTrue() throws Throwable  {
        Node arg1 = Node.newString("?T\"8Bv{CN", 103, 115);
        Node arg0 = new Node(118, arg1);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(16, Node.FLAG_LOCAL_RESULTS);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsTrueIsTrue() throws Throwable  {
        Node arg3 = new Node(125, 125, 125);
        Node arg0 = new Node(44, arg3, arg3, arg3);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertTrue(computeFallThrough.isTrue());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsThrowIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg1 = compiler.parseTestCode("com.google.javascript.jscomp.ControlFlowAnalysis");
        Node arg0 = new Node(49, arg1);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(37, Node.OPT_ARG_NAME);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsThisIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg4 = compiler.parseTestCode("|h");
        Node arg0 = new Node(42, arg4, arg4, arg4, arg4);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(45, Node.IS_VAR_ARGS_PARAM);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsSwitchIsTrue() throws Throwable  {
        Node arg1 = Node.newString("?T\"8Bv{CN", 115, 103);
        Node arg0 = new Node(110, arg1);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isLabelName());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsReturnIsTrue() throws Throwable  {
        Node arg3 = Node.newString((-564), "", (-564), (-958));
        Node arg0 = new Node(4, arg3, arg3, arg3, (-1637), 44);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isTrue());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsRegExpIsTrue() throws Throwable  {
        Node arg4 = new Node(86);
        Node arg0 = new Node(47, arg4, arg4, arg4, arg4);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertTrue(computeFallThrough.isRegExp());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsNumberIsTrue() throws Throwable  {
        Node arg3 = new Node(125);
        Node arg0 = new Node(39, arg3, arg3, arg3, 46, 30);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isCase());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsNullIsTrue() throws Throwable  {
        Node arg4 = Node.newString(126, "hsI<:ghy}U;gy1");
        Node arg0 = new Node(41, arg4, arg4, arg4, arg4);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isFor());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsNewIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg4 = compiler.parseTestCode("yt{X#8!ENpBj");
        Node arg0 = new Node(30, arg4, arg4, arg4, arg4);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isWhile());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsNameIsTrue() throws Throwable  {
        Node arg0 = new Node(38, 1, 45);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(36, Node.QUOTED_PROP);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsIfIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg2 = compiler.parseTestCode("3t,X#8o!j");
        Node arg0 = new Node(108, arg2, arg2);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(52, Node.LENGTH);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsGetElemIsTrue() throws Throwable  {
        Node arg0 = new Node(35);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isDo());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsFunctionIsTrue() throws Throwable  {
        Node arg0 = new Node(105);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(49, Node.DIRECT_EVAL);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsFalseIsTrue() throws Throwable  {
        Node arg0 = new Node(43);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isOptionalArg());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsDelPropIsTrue() throws Throwable  {
        Node arg1 = Node.newString("", (-564), 0);
        Node arg0 = new Node(31, arg1);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isBreak());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsCatchIsTrue() throws Throwable  {
        Node arg0 = new Node(120);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(12, Node.COLUMN_BITS);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsBreakIsTrue() throws Throwable  {
        Node arg0 = new Node(116);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isCatch());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsBlockIsTrue() throws Throwable  {
        Node arg0 = new Node(125, 125, 125);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isFromExterns());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsAssignIsTrue() throws Throwable  {
        Node arg1 = Node.newString("yt{X#8!EN#pBj", 1784, 1784);
        Node arg0 = new Node(86, arg1);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isSwitch());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereHasMoreThanOneChildIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg2 = compiler.parseTestCode("[+u0{pm|~A.xweU+`");
        Node arg3 = Node.newString(51, "[+u0{pm|~A.xweU+`");
        Node arg0 = new Node(2, arg2, arg2, arg3, (-3450), 54);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.equals((Object)arg3));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereGetTypeIsNegative() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg3 = compiler.parseTestCode("com.google.common.collect.Collections2");
        Node arg0 = new Node((-856), arg3, arg3, arg3, (-1852), (-1852));
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(42, Node.SIDE_EFFECT_FLAGS);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereGetLinenoIsZero() throws Throwable  {
        Node[] arg1 = new Node[0];
        Node arg0 = new Node(1810, arg1);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isOnlyModifiesThisCall());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsSyntheticBlockIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg0 = compiler.parseTestCode("com.google.javascript.jscomp.DisambiguateProperties$ConcreteTypeSystem");
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertEquals(4095, Node.COLUMN_MASK);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsDecIsTrue() throws Throwable  {
        Node arg0 = new Node(103, 41, 41);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isVar());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFallThroughReturningNodeWhereIsIncIsTrue() throws Throwable  {
        Node arg0 = new Node(102);
        Node computeFallThrough = ControlFlowAnalysis.computeFallThrough(arg0);
        assertFalse(computeFallThrough.isVar());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsNullIsTrue() throws Throwable  {
        Node arg1 = new Node(103, 103, 103);
        Node arg0 = new Node(41, arg1, 42, 16);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowException() throws Throwable  {
        Node arg1 = new Node(125);
        Node arg0 = new Node(54, arg1, 1, 41);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertFalse(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsGetPropIsTrue() throws Throwable  {
        Node arg0 = new Node(33);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsAssignIsTrue() throws Throwable  {
        Node arg0 = new Node(86);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsSyntheticBlockIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg0 = compiler.parseTestCode("7");
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertFalse(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsThrowIsTrue() throws Throwable  {
        Node arg0 = new Node(49);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsBreakTargetReturningTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg4 = compiler.parseTestCode("com.google.javascript.jscomp.ControlFlowAnalysis");
        Node arg0 = new Node(114, arg4, arg4, arg4, arg4);
        boolean breakTarget = ControlFlowAnalysis.isBreakTarget(arg0, (String) null);
        assertTrue(breakTarget);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsBreakTargetWithNodeWhereIsSyntheticBlockIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg0 = compiler.parseTestCode("com.google.javascript.jscomp.ControlFlowAnalysis");
        boolean breakTarget = ControlFlowAnalysis.isBreakTarget(arg0, (String) null);
        assertFalse(breakTarget);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testProcessWithNodeWhereIsLabelIsTrueAndNodeWhereIsLabelIsTrue() throws Throwable  {
        Compiler arg0 = new Compiler();
        Node arg3 = arg0.parseTestCode("");
        ControlFlowAnalysis controlFlowAnalysis = new ControlFlowAnalysis(arg0, true, true);
        Node arg1 = new Node(126, arg3, arg3, arg3, 115, (-2122));
        controlFlowAnalysis.process(arg1, arg1);
        assertEquals(39, Node.EMPTY_BLOCK);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testVisitThrowsNullPointerException() throws Throwable  {
        Compiler arg0 = new Compiler();
        Node arg2 = arg0.parseTestCode("");
        Node arg1 = new Node(115, arg2, arg2, arg2, 2, 0);
        ControlFlowAnalysis controlFlowAnalysis = new ControlFlowAnalysis(arg0, true, true);
        // Undeclared exception!
        try { 
          controlFlowAnalysis.visit((NodeTraversal) null, arg1, arg2);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("com.google.javascript.jscomp.ControlFlowAnalysis", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetCatchHandlerForBlock() throws Throwable  {
        Node arg0 = new Node(125);
        Node node = new Node(16, arg0, arg0, 52, 29);
        Node catchHandlerForBlock = ControlFlowAnalysis.getCatchHandlerForBlock(arg0);
        assertNull(catchHandlerForBlock);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetExceptionHandlerWithNodeWhereIsBlockIsTrue() throws Throwable  {
        Node arg0 = new Node(125);
        // Undeclared exception!
        try { 
          ControlFlowAnalysis.getExceptionHandler(arg0);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("com.google.javascript.jscomp.ControlFlowAnalysis", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetExceptionHandlerWithNodeWhereIsFunctionIsTrue() throws Throwable  {
        Node arg2 = new Node(125, 125, 125);
        Node arg0 = new Node(105, arg2, arg2, 8203, 30);
        Node exceptionHandler = ControlFlowAnalysis.getExceptionHandler(arg0);
        assertNull(exceptionHandler);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetExceptionHandlerWithNodeWhereGetTypeIsNegative() throws Throwable  {
        Node arg0 = new Node((-1416));
        // Undeclared exception!
        try { 
          ControlFlowAnalysis.getExceptionHandler(arg0);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("com.google.javascript.jscomp.ControlFlowAnalysis", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetExceptionHandlerWithNodeWhereIsScriptIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg0 = compiler.parseTestCode("3t,X#8o!j");
        Node exceptionHandler = ControlFlowAnalysis.getExceptionHandler(arg0);
        assertNull(exceptionHandler);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsContinueStructureWithNonNull() throws Throwable  {
        Node arg0 = Node.newString(115, "F$mn`,F|)Q3m1");
        boolean continueStructure = ControlFlowAnalysis.isContinueStructure(arg0);
        assertTrue(continueStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsContinueStructureWithNodeWhereIsDoIsTrue() throws Throwable  {
        Node arg1 = Node.newString(115, "F$mn`,F|)Q3m1");
        Node arg0 = new Node(114, arg1);
        boolean continueStructure = ControlFlowAnalysis.isContinueStructure(arg0);
        assertTrue(continueStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsContinueStructureWithNodeWhereIsWhileIsTrue() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg2 = compiler.parseTestCode("yt{X#8!EN#pBj");
        Node arg0 = new Node(113, arg2, arg2);
        boolean continueStructure = ControlFlowAnalysis.isContinueStructure(arg0);
        assertTrue(continueStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsBreakTargetWithNodeWhereIsBlockIsTrue() throws Throwable  {
        Node arg0 = new Node(125, 125, 125);
        // Undeclared exception!
        try { 
          ControlFlowAnalysis.isBreakTarget(arg0, "=u(7^gts]OEj");
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("com.google.javascript.jscomp.ControlFlowAnalysis", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsBreakStructure() throws Throwable  {
        Node arg3 = Node.newString((-564), "", (-564), (-959));
        Node arg0 = new Node(115, arg3, arg3, arg3, 2, 10);
        boolean breakStructure = ControlFlowAnalysis.isBreakStructure(arg0, false);
        assertTrue(breakStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsBreakTargetWithNodeWhereIsWhileIsTrueAndEmptyString() throws Throwable  {
        Compiler compiler = new Compiler();
        Node arg1 = compiler.parseTestCode("com.google.javascript.jscomp.ControlFlowAnalysis");
        Node arg0 = new Node(113, arg1);
        // Undeclared exception!
        try { 
          ControlFlowAnalysis.isBreakTarget(arg0, "");
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("com.google.javascript.jscomp.ControlFlowAnalysis", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsDecIsTrue() throws Throwable  {
        Node arg0 = new Node(103);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsIncIsTrue() throws Throwable  {
        Node arg0 = new Node(102, 102, 102);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsInstanceOfIsTrue() throws Throwable  {
        Node arg1 = Node.newString((-564), "", (-564), (-564));
        Node arg0 = new Node(52, arg1);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNonNull() throws Throwable  {
        Node arg0 = Node.newString(37, "com.google.javascript.jscomp.ControlFlowAnalysis$AstControlFlowGraph$2", 938, 1);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsGetElemIsTrue() throws Throwable  {
        Node arg0 = new Node(35);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMayThrowExceptionWithNodeWhereIsNewIsTrue() throws Throwable  {
        Node arg0 = new Node(30);
        boolean mayThrowException = ControlFlowAnalysis.mayThrowException(arg0);
        assertTrue(mayThrowException);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsBreakTarget() throws Throwable  {
        Node arg0 = Node.newString(108, "JSC_FUNCTION_NAMESPACE_ERROR", 125, 125);
        Node node = new Node(792, arg0);
        boolean breakTarget = ControlFlowAnalysis.isBreakTarget(arg0, "com.google.javascript.jscomp.ControlFlowAnalysis$AstControlFlowGraph");
        assertFalse(breakTarget);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsBreakTargetThrowsNullPointerException() throws Throwable  {
        Node arg0 = Node.newString(110, "JSC_FUNCTION_NAMESPACE_ERROR", 110, 110);
        // Undeclared exception!
        try { 
          ControlFlowAnalysis.isBreakTarget(arg0, "JSC_FUNCTION_NAMESPACE_ERROR");
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("com.google.javascript.jscomp.ControlFlowAnalysis", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFollowNodeTakingNodeReturningNodeWhereIsInIsTrue() throws Throwable  {
        Node arg0 = new Node(125);
        Node arg2 = new Node(51);
        Node node = new Node((-3), arg0, arg2);
        Node computeFollowNode = ControlFlowAnalysis.computeFollowNode(arg0);
        assertEquals(8, Node.FLAG_NO_THROWS);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testComputeFollowNodeTakingNodeReturningNull() throws Throwable  {
        Node arg0 = Node.newString(125, "JSC_FUNCTION_NAMESPACE_ERROR", 125, 125);
        Node node = new Node(16, arg0);
        Node computeFollowNode = ControlFlowAnalysis.computeFollowNode(arg0);
        assertNull(computeFollowNode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testProcessWithNonNullAndNonNull() throws Throwable  {
        Compiler arg0 = new Compiler();
        Node arg1 = Node.newString(4, "", 4, 4);
        ControlFlowAnalysis controlFlowAnalysis = new ControlFlowAnalysis(arg0, false, true);
        controlFlowAnalysis.process(arg1, arg1);
        assertFalse(arg1.isLocalResultCall());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testProcessWithNodeWhereGetTypeIsNegativeAndNodeWhereGetTypeIsNegative() throws Throwable  {
        Compiler arg0 = new Compiler();
        Node arg3 = new Node(117, 117, 117);
        ControlFlowAnalysis controlFlowAnalysis = new ControlFlowAnalysis(arg0, false, false);
        Node arg1 = new Node((-1), arg3, arg3, arg3);
        // Undeclared exception!
        try { 
          controlFlowAnalysis.process(arg1, arg1);
          fail("Expecting exception: RuntimeException");
        
        } catch(RuntimeException e) {
           //
           // INTERNAL COMPILER ERROR.
           // Please report this problem.
           // Cannot find continue target.
           //
           verifyException("com.google.common.base.Preconditions", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testProcessWithNodeWhereIsIfIsTrueAndNodeWhereIsIfIsTrue() throws Throwable  {
        Compiler arg0 = new Compiler();
        Node arg3 = arg0.parseTestCode("CannOt find continue target.");
        ControlFlowAnalysis controlFlowAnalysis = new ControlFlowAnalysis(arg0, true, true);
        Node arg1 = new Node(108, arg3, arg3, arg3, 36, 30);
        // Undeclared exception!
        try { 
          controlFlowAnalysis.process(arg1, arg1);
          fail("Expecting exception: RuntimeException");
        
        } catch(RuntimeException e) {
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testProcessWithNodeWhereIsReturnIsTrue() throws Throwable  {
        Compiler arg0 = new Compiler();
        Node arg3 = arg0.parseTestCode("z E: k");
        ControlFlowAnalysis controlFlowAnalysis = new ControlFlowAnalysis(arg0, true, true);
        Node arg1 = new Node(4, arg3, arg3, arg3, 0, 0);
        controlFlowAnalysis.process(arg1, arg1);
        assertEquals(0, arg1.getCharno());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testProcessWithNodeWhereIsFunctionIsTrueAndNodeWhereIsFunctionIsTrue() throws Throwable  {
        Node arg1 = new Node(105);
        Compiler arg0 = new Compiler();
        ControlFlowAnalysis controlFlowAnalysis = new ControlFlowAnalysis(arg0, false, false);
        // Undeclared exception!
        try { 
          controlFlowAnalysis.process(arg1, arg1);
          fail("Expecting exception: RuntimeException");
        
        } catch(RuntimeException e) {
           //
           // INTERNAL COMPILER ERROR.
           // Please report this problem.
           // null
           //
           verifyException("com.google.common.base.Preconditions", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testProcessWithNodeWhereIsDoIsTrueAndNodeWhereIsDoIsTrue() throws Throwable  {
        Node arg3 = new Node(86);
        Compiler arg0 = new Compiler();
        ControlFlowAnalysis controlFlowAnalysis = new ControlFlowAnalysis(arg0, false, false);
        Node arg1 = new Node(114, arg3, arg3, arg3, 43, 38);
        controlFlowAnalysis.process(arg1, arg1);
        assertFalse(arg1.isThrow());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetCfg() throws Throwable  {
        Compiler arg0 = new Compiler();
        ControlFlowAnalysis controlFlowAnalysis = new ControlFlowAnalysis(arg0, true, true);
        ControlFlowGraph<Node> cfg = controlFlowAnalysis.getCfg();
        assertNull(cfg);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testProcessWithNodeWhereIsBlockIsTrueAndNodeWhereIsBlockIsTrue() throws Throwable  {
        Node arg2 = new Node(125);
        ControlFlowAnalysis arg1 = new ControlFlowAnalysis((AbstractCompiler) null, false, false);
        arg1.process(arg2, arg2);
        NodeTraversal nodeTraversal = new NodeTraversal((AbstractCompiler) null, arg1);
        Node arg0 = new Node(77, arg2, arg2);
        nodeTraversal.traverse(arg0);
        assertTrue(arg0.isTry());
    }
  }
  