@Test
  public void testFilter() {

    final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();

    sce.setFactTypes(new String[] {"Person", "Vehicle"});

    sce.setFieldsForTypes(
        new HashMap<String, ModelField[]>() {
          {
            put(
                "Person",
                new ModelField[] {
                  new ModelField(
                      "age",
                      Integer.class.getName(),
                      FIELD_CLASS_TYPE.REGULAR_CLASS,
                      SuggestionCompletionEngine.TYPE_NUMERIC_INTEGER),
                });

            put(
                "Vehicle",
                new ModelField[] {
                  new ModelField(
                      "make",
                      String.class.getName(),
                      FIELD_CLASS_TYPE.REGULAR_CLASS,
                      SuggestionCompletionEngine.TYPE_STRING),
                });
          }
        });

    assertEquals(2, sce.getFactTypes().length);
    sce.setFactTypeFilter(
        new FactTypeFilter() {
          public boolean filter(String originalFact) {
            return "Person".equals(originalFact);
          }
        });

    assertEquals(1, sce.getFactTypes().length);
    sce.setFilteringFacts(false);

    assertEquals(2, sce.getFactTypes().length);
    sce.setFilteringFacts(true);
    assertEquals(1, sce.getFactTypes().length);

    sce.setFactTypeFilter(null);
    assertEquals(2, sce.getFactTypes().length);
  }