---
# System prepended metadata

title: 'ESOF 422: HW 8'

---

# ESOF 422: HW 8

Sam Behrens

## 1. Exercises section 6.1 pg. 85, Question 3, all parts (12 pts, 4 pts each)

Answer the following questions for the method search() below:

```
public static int search (List list, Object element)
// Effects: if list or element is null throw NullPointerException
//  else if element is in the list, return an index
//  of element in the list; else return -1
//  for example, search ([3,3,1], 3) = either 0 or 1
//    search([1,7,5], 2) = -1
```

Base your answer on the following characteristic partitioning:

```
Characteristic: Location of element in list
    Block 1: element is first entry in list
    Block 2: element is last entry in list
    Block 3: element is in some position other than first or last
```

(a) “Location of element in list” fails the disjointness property. Give an example that illustrates this.

`search([1], 1)` fails because element 1 is the first entry in the list and the last entry in the list.

(b) “Location of element in list” fails the completeness property. Give an example that illustrates this.

`search([1, 2], 3)` fails because element 3 is not in the list at all.

\(c\) Supply one or more new partitions that capture the intent of “Location of element in list” but do not suffer from completeness or disjointness problems.

```
Characteristic: Location of element in list
    Block 1: element is first entry in list
    Block 2: element is in some position other than first
    Block 3: element is not in list
```

## 2. Exercises section 6.2 pg. 90, Question 4, all parts (12 pts, 2 pts each)

Derive input space partitioning test inputs for the GenericStack class assuming the following method signatures:

- public GenericStack ();
- public void push (Object X);
- public Object pop ();
- public boolean isEmpty ();

Assume the usual semantics for the GenericStack. Try to keep
your partitioning simple and choose a small number of partitions and
blocks.

(a) List all of the input variables, including the state variables.

`X` and the items in the stack

(b) Define characteristics of the input variables. Make sure you cover all input variables.

Number of objects in the stack

Wether `X` is null

\(c\) Define characteristics of inputs.

```
Characteristic 1: Number of objects in stack
```

```
Characteristic 2: Whether X is null
```

(d) Partition the characteristics into blocks.

```
Characteristic 1: Number of objects in stack
    Block 1: Stack has 1 object
    Block 2: Stack has more than one object
    Block 3: Stack is empty
```

```
Characteristic 2: Whether X is null
    Block 1: X is null
    Block 2: X is not null
```


(e) Define values for each block.

```
Characteristic 1: Number of objects in stack
    Block 1: Stack has 1 object
        Input: A GenericStack with the string "A".
    Block 2: Stack has more than one object
        Input: A GenericStack with the string "A" and teh string "B".
    Block 3: Stack is empty
        Input: A GenericStack with nothing in it.
```

```
Characteristic 2: Whether X is null
    Block 1: X is null
        Input: X = null
    Block 2: X is not null
        Input: X = "A"
```