### Question:
InlineParser { public List<String> evaluate() { final GroovyShell shell = new GroovyShell(); return flattenSegments(Lists.transform(splitWithInlineExpression(), new Function<String, Object>() { @Override public Object apply(final String input) { StringBuilder expression = new StringBuilder(input); if (!input.startsWith("\"")) { expression.insert(0, "\""); } if (!input.endsWith("\"")) { expression.append("\""); } return shell.evaluate(expression.toString()); } })); }  List<String> split(); List<String> evaluate();  }### Answer:
@Test public void testEvaluate() { assertThat(new InlineParser(" 1 , 2 ").evaluate(), hasItems("1", "2")); assertThat(new InlineParser(" 1 , t_order_${1..2} ").evaluate(), hasItems("1", "t_order_1", "t_order_2")); assertThat(new InlineParser(" 1 , t_order_${null} ").evaluate(), hasItems("1", "t_order_")); assertThat(new InlineParser(" 1 , t_order_${'xx'} ").evaluate(), hasItems("1", "t_order_xx")); assertThat(new InlineParser(" t_${['new','old']}_order_${1..2} ").evaluate(), hasItems("t_new_order_1", "t_new_order_2", "t_old_order_1", "t_old_order_2")); assertThat(new InlineParser(" t_${[\"new${1+2}\",'old']}_order_${1..2} ").evaluate(), hasItems("t_new3_order_1", "t_new3_order_2", "t_old_order_1", "t_old_order_2")); }