@Test
public void testCompose3() {

  final String ret = randomUUID().toString();
  Function3<String, String, String, String> f = new Function3<String, String, String, String>() {
    @Override
    public String apply(final String t1, final String t2, final String t3) {
      return ret;
    }
  };
  Function1<String, Integer> s = new Function1<String, Integer>() {
    @Override
    public Integer apply(final String t) {
      return t.length();
    }
  };
  Function3<String, String, String, Integer> composed = Functions.compose(f, s);
  final Integer expected = ret.length();
  assertEquals(expected,
      composed.apply(randomUUID().toString(), randomUUID().toString(), randomUUID().toString()));
}