@Test
	public void testGenerateChildren_CalledFunctionIsThunk_HideThunks() throws Exception {

		setUpCallNodeWithThunksHidden();

		/*
		
		node1
		0010 -> Function @ 0100
		
			node2
			Call: 0100 -> Thunk_Function_1050 @ 1050 //  <------ ignored thunk; omitted from tree
			
				node3
				Call: 1050 -> Function_1100 @ 1100
				
					node4
					Call: 1100 -> 1200
		*/
		createThunkFunctionCallGraph();

		List<GTreeNode> children = node1.generateChildren(TaskMonitor.DUMMY);
		assertEquals(1, children.size());

		// second node from above should be skipped, since it is at thunk
		OutgoingCallNode node3 = (OutgoingCallNode) children.get(0);
		Address fromAddress = addr("0x0100");
		Address toAddress = addr("0x1100"); // thunked address; no thunk		

		// verify the function for the child is not the thunk function; the thunk is ignored
		assertEquals("Function_1100", node3.getName());
		assertEquals(fromAddress, node3.getSourceAddress());
		assertEquals(toAddress, node3.getRemoteFunction().getEntryPoint());

		children = node3.generateChildren(TaskMonitor.DUMMY);
		assertEquals(1, children.size()); // Call: 1100 -> 1200
		DeadEndNode node4 = (DeadEndNode) children.get(0);
		fromAddress = addr("0x1100");
		toAddress = addr("0x1200");
		assertEquals(fromAddress, node4.getSourceAddress());
		assertEquals(toAddress, node4.getRemoteAddress());
	}
This test class is covering the various types of 'calls' a function can make, such as a
direct call instruction, or through a user-defined reference.   External calls are also a bit
tricky.   This test was created by following the code paths in {@link OutgoingCallNode}
and making sure that each path was followed.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/calltree/OutgoingCallNodeTest.java