@Test
public void testInput() {

  // set up runtime environment and get contexts
  initContexts(2);
  FieldElement input = getFieldDefinition().createElement(12345);
  // define per party task with params
  List<Callable<List<AuthenticatedElement>>> tasks = new ArrayList<>();
  tasks.add(() -> runInputter(contexts.get(1), macKeyShareOne, Collections.singletonList(input)));
  tasks.add(() -> runNonInputter(contexts.get(2), macKeyShareTwo, 1, 1));
  List<List<AuthenticatedElement>> results = testRuntime.runPerPartyTasks(tasks);
  assertEquals(results.get(0).size(), 1);
  assertEquals(results.get(1).size(), 1);
  List<AuthenticatedElement> combined =
      Addable.sumRows(results);
  FieldElement actualRecombinedValue = combined.get(0).getShare();
  FieldElement actualRecombinedMac = combined.get(0).getMac();
  CustomAsserts.assertEquals(getFieldDefinition(), input, actualRecombinedValue);
  FieldElement expectedMac = input.multiply(macKeyShareOne.add(macKeyShareTwo));
  CustomAsserts.assertEquals(getFieldDefinition(), expectedMac, actualRecombinedMac);
}