### Question:
Generator { public List<Pivot> smartGenerate(List<T> staticPart, List<T> pivots, LinkedList<LinkedList<T>> variations){ Logger.getLogger("Generator").info("begin smartgenerating ..."); List<Pivot> result = new ArrayList<>(); LinkedList<LinkedList<T>> suffixes = generate(variations); Logger.getLogger("Generator").info("number of variations in suffixes : "+suffixes.size()); for(T pivot : pivots){ Logger.getLogger("Generator").info("considering pivot:"+pivot.toString()); List<T> entry = new ArrayList<>(); entry.addAll(staticPart); entry.add(pivot); Pivot p = new Pivot(); p.prefix=entry; p.suffixes=suffixes; result.add(p); } return result; } Generator(); Pivot getPivot(); List<Pivot> smartGenerate(List<T> staticPart, 
			List<T> pivots, LinkedList<LinkedList<T>> variations); LinkedList<LinkedList<T>> generate(LinkedList<LinkedList<T>> axes);  }### Answer:
@Test public void testSmartGenerateEmpty() { LinkedList<Integer> input_staticPart = new LinkedList<>(); LinkedList<Integer> input_pivots = new LinkedList<>(); LinkedList<LinkedList<Integer>> input_variations = new LinkedList<>(); List<Generator<Integer>.Pivot> expected = new ArrayList(); Generator<Integer> gen = new Generator<>(); List<Generator<Integer>.Pivot> actual = gen.smartGenerate(input_staticPart, input_pivots, input_variations); assertEquals(expected, actual); }