### Question:
PositionTokenEvaluator extends TokenEvaluator<Position> { @Override public Set<String> tokens(Position position) { MetaBean metaBean = MetaBean.of(position.getClass()); return Sets.union(metaBean.metaPropertyMap().keySet(), position.getInfo().propertyNames()); }  @Override Class<Position> getTargetType(); @Override Set<String> tokens(Position position); @Override EvaluationResult evaluate(
      Position position,
      CalculationFunctions functions,
      String firstToken,
      List<String> remainingTokens);  }### Answer:
@Test public void tokens() { PositionTokenEvaluator evaluator = new PositionTokenEvaluator(); Set<String> tokens = evaluator.tokens(trade()); Set<String> expected = ImmutableSet.of( "longQuantity", "shortQuantity", "quantity", "security", "info", "id", "attributes"); assertThat(tokens).isEqualTo(expected); }