### Question:
PrettyHybridProperty implements HybridProperty<ModelT> { @Override public ObservableList<Token> getTokens() { return myTokens; } PrettyHybridProperty(
      ObservableList<SourceT> source,
      final IndexedTransform<SourceT, Token> read,
      IndexedTransform<Token, SourceT> write,
      Handler<Integer> removeHandler,
      Parser<? extends ModelT> parser,
      PrettyPrinter<? super ModelT> printer,
      ParsingContextFactory parsingContextFactory); @Override ModelT get(); @Override ObservableList<Token> getTokens(); @Override String getPropExpr(); @Override Registration addHandler(EventHandler<? super PropertyChangeEvent<ModelT>> handler);  }### Answer:
@Test public void typos() { init(); addTokens(Tokens.ID); addTokens(new ErrorToken(" ")); prop.getTokens().remove(1); addTokens(new IdentifierToken("x")); addTokens(new ErrorToken(" ")); prop.getTokens().remove(2); addTokens(Tokens.LP); addTokens(new ErrorToken(" ")); prop.getTokens().remove(3); addTokens(Tokens.RP); assertEquals(Arrays.asList(1, 2, 3), removeHandler.invocations); assertSync(); }