Consider the following function in an embedded program: void foo(int x, int y) { int a = x + y; int b = x - y; int c = x * y; int d = x / y; if (a > b && c > d) { // do something } else if (a > b) { // do something else } else { // do something completely different } } Assume that we want to test all possible paths through the function. Which paths should we choose to test? Path 1: x + y > x - y && x * y > x / y Path 2: x + y > x - y && x * y <= x / y Path 3: x + y <= x - y.