@Test
	public void testGenerateChildren_CalledFunctionIsThunk_ShowThunks() throws Exception {

		/*
		
		node1
		0010 -> Function @ 0100
		
			node2
			Call: 0100 -> Thunk_Function_1050 @ 1050
			
				node3
				Call: 1050 -> Function_1100 @ 1100
				
					node4
					Call: 1100 -> 1200
		*/
		createThunkFunctionCallGraph();

		List<GTreeNode> children = node1.generateChildren(TaskMonitor.DUMMY);
		assertEquals(1, children.size());
		OutgoingCallNode node2 = (OutgoingCallNode) children.get(0);
		Address fromAddress = builder.addr("0x0100");
		Address toAddress = builder.addr("0x1050"); // thunk address
		assertEquals("Thunk_Function_1050", node2.getName());
		assertEquals(fromAddress, node2.getSourceAddress());
		assertEquals(toAddress, node2.getRemoteFunction().getEntryPoint());

		children = node2.generateChildren(TaskMonitor.DUMMY);
		assertEquals(1, children.size());
		OutgoingCallNode node3 = (OutgoingCallNode) children.get(0);
		assertEquals("Function_1100", node3.getName());

		children = node2.generateChildren(TaskMonitor.DUMMY);
		assertEquals(1, children.size()); // node4; Call: 1100 -> 1200
	}
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