@Test
	public void sqlConstructionTest() {

		// This is the SQL statement we want to produce.
		final String SQL_TRUTH =
			"AND (desctable.id_exe = exetable.id) AND (exetable.name_exec != 'bad exec name' AND exetable.name_exec != 'bad exec name 2') AND (exetable.name_exec = 'exec name 1' OR exetable.name_exec = 'exec name 3')";

		BSimFilterSet filterSet = new BSimFilterSet();
		filterSet.addEntry(new ExecutableNameBSimFilterType(), List.of("exec name 1"));
		filterSet.addEntry(new Md5BSimFilterType(), List.of("0x0123456789"));
		filterSet.addEntry(new NotExecutableNameBSimFilterType(),
			List.of("bad exec name", "bad exec name 2"));
		filterSet.addEntry(new DateEarlierBSimFilterType(""), List.of("Jan 01, 2000"));
		filterSet.addEntry(new ExecutableNameBSimFilterType(), List.of("exec name 3"));

		runSwing(() -> filterPanel.setFilterSet(filterSet));
		// Now go ahead and generate the SQL and verify it's correct.
		IDSQLResolution[] ids = new IDSQLResolution[] { null, null, null, null, null };
		String sql = runSwing(() -> generateSQL(ids));
		assertEquals(SQL_TRUTH, sql);
	}
Tests that we can construct a proper SQL statement using the filters on the BSIM query panel. 

To do this we open the query dialog, add a few filters, populate them with several filters, then 
call the appropriate functions in the ExecutableFilter class that generate the SLQ string, and 
compare it to what we expect.
Ghidra/Features/BSim/src/test.slow/java/ghidra/features/bsim/gui/QueryFilterTest.java