var constructor_copy = require("./constructor_copy");

f1 = new constructor_copy.Foo1(3);
f11 = new constructor_copy.Foo1(f1);

if (f1.x != f11.x) {
  throw "error in ctor copy for Foo1";
}

var good = 0;

f8 = new constructor_copy.Foo8()
try {
  f81 = new constructor_copy.Foo8(f8);
  good = 0;
} catch (err) {
  good = 1;
}

if (good == 0) {
  throw "Error: should not allow calling copy ctor for Foo8";
}


bi = new constructor_copy.Bari(5);
bc = new constructor_copy.Bari(bi);

if (bi.x != bc.x) {
  throw "Error in copy ctor of Bari";
}

bd = new constructor_copy.Bard(5);
try {
  bc = new constructor_copy.Bard(bd);
  good = 0;
} catch (err) {
  good = 1;
}

if (good == 0) {
  throw "Error: should not allow calling copy ctor for Bard";
}

process.exit(0);
