@Test
	public void testDisassemblerDelaySlotFirstWithContext() throws Exception {

		programBuilder.addBytesFallthroughSetFlowContext(4, 2);
		programBuilder.addBytesBranch(6, 14);

		programBuilder.addBytesFallthroughSetNoFlowContext(10, 3);
		programBuilder.addBytesCallWithDelaySlot(12, 30);
		programBuilder.addBytesBranchConditional(16, 10);
		programBuilder.addBytesReturn(18);

		programBuilder.addBytesReturn(30);

		AddressSetView disAddrs = disassembler.disassemble(addr(4), null);
		assertEquals(addrset(range(4, 7), range(10, 19), range(30, 31)), disAddrs);

		verifyInstructionPresence();

		verifyNoBookmarks();

		Instruction instr = listing.getInstructionAt(addr(12));
		assertEquals(1, instr.getDelaySlotDepth());
		instr = listing.getInstructionAt(addr(14));
		assertTrue(instr.isInDelaySlot());

		//dumpContextRanges(0, 40, "fctx");
		//dumpContextRanges(0, 40, "nfctx");

		//openProgramInTool();

		//@formatter:off
		verifyContextRanges(0, 40, "fctx", 
			new ContextRangeValue(6, 7, 2),
			new ContextRangeValue(10, 11, 2),
			new ContextRangeValue(12, 12, 2), // range split due to nfctx set @ 12
			new ContextRangeValue(13, 19, 2),
			new ContextRangeValue(30, 31, 2));
		verifyContextRanges(0, 40, "nfctx", 
			new ContextRangeValue(12, 12, 3));
		//@formatter:on

	}
4: fctx   #2   (start)
+--  6: bral   14 
|
|   10: nfctx  #3 <-+
|   12: callds 30   |  --+
+-> 14: _or         |    |
    16: breq 10 ----+    |
    18: ret              |
                         |
    30: ret  <-----------+
    
Test delay slot disassembled first w/ context
Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/program/disassemble/DisassemblerTest.java