@Test
	public void testCombinedTableFilter_TwoFilters_FirstFilterStandard_SecondFilterEmpty() {

		//
		// Test that a combined filter will properly support sub-filtering.   In this case, 
		// combine a standard filter as the initial filter, with a custom filter as the second
		// filter.   This custom filter allows us to control when we return true for 
		// 'isSubFilterOf'
		//

		TableFilter<TestRowObject> customFilter = new EmptyCustomFilter();
		createCombinedStartsWithFilter("t", customFilter);
		assertFilteredEntireModel();
		assertRowCount(4); // matching values: two, ten, ten, ten

		// sub-filter; the custom filter is the empty filter, which reports it can be a 
		// child/sub-filter of any other filter.  This means it should allow the primary filter
		// to work as normal.
		createCombinedStartsWithFilter("te", customFilter);
		assertNumberOfItemsPassedThroughFilter(4);
		assertRowCount(3); // matching values: ten, ten, ten

		createCombinedStartsWithFilter("t", customFilter);
		assertNumberOfItemsPassedThroughFilter(4);
		assertRowCount(4); // matching values: two, ten, ten, ten
	}
Specifically tests the sub-filtering behavior of the {@link ThreadedTableModel}, as well
as some other more complicated filtering combinations
Ghidra/Framework/Docking/src/test.slow/java/docking/widgets/table/threaded/DefaultThreadedTableFilterTest.java