### Question:
VariableOperations extends Operations<ClientVariable> { public ClientIn in(ClientLiteral... values) { List<ClientExpression> exprList = new ArrayList<ClientExpression>(); Collections.addAll(exprList, values); return new ClientIn(getMe(), exprList); } protected  VariableOperations(); protected  VariableOperations(VariableOperations source); ClientIn in(ClientLiteral... values); ClientIn in(String... values); ClientIn in(Boolean... values); ClientIn in(Byte... values); ClientIn in(Short... values); ClientIn in(Integer... values); ClientIn in(Long... values); ClientIn in(BigInteger... values); ClientIn in(Float... values); ClientIn in(Double... values); ClientIn in(BigDecimal... values); ClientIn in(ClientRange range); ClientIn inRange(Byte start, Byte end); ClientIn inRange(Short start, Short end); ClientIn inRange(Integer start, Integer end); ClientIn inRange(Long start, Long end); ClientIn inRange(BigInteger start, BigInteger end); ClientIn inRange(Float start, Float end); ClientIn inRange(Double start, Double end); ClientIn inRange(BigDecimal start, BigDecimal end); ClientIn inRange(String start, String end);  }### Answer:
@Test public void in_clientLiterals_clientIn() { ClientLiteral expression1 = new ClientNumber(23F); ClientLiteral expression2 = new ClientNumber(23); ClientList clientList = new ClientList(Arrays.<ClientExpression>asList(expression1, expression2)); ClientIn result = clientVariable.in(expression1, expression2); assertEquals(clientVariable, result.getLhs()); assertEquals(clientList, result.getRhs()); }
@Test public void in_strings_clientIn() { String value = "string"; String value2 = "string2"; ClientString expression1 = new ClientString(value); ClientString expression2 = new ClientString(value2); ClientList clientList = new ClientList(Arrays.<ClientExpression>asList(expression1, expression2)); ClientIn result = clientVariable.in(value, value2); assertEquals(clientVariable, result.getLhs()); assertEquals(clientList, result.getRhs()); }
@Test public void in_booleans_clientIn() { Boolean value = true; Boolean value2 = false; ClientBoolean expression1 = new ClientBoolean(value); ClientBoolean expression2 = new ClientBoolean(value2); ClientList clientList = new ClientList(Arrays.<ClientExpression>asList(expression1, expression2)); ClientIn result = clientVariable.in(value, value2); assertEquals(clientVariable, result.getLhs()); assertEquals(clientList, result.getRhs()); }
@Test public void in_integers_clientIn() { Integer value = 23; Integer value2 = 24; ClientNumber expression1 = new ClientNumber(value); ClientNumber expression2 = new ClientNumber(value2); ClientList clientList = new ClientList(Arrays.<ClientExpression>asList(expression1, expression2)); ClientIn result = clientVariable.in(value, value2); assertEquals(clientVariable, result.getLhs()); assertTrue(((ClientList) result.getOperands().get(1)).getItems().containsAll(clientList.getItems())); }
@Test public void in_clientRange_clientIn() { ClientRange expression = new ClientRange(new ClientNumber(23F), new ClientString("string")); ClientIn result = clientVariable.in(expression); assertEquals(clientVariable, result.getLhs()); assertEquals(expression, result.getRhs()); }