forked from JavaTX/JavaCompilerCore
fc smaller test
This commit is contained in:
parent
5e18496847
commit
257edfc0b3
@ -29,6 +29,8 @@ public class FiniteClosureBuilder {
|
|||||||
public IFiniteClosure getCollectionExample() {
|
public IFiniteClosure getCollectionExample() {
|
||||||
TypeFactory tf = new TypeFactory();
|
TypeFactory tf = new TypeFactory();
|
||||||
|
|
||||||
|
/* Collection */
|
||||||
|
|
||||||
Type collection = tf.getSimpleType("Collection");
|
Type collection = tf.getSimpleType("Collection");
|
||||||
Type set = tf.getSimpleType("Set", "T");
|
Type set = tf.getSimpleType("Set", "T");
|
||||||
Type sortedSet = tf.getSimpleType("Set", "T");
|
Type sortedSet = tf.getSimpleType("Set", "T");
|
||||||
@ -58,6 +60,22 @@ public class FiniteClosureBuilder {
|
|||||||
add(arrayList, list);
|
add(arrayList, list);
|
||||||
add(stack, vector);
|
add(stack, vector);
|
||||||
|
|
||||||
|
/* Map */
|
||||||
|
Type map = tf.getSimpleType("Map", "K", "V");
|
||||||
|
Type sortedMap = tf.getSimpleType("SortedMap", "K", "V");
|
||||||
|
Type navigableMap = tf.getSimpleType("NavigableMap", "K", "V");
|
||||||
|
Type treeMap = tf.getSimpleType("TreeMap", "K", "V");
|
||||||
|
Type hashMap = tf.getSimpleType("HashMap", "K", "V");
|
||||||
|
Type hashtable = tf.getSimpleType("Hashtable", "K", "V");
|
||||||
|
Type linkedHashMap = tf.getSimpleType("LinkedHashSet", "K", "V");
|
||||||
|
|
||||||
|
add(sortedMap, map);
|
||||||
|
add(hashMap, map);
|
||||||
|
add(hashtable, map);
|
||||||
|
add(navigableMap, sortedMap);
|
||||||
|
add(treeMap, navigableMap);
|
||||||
|
add(linkedHashMap, hashMap);
|
||||||
|
|
||||||
IFiniteClosure fc = getFiniteClosure();
|
IFiniteClosure fc = getFiniteClosure();
|
||||||
clear();
|
clear();
|
||||||
return fc;
|
return fc;
|
||||||
|
@ -168,6 +168,7 @@ public class FiniteClosureTest {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Test Case 7:
|
* Test Case 7:
|
||||||
|
*
|
||||||
* smaller(Set<NotInFc>) =
|
* smaller(Set<NotInFc>) =
|
||||||
* { HashSet<NotInFc>, Set<NotInFc>, TreeSet<NotInFc>, LinkedHashSet<NotInFc>,
|
* { HashSet<NotInFc>, Set<NotInFc>, TreeSet<NotInFc>, LinkedHashSet<NotInFc>,
|
||||||
* HashSet<? ext NotInFc>, Set<? ext NotInFc>, TreeSet<? ext NotInFc>, LinkedHashSet<? ext NotInFc> }
|
* HashSet<? ext NotInFc>, Set<? ext NotInFc>, TreeSet<? ext NotInFc>, LinkedHashSet<? ext NotInFc> }
|
||||||
@ -193,6 +194,112 @@ public class FiniteClosureTest {
|
|||||||
/*
|
/*
|
||||||
* Test Case 8:
|
* Test Case 8:
|
||||||
*
|
*
|
||||||
|
* smaller(Set<? super NotInFC>) =
|
||||||
|
* { Set<NotInFC>, HashSet<NotInFC>, LinkedHashSet<NotInFC>, TreeSet<NotInFC>,
|
||||||
|
* Set<? super NotInFC>, HashSet<? super NotInFC>, LinkedHashSet<? super NotInFC>, TreeSet<? super NotInFc> }
|
||||||
|
*/
|
||||||
|
|
||||||
|
Type superNotInFc = tf.getSuperType(notInFc);
|
||||||
|
Type setSuperNotInFc = tf.getSimpleType("Set", superNotInFc);
|
||||||
|
Type hashSetSuperNotInFc = tf.getSimpleType("HashSet", superNotInFc);
|
||||||
|
Type treeSetSuperNotInFc = tf.getSimpleType("TreeSet", superNotInFc);
|
||||||
|
Type linkedHashSetSuperNotInFc = tf.getSimpleType("LinkedHashSet", superNotInFc);
|
||||||
|
|
||||||
|
expectedResult = new HashSet<>(Arrays.stream(new Type[] {
|
||||||
|
setNotInFc, hashSetNotInFc, treeSetNotInFc, linkedHashSetNotInFc,
|
||||||
|
setSuperNotInFc, hashSetSuperNotInFc, treeSetSuperNotInFc, linkedHashSetSuperNotInFc
|
||||||
|
}).collect(Collectors.toSet()));
|
||||||
|
|
||||||
|
Assert.assertEquals(expectedResult, fc.smaller(setSuperNotInFc));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test Case 8:
|
||||||
|
*
|
||||||
|
* smaller(NotInFc<? extends Number>) =
|
||||||
|
* { NotInFc<Integer>, NotInFc<Number>, NotInFc<? extends Number>, NotInFc<? extends Integer> }
|
||||||
|
*/
|
||||||
|
|
||||||
|
Type notInFcExtNumber = tf.getSimpleType("NotInFc", extNum);
|
||||||
|
Type notInFcInteger = tf.getSimpleType("NotInFc", integer);
|
||||||
|
Type notInFcNumber = tf.getSimpleType("NotInFc", number);
|
||||||
|
Type notInFcExtInt = tf.getSimpleType("NotInFc", extInt);
|
||||||
|
|
||||||
|
expectedResult = new HashSet<>(Arrays.stream(new Type[] {
|
||||||
|
notInFcExtNumber, notInFcInteger, notInFcNumber, notInFcExtInt
|
||||||
|
}).collect(Collectors.toSet()));
|
||||||
|
|
||||||
|
Assert.assertEquals(expectedResult, fc.smaller(notInFcExtNumber));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test Case 9:
|
||||||
|
*
|
||||||
|
* smaller(NotInFc<? super AlsoNotInFc> =
|
||||||
|
* { NotInFc<AlsoNotInFc>, NotInFc<? super AlsoNotInFc> }
|
||||||
|
*/
|
||||||
|
|
||||||
|
Type alsoNotInFc = tf.getSimpleType("AlsoNotInFc");
|
||||||
|
Type notInFcAlsoNotInFc = tf.getSimpleType("NotInFc", alsoNotInFc);
|
||||||
|
Type notInFcSupAlsoNotInFc = tf.getSimpleType("NotInFc", tf.getSuperType(alsoNotInFc));
|
||||||
|
|
||||||
|
expectedResult = new HashSet<>(Arrays.stream(new Type[] {
|
||||||
|
notInFcAlsoNotInFc, notInFcSupAlsoNotInFc
|
||||||
|
}).collect(Collectors.toSet()));
|
||||||
|
|
||||||
|
Set<Type> actual = fc.smaller(notInFcSupAlsoNotInFc);
|
||||||
|
Assert.assertEquals(expectedResult, actual);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test Case 10:
|
||||||
|
*
|
||||||
|
* smaller(HashMap<? extends Number, ? super Integer>) =
|
||||||
|
* { HashMap<? extends Number, ? super Integer>, HashMap<? extends Number, ? super Number>, HashMap<? extends Number, Integer>, HashMap<? extends Number, Number>
|
||||||
|
* HashMap<Number, ? super Integer>, HashMap<Number, ? super Number>, HashMap<Number, Integer>, HashMap<Number, Number>,
|
||||||
|
* HashMap<Integer, ? super Integer, HashMap<Integer, ? super Number>, HashMap<Integer, Integer>, HashMap<Integer, Number>
|
||||||
|
* HashMap<? extends Integer, ? super Integer>, HashMap<? extends Integer, ? super Number>, HashMap<? extends Integer, Integer>, HashMap<? extends Integer, Number> }
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test Case 11:
|
||||||
|
*
|
||||||
|
* smaller(SortedMap<Number, T>) = { SortedMap<Number, T>, NavigableMap<Number, T>, TreeMap<Number, T> }
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test Case 12:
|
||||||
|
*
|
||||||
|
* MyMap<K, List<K>> <* HashMap<K, V>
|
||||||
|
*
|
||||||
|
* smaller(HashMap<Number, List<Number>) = { HashMap<Number, List<Number>>, MyMap<Number, List<Number>> }
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test Case 13:
|
||||||
|
*
|
||||||
|
* MyMap<K, List<K>> <* HashMap<K, V>
|
||||||
|
*
|
||||||
|
* smaller(HashMap<? extends Number, List<Integer>) =
|
||||||
|
* { HashMap<? extends Integer>, List<Integer>>,
|
||||||
|
* HashMap<? extends Number, List<Integer>>,
|
||||||
|
* MyMap<Integer, List<Integer>> }
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test Case 14
|
||||||
|
*
|
||||||
|
* MyMap<K, List<K>> <* HashMap<K, V>
|
||||||
|
*
|
||||||
|
* smaller(HashMap<? extends Number, List<? extends Number>) =
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test Case 13:
|
||||||
|
*
|
||||||
|
* MyMap<K, List<K>> <* HashMap<K, V>
|
||||||
|
// * TODO sinnvoll ausformulieren
|
||||||
|
* smaller(HashMap<? extends Number, ? extends List< ? extends Integer>) =
|
||||||
|
* { HashMap<? extends Integer>, List<Integer>>,
|
||||||
|
* HashMap<? extends Number, List<Integer>>,
|
||||||
|
* MyMap<Integer, List<Integer>> }
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user