// -*- c-basic-offset: 4 -*-
#include "type_checking.hh"
#include "ast.hh"
#include <iostream>
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;
}
syntax highlighted by Code2HTML, v. 0.9.1