@Test
	public void testRender_invalid_values() {
		// With us-ascii charset, bytes values above 0x7f are invalid.
		// With utf-16, 0xD800-0xDFFF are reserved
		// With utf-32, not all possible integer values are valid unicode codepoints.
		// Test that an invalid value forces the render mode to byte_seq.

		ByteMemBufferImpl buf8 = mb(false, 0x85);
		ByteMemBufferImpl buf16_be = mb(true, 0xd8, 0x00);
		ByteMemBufferImpl buf32 = mb(false, 0xaa, 0xaa, 0xaa, 0xaa);

		SettingsBuilder normset = newset();
		SettingsBuilder escseq = newset().set(RENDER_ENUM.ESC_SEQ);
		SettingsBuilder byteseq = newset().set(RENDER_ENUM.BYTE_SEQ);

		// wchar32
		String result = wchar32DT.getRepresentation(buf32, normset, wchar32DT.getLength());
		assertEquals("AAh,AAh,AAh,AAh", result);

		result = wchar32DT.getRepresentation(buf32, escseq, wchar32DT.getLength());
		assertEquals("AAh,AAh,AAh,AAh", result);

		result = wchar32DT.getRepresentation(buf32, byteseq, wchar32DT.getLength());
		assertEquals("AAh,AAh,AAh,AAh", result);

		// wchar16
		result = wchar16DT.getRepresentation(buf16_be, normset, wchar16DT.getLength());
		assertEquals("D8h,00h", result);

		result = wchar16DT.getRepresentation(buf16_be, escseq, wchar16DT.getLength());
		assertEquals("D8h,00h", result);

		result = wchar16DT.getRepresentation(buf16_be, byteseq, wchar16DT.getLength());
		assertEquals("D8h,00h", result);

		// charDT
		result = charDT.getRepresentation(buf8, normset, charDT.getLength());
		assertEquals("85h", result);

		result = charDT.getRepresentation(buf8, escseq, charDT.getLength());
		assertEquals("85h", result);

		result = charDT.getRepresentation(buf8, byteseq, charDT.getLength());
		assertEquals("85h", result);
	}
Test rendering of various Char data types.
<p>
TODO: force the WideCharDataType instance's dataOrg to switch to 32bit.
Ghidra/Framework/SoftwareModeling/src/test/java/ghidra/program/model/data/CharDataTypesRenderTest.java