// -*- c-basic-offset: 4 -*- #include "type_checking.hh" #include "ast.hh" #include using namespace std; using namespace ast; int main() { type_checking::IndexType it1("foo"); type_checking::IndexType it2("foo"); type_checking::IndexType it3("bar"); assert(it1 == it2); assert(!(it1 != it2)); assert(!(it1 == it3)); assert(it1 != it3); type_checking::ValType vt1("foo", TYPE_INT); type_checking::ValType vt2("foo", TYPE_INT); type_checking::ValType vt3("bar", TYPE_INT); assert(vt1 == vt2); assert(!(vt1 != vt2)); assert(!(vt1 == vt3)); assert(vt1 != vt3); type_checking::MatrixType mt1("foo", 2); type_checking::MatrixType mt2("foo", 2); type_checking::MatrixType mt3("foo", 3); type_checking::MatrixType mt4("bar", 2); assert(mt1 == mt2); assert(!(mt1 != mt2)); assert(!(mt1 == mt3)); assert(mt1 != mt3); assert(!(mt1 == mt4)); assert(mt1 != mt4); type_checking::FunctionType ft1("foo", 2); type_checking::FunctionType ft2("foo", 2); type_checking::FunctionType ft3("foo", 3); type_checking::FunctionType ft4("bar", 2); assert(ft1 == ft2); assert(!(ft1 != ft2)); assert(!(ft1 == ft3)); assert(ft1 != ft3); assert(!(ft1 == ft4)); assert(ft1 != ft4); assert(it1 != mt1); assert(it1 != ft1); assert(ft1 != mt1); assert(vt1 != it1); assert(vt1 != mt1); assert(vt1 != ft1); assert(!(it1 == mt1)); assert(!(it1 == ft1)); assert(!(ft1 == mt1)); assert(!(vt1 == it1)); assert(!(vt1 == mt1)); assert(!(vt1 == ft1)); return 0; }