  @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);
  }