# SWE 637 In Class Exercise Number 4

This is an Input Space Partitioning exercise. Work in groups. It's from chapter 6 of the text: 6.2 (Number 4) page 90. Consider the method `intersection()` below, along with a defective IDM:

```public static <E> Set<E>  intersection (Set<E>  s1, Set<E>  s2)
public static Set  intersection (Set s1, Set s2)
/**
* @param  s1, s2 : sets to compute intersection of
* @return a (non null) Set equal to the intersection of Sets s1 and s2
* @throws NullPointerException if s1 or s2 is null
*/

Characteristic: Type of s1
- s1 = null
- s1 = {}
- s1 has at least one element

Characteristic: Relation between s1 and s2
- s1 and s2 represent the same set
- s1 is a subset of s2
- s2 is a subset of s1
- s1 and s2 do not have any elements in common
```
• Does the partition "Type of s1" satisfy the completeness property? If not, give a value for s1 that does not fit in any block.

• Does the partition "Type of s1" satisfy the disjointness property? If not, give a value for s1 that fits in more than one block.

• Does the partition "Relation between s1 and s2" satisfy the completeness property? If not, give a pair of values for s1 and s2 that does not fit in any block.

• Does the partition "Relation between s1 and s2" satisfy the disjointness property? If not, give a pair of values for s1 and s2 that fits in more than one block.

• If the "Base Choice" criterion were applied to the two partitions (exactly as written), how many test requirements would result?

• Revise the characteristics to eliminate any problems you found.

• The given method header is not generic. How should it be fixed? Does doing so eliminate any possible faults in this example?