@Test
public void testEmptyList() throws Exception {

  List<String> s1 = new ArrayList<String>();
  s1.add("a");
  s1.add("b");
  List<String> s2 = new ArrayList<String>();
  s2.add("c");
  s2.add("d");
  List<String> s3 = new ArrayList<String>();
  
  /*
   * s3 is empty, therefore the cartesian product should contain zero elements.
   * (i.e. you would not be able to satisfy the presentation policy in this case)
   */
  
  List<List<String>> l = new ArrayList<List<String>>();
  l.add(s1);
  l.add(s2);
  l.add(s3);
  
  List<ArrayList<String>> cp = CartesianProduct.cartesianProduct(l);
  
  List<List<String>> resultSet = new ArrayList<List<String>>();
  assertEquals(resultSet, cp);
}