void run()
  {
    if (director_primitives.PrintDebug) Console.WriteLine("------------ Start ------------ ");

    Caller myCaller = new Caller();

    // test C++ base class
    using (Base myBase = new Base(100.0))
    {
      makeCalls(myCaller, myBase);
    }

    if (director_primitives.PrintDebug) Console.WriteLine("--------------------------------");

    // test vanilla C++ wrapped derived class
    using (Base myBase = new Derived(200.0))
    {
      makeCalls(myCaller, myBase);
    }

    if (director_primitives.PrintDebug) Console.WriteLine("--------------------------------");

    // test director / C# derived class
    using (Base myBase = new CSharpDerived(300.0))
    {
      makeCalls(myCaller, myBase);
    }

    if (director_primitives.PrintDebug) Console.WriteLine("------------ Finish ------------ ");
  }
 static void Main()
 {
     System.Console.WriteLine("Running");
     using (Foo myFoo = new CSharpDerived())
     {
         test.test_catch(myFoo);
     }
 }
    void run()
    {
        if (director_primitives.PrintDebug)
        {
            Console.WriteLine("------------ Start ------------ ");
        }

        Caller myCaller = new Caller();

        // test C++ base class
        using (Base myBase = new Base(100.0))
        {
            makeCalls(myCaller, myBase);
        }

        if (director_primitives.PrintDebug)
        {
            Console.WriteLine("--------------------------------");
        }

        // test vanilla C++ wrapped derived class
        using (Base myBase = new Derived(200.0))
        {
            makeCalls(myCaller, myBase);
        }

        if (director_primitives.PrintDebug)
        {
            Console.WriteLine("--------------------------------");
        }

        // test director / C# derived class
        using (Base myBase = new CSharpDerived(300.0))
        {
            makeCalls(myCaller, myBase);
        }

        if (director_primitives.PrintDebug)
        {
            Console.WriteLine("------------ Finish ------------ ");
        }
    }