#include <assert.h>
int main() {
    int x = 5;
    int y = x + 5;
    int z = x + y + 5;
    int result;

    // branch test:
    if (x == 5 && y > x)
      if (y == 10 && z > y)
	result = 5;
      else if (x > 0 || x < 10)
	x = y - 5;
      else 
	x = 0;
    assert(result == 5);

    // trivil loop tests
    for (int i = 0; i < x && i < y; i++) {
      result++;
    }
    assert(result == 10);

    while (y < z && x < y)
      x = 20;
    
    do { x = 0; if (x <0 || x == 0) continue; x = 20;} while (y < z && x >= y);

    return 1;
}

