module special_variable_macros_runme;

import std.exception;
import special_variable_macros.special_variable_macros;
import special_variable_macros.Name;
import special_variable_macros.NewName;
import special_variable_macros.PairIntBool;

void main() {
  auto name = new Name();
  enforce(testFred(name) == "none");
  enforce(testJack(name) == "$specialname");
  enforce(testJill(name) == "jilly");
  enforce(testMary(name) == "SWIGTYPE_p_NameWrap");
  enforce(testJames(name) == "SWIGTYPE_Name");
  enforce(testJim(name) == "multiname num");

  enforce(testJohn(new PairIntBool(10, false)) == 123);

  auto newName = NewName.factory("factoryname");
  enforce(newName.getStoredName().getName() == "factoryname");
  enforce(makeStringInt("stringint", 999) == "stringint");
  enforce(provideStringInt(999) == "1000");
  enforce(shortFunction(1, 1) == (200*2 + 200*3));
}
