Newer
Older
zweic / tests / 4 / statement00.zwei
@ajaggi ajaggi on 26 Dec 2005 1 KB Added some test cases
// zweic - test program for statement testing
// M. Ganguin, J. Ruffin 2005

// While
class WhileTest {
    Null foo() {
        Int t = 0;
        Null n = null;
        while(n) {} // 1/2 failure of clause 1 (condition type not Int)
        while(t) { Int s = null; } // 2/2 failure of clause 2 (incorrectly typed statement)
        while(t) { Int s = 0; } // correct
    }
}

// Var
class foo {}
class bar extends foo {}
class baz {}
class VarTest {
    Null foo() {
        Int n = 1;
        nonexistent ne = new nonexistent(); // 1/4 failure of clause 1 (nonexistent type)
        baz b = new foo(); // 2/4 failure of clause 2 (subtype mismatch)
        bar f = new foo(); // 3/4 failure of clause 2 (inverted sub- and supertypes)
        Int n = 2; // 4/4 failure of clause 3 (variable n already exists)
        Int z = 3; // success
    }
}

// Set
class SetTest {
    Null foo() {
        Int n = 1;
        bar b = new bar();
        s = 2; // 1/3 failure of clause 1 (nonexistent variable)
        n = new foo(); // 2/3 failure of clauses 2 and 3 (subtype mismatch)
        b = new foo(); // 3/3 failure of clauses 2 and 3 (inverted sub- and supertypes)
        b = new bar(); // success
    }
}

// Do
class DoTest {
    Null foo() {
        Null k = null;
        2 + k; // 1/1 failure of clause 1 (incorrectly typed expression)
        2 + 2; // success
    }
}

// PrintInt
class PrintIntTest {
    Null foo() {
        printInt(new foo()); // 1/1 failure of clause 1 (type must be Int)
        printInt(2); //success
    }
}

// PrintChar
class PrintCharTest {
    Null foo() {
        printChar(new foo()); // 1/1 failure of clause 1 (type must be Int)
        printChar(2); //success
    }
}

0