diff --git a/wrap/tests/expected/@Point2/Point2.m b/wrap/tests/expected/@Point2/Point2.m index b5545f915..454d81399 100644 --- a/wrap/tests/expected/@Point2/Point2.m +++ b/wrap/tests/expected/@Point2/Point2.m @@ -1,5 +1,5 @@ % automatically generated by wrap -classdef Point2 +classdef Point2 < handle properties self = 0 end @@ -9,6 +9,9 @@ classdef Point2 if (nargin == 2 && isa(varargin{1},'double') && isa(varargin{2},'double')), obj.self = new_Point2_dd(varargin{1},varargin{2}); end if nargin ~= 13 && obj.self == 0, error('Point2 constructor failed'); end end + function delete(obj) + delete_Point2(obj); + end function display(obj), obj.print(''); end function disp(obj), obj.display; end end diff --git a/wrap/tests/expected/@Point3/Point3.m b/wrap/tests/expected/@Point3/Point3.m index a83c13792..3e7a6fd65 100644 --- a/wrap/tests/expected/@Point3/Point3.m +++ b/wrap/tests/expected/@Point3/Point3.m @@ -1,5 +1,5 @@ % automatically generated by wrap -classdef Point3 +classdef Point3 < handle properties self = 0 end @@ -8,6 +8,9 @@ classdef Point3 if (nargin == 3 && isa(varargin{1},'double') && isa(varargin{2},'double') && isa(varargin{3},'double')), obj.self = new_Point3_ddd(varargin{1},varargin{2},varargin{3}); end if nargin ~= 13 && obj.self == 0, error('Point3 constructor failed'); end end + function delete(obj) + delete_Point3(obj); + end function display(obj), obj.print(''); end function disp(obj), obj.display; end end diff --git a/wrap/tests/expected/@Test/Test.m b/wrap/tests/expected/@Test/Test.m index 66a110f2f..b8e55381c 100644 --- a/wrap/tests/expected/@Test/Test.m +++ b/wrap/tests/expected/@Test/Test.m @@ -1,5 +1,5 @@ % automatically generated by wrap -classdef Test +classdef Test < handle properties self = 0 end @@ -9,6 +9,9 @@ classdef Test if (nargin == 2 && isa(varargin{1},'double') && isa(varargin{2},'double')), obj.self = new_Test_dM(varargin{1},varargin{2}); end if nargin ~= 13 && obj.self == 0, error('Test constructor failed'); end end + function delete(obj) + delete_Test(obj); + end function display(obj), obj.print(''); end function disp(obj), obj.display; end end diff --git a/wrap/tests/expected/Makefile b/wrap/tests/expected/Makefile index cc5f06578..8425a50e0 100644 --- a/wrap/tests/expected/Makefile +++ b/wrap/tests/expected/Makefile @@ -11,6 +11,8 @@ new_Point2_.$(MEXENDING): new_Point2_.cpp $(MEX) $(mex_flags) new_Point2_.cpp -output new_Point2_ new_Point2_dd.$(MEXENDING): new_Point2_dd.cpp $(MEX) $(mex_flags) new_Point2_dd.cpp -output new_Point2_dd +delete_Point2.$(MEXENDING): delete_Point2.cpp + $(MEX) $(mex_flags) delete_Point2.cpp -output delete_Point2 @Point2/x.$(MEXENDING): @Point2/x.cpp $(MEX) $(mex_flags) @Point2/x.cpp -output @Point2/x @Point2/y.$(MEXENDING): @Point2/y.cpp @@ -24,11 +26,13 @@ new_Point2_dd.$(MEXENDING): new_Point2_dd.cpp @Point2/vectorConfusion.$(MEXENDING): @Point2/vectorConfusion.cpp $(MEX) $(mex_flags) @Point2/vectorConfusion.cpp -output @Point2/vectorConfusion -Point2: new_Point2_.$(MEXENDING) new_Point2_dd.$(MEXENDING) @Point2/x.$(MEXENDING) @Point2/y.$(MEXENDING) @Point2/dim.$(MEXENDING) @Point2/returnChar.$(MEXENDING) @Point2/argChar.$(MEXENDING) @Point2/vectorConfusion.$(MEXENDING) +Point2: new_Point2_.$(MEXENDING) new_Point2_dd.$(MEXENDING) delete_Point2.$(MEXENDING) @Point2/x.$(MEXENDING) @Point2/y.$(MEXENDING) @Point2/dim.$(MEXENDING) @Point2/returnChar.$(MEXENDING) @Point2/argChar.$(MEXENDING) @Point2/vectorConfusion.$(MEXENDING) # Point3 new_Point3_ddd.$(MEXENDING): new_Point3_ddd.cpp $(MEX) $(mex_flags) new_Point3_ddd.cpp -output new_Point3_ddd +delete_Point3.$(MEXENDING): delete_Point3.cpp + $(MEX) $(mex_flags) delete_Point3.cpp -output delete_Point3 Point3_staticFunction.$(MEXENDING): Point3_staticFunction.cpp $(MEX) $(mex_flags) Point3_staticFunction.cpp -output Point3_staticFunction Point3_StaticFunctionRet.$(MEXENDING): Point3_StaticFunctionRet.cpp @@ -36,13 +40,15 @@ Point3_StaticFunctionRet.$(MEXENDING): Point3_StaticFunctionRet.cpp @Point3/norm.$(MEXENDING): @Point3/norm.cpp $(MEX) $(mex_flags) @Point3/norm.cpp -output @Point3/norm -Point3: new_Point3_ddd.$(MEXENDING) Point3_staticFunction.$(MEXENDING) Point3_StaticFunctionRet.$(MEXENDING) @Point3/norm.$(MEXENDING) +Point3: new_Point3_ddd.$(MEXENDING) delete_Point3.$(MEXENDING) Point3_staticFunction.$(MEXENDING) Point3_StaticFunctionRet.$(MEXENDING) @Point3/norm.$(MEXENDING) # Test new_Test_.$(MEXENDING): new_Test_.cpp $(MEX) $(mex_flags) new_Test_.cpp -output new_Test_ new_Test_dM.$(MEXENDING): new_Test_dM.cpp $(MEX) $(mex_flags) new_Test_dM.cpp -output new_Test_dM +delete_Test.$(MEXENDING): delete_Test.cpp + $(MEX) $(mex_flags) delete_Test.cpp -output delete_Test @Test/return_pair.$(MEXENDING): @Test/return_pair.cpp $(MEX) $(mex_flags) @Test/return_pair.cpp -output @Test/return_pair @Test/return_bool.$(MEXENDING): @Test/return_bool.cpp @@ -82,7 +88,7 @@ new_Test_dM.$(MEXENDING): new_Test_dM.cpp @Test/print.$(MEXENDING): @Test/print.cpp $(MEX) $(mex_flags) @Test/print.cpp -output @Test/print -Test: new_Test_.$(MEXENDING) new_Test_dM.$(MEXENDING) @Test/return_pair.$(MEXENDING) @Test/return_bool.$(MEXENDING) @Test/return_size_t.$(MEXENDING) @Test/return_int.$(MEXENDING) @Test/return_double.$(MEXENDING) @Test/return_string.$(MEXENDING) @Test/return_vector1.$(MEXENDING) @Test/return_matrix1.$(MEXENDING) @Test/return_vector2.$(MEXENDING) @Test/return_matrix2.$(MEXENDING) @Test/arg_EigenConstRef.$(MEXENDING) @Test/return_field.$(MEXENDING) @Test/return_TestPtr.$(MEXENDING) @Test/return_Test.$(MEXENDING) @Test/return_Point2Ptr.$(MEXENDING) @Test/create_ptrs.$(MEXENDING) @Test/create_MixedPtrs.$(MEXENDING) @Test/return_ptrs.$(MEXENDING) @Test/print.$(MEXENDING) +Test: new_Test_.$(MEXENDING) new_Test_dM.$(MEXENDING) delete_Test.$(MEXENDING) @Test/return_pair.$(MEXENDING) @Test/return_bool.$(MEXENDING) @Test/return_size_t.$(MEXENDING) @Test/return_int.$(MEXENDING) @Test/return_double.$(MEXENDING) @Test/return_string.$(MEXENDING) @Test/return_vector1.$(MEXENDING) @Test/return_matrix1.$(MEXENDING) @Test/return_vector2.$(MEXENDING) @Test/return_matrix2.$(MEXENDING) @Test/arg_EigenConstRef.$(MEXENDING) @Test/return_field.$(MEXENDING) @Test/return_TestPtr.$(MEXENDING) @Test/return_Test.$(MEXENDING) @Test/return_Point2Ptr.$(MEXENDING) @Test/create_ptrs.$(MEXENDING) @Test/create_MixedPtrs.$(MEXENDING) @Test/return_ptrs.$(MEXENDING) @Test/print.$(MEXENDING) diff --git a/wrap/tests/expected/delete_Point2.cpp b/wrap/tests/expected/delete_Point2.cpp new file mode 100644 index 000000000..b24557215 --- /dev/null +++ b/wrap/tests/expected/delete_Point2.cpp @@ -0,0 +1,9 @@ +// automatically generated by wrap +#include +#include +using namespace geometry; +void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[]) +{ + checkArguments("delete_Point2",nargout,nargin,1); + delete_shared_ptr< Point2 >(in[0],"Point2"); +} diff --git a/wrap/tests/expected/delete_Point2.m b/wrap/tests/expected/delete_Point2.m new file mode 100644 index 000000000..c6c623bec --- /dev/null +++ b/wrap/tests/expected/delete_Point2.m @@ -0,0 +1,4 @@ +% automatically generated by wrap +function result = delete_Point2(obj) + error('need to compile delete_Point2.cpp'); +end diff --git a/wrap/tests/expected/delete_Point3.cpp b/wrap/tests/expected/delete_Point3.cpp new file mode 100644 index 000000000..9836bb25e --- /dev/null +++ b/wrap/tests/expected/delete_Point3.cpp @@ -0,0 +1,9 @@ +// automatically generated by wrap +#include +#include +using namespace geometry; +void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[]) +{ + checkArguments("delete_Point3",nargout,nargin,1); + delete_shared_ptr< Point3 >(in[0],"Point3"); +} diff --git a/wrap/tests/expected/delete_Point3.m b/wrap/tests/expected/delete_Point3.m new file mode 100644 index 000000000..b52b898cf --- /dev/null +++ b/wrap/tests/expected/delete_Point3.m @@ -0,0 +1,4 @@ +% automatically generated by wrap +function result = delete_Point3(obj) + error('need to compile delete_Point3.cpp'); +end diff --git a/wrap/tests/expected/delete_Test.cpp b/wrap/tests/expected/delete_Test.cpp new file mode 100644 index 000000000..6a22cc327 --- /dev/null +++ b/wrap/tests/expected/delete_Test.cpp @@ -0,0 +1,9 @@ +// automatically generated by wrap +#include +#include +using namespace geometry; +void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[]) +{ + checkArguments("delete_Test",nargout,nargin,1); + delete_shared_ptr< Test >(in[0],"Test"); +} diff --git a/wrap/tests/expected/delete_Test.m b/wrap/tests/expected/delete_Test.m new file mode 100644 index 000000000..21ec790a3 --- /dev/null +++ b/wrap/tests/expected/delete_Test.m @@ -0,0 +1,4 @@ +% automatically generated by wrap +function result = delete_Test(obj) + error('need to compile delete_Test.cpp'); +end diff --git a/wrap/tests/expected/make_geometry.m b/wrap/tests/expected/make_geometry.m index ce2208e7e..f0fb6dae6 100644 --- a/wrap/tests/expected/make_geometry.m +++ b/wrap/tests/expected/make_geometry.m @@ -11,6 +11,7 @@ addpath(toolboxpath); cd(toolboxpath) mex -O5 new_Point2_.cpp mex -O5 new_Point2_dd.cpp +mex -O5 delete_Point2.cpp cd @Point2 mex -O5 x.cpp @@ -23,6 +24,7 @@ mex -O5 vectorConfusion.cpp %% Point3 cd(toolboxpath) mex -O5 new_Point3_ddd.cpp +mex -O5 delete_Point3.cpp mex -O5 Point3_staticFunction.cpp mex -O5 Point3_StaticFunctionRet.cpp @@ -33,6 +35,7 @@ mex -O5 norm.cpp cd(toolboxpath) mex -O5 new_Test_.cpp mex -O5 new_Test_dM.cpp +mex -O5 delete_Test.cpp cd @Test mex -O5 return_pair.cpp diff --git a/wrap/tests/expected_namespaces/@ClassD/ClassD.m b/wrap/tests/expected_namespaces/@ClassD/ClassD.m index 52fbab1e7..8b78750d9 100644 --- a/wrap/tests/expected_namespaces/@ClassD/ClassD.m +++ b/wrap/tests/expected_namespaces/@ClassD/ClassD.m @@ -1,5 +1,5 @@ % automatically generated by wrap -classdef ClassD +classdef ClassD < handle properties self = 0 end @@ -8,6 +8,9 @@ classdef ClassD if (nargin == 0), obj.self = new_ClassD_(); end if nargin ~= 13 && obj.self == 0, error('ClassD constructor failed'); end end + function delete(obj) + delete_ClassD(obj) + end function display(obj), obj.print(''); end function disp(obj), obj.display; end end diff --git a/wrap/tests/expected_namespaces/@ns1ClassA/ns1ClassA.m b/wrap/tests/expected_namespaces/@ns1ClassA/ns1ClassA.m index 8d26fd069..806070a36 100644 --- a/wrap/tests/expected_namespaces/@ns1ClassA/ns1ClassA.m +++ b/wrap/tests/expected_namespaces/@ns1ClassA/ns1ClassA.m @@ -1,5 +1,5 @@ % automatically generated by wrap -classdef ns1ClassA +classdef ns1ClassA < handle properties self = 0 end @@ -8,6 +8,9 @@ classdef ns1ClassA if (nargin == 0), obj.self = new_ns1ClassA_(); end if nargin ~= 13 && obj.self == 0, error('ns1ClassA constructor failed'); end end + function delete(obj) + delete_ns1ClassA(obj); + end function display(obj), obj.print(''); end function disp(obj), obj.display; end end diff --git a/wrap/tests/expected_namespaces/@ns1ClassB/ns1ClassB.m b/wrap/tests/expected_namespaces/@ns1ClassB/ns1ClassB.m index 9a307e5d3..13d5846ae 100644 --- a/wrap/tests/expected_namespaces/@ns1ClassB/ns1ClassB.m +++ b/wrap/tests/expected_namespaces/@ns1ClassB/ns1ClassB.m @@ -1,5 +1,5 @@ % automatically generated by wrap -classdef ns1ClassB +classdef ns1ClassB < handle properties self = 0 end @@ -8,6 +8,9 @@ classdef ns1ClassB if (nargin == 0), obj.self = new_ns1ClassB_(); end if nargin ~= 13 && obj.self == 0, error('ns1ClassB constructor failed'); end end + function delete(obj) + delete_ns1ClassB(obj); + end function display(obj), obj.print(''); end function disp(obj), obj.display; end end diff --git a/wrap/tests/expected_namespaces/@ns2ClassA/ns2ClassA.m b/wrap/tests/expected_namespaces/@ns2ClassA/ns2ClassA.m index 1d3bc7577..188ac087d 100644 --- a/wrap/tests/expected_namespaces/@ns2ClassA/ns2ClassA.m +++ b/wrap/tests/expected_namespaces/@ns2ClassA/ns2ClassA.m @@ -1,5 +1,5 @@ % automatically generated by wrap -classdef ns2ClassA +classdef ns2ClassA < handle properties self = 0 end @@ -8,6 +8,9 @@ classdef ns2ClassA if (nargin == 0), obj.self = new_ns2ClassA_(); end if nargin ~= 13 && obj.self == 0, error('ns2ClassA constructor failed'); end end + function delete(obj) + delete_ns2ClassA(obj); + end function display(obj), obj.print(''); end function disp(obj), obj.display; end end diff --git a/wrap/tests/expected_namespaces/@ns2ClassC/ns2ClassC.m b/wrap/tests/expected_namespaces/@ns2ClassC/ns2ClassC.m index be0d267e7..793e73e64 100644 --- a/wrap/tests/expected_namespaces/@ns2ClassC/ns2ClassC.m +++ b/wrap/tests/expected_namespaces/@ns2ClassC/ns2ClassC.m @@ -1,5 +1,5 @@ % automatically generated by wrap -classdef ns2ClassC +classdef ns2ClassC < handle properties self = 0 end @@ -8,6 +8,9 @@ classdef ns2ClassC if (nargin == 0), obj.self = new_ns2ClassC_(); end if nargin ~= 13 && obj.self == 0, error('ns2ClassC constructor failed'); end end + function delete(obj) + delete_ns2ClassC(obj); + end function display(obj), obj.print(''); end function disp(obj), obj.display; end end diff --git a/wrap/tests/expected_namespaces/@ns2ns3ClassB/ns2ns3ClassB.m b/wrap/tests/expected_namespaces/@ns2ns3ClassB/ns2ns3ClassB.m index 647a70772..3997cd005 100644 --- a/wrap/tests/expected_namespaces/@ns2ns3ClassB/ns2ns3ClassB.m +++ b/wrap/tests/expected_namespaces/@ns2ns3ClassB/ns2ns3ClassB.m @@ -1,5 +1,5 @@ % automatically generated by wrap -classdef ns2ns3ClassB +classdef ns2ns3ClassB < handle properties self = 0 end @@ -8,6 +8,9 @@ classdef ns2ns3ClassB if (nargin == 0), obj.self = new_ns2ns3ClassB_(); end if nargin ~= 13 && obj.self == 0, error('ns2ns3ClassB constructor failed'); end end + function delete(obj) + delete_ns2ns3ClassB(obj); + end function display(obj), obj.print(''); end function disp(obj), obj.display; end end diff --git a/wrap/tests/expected_namespaces/Makefile b/wrap/tests/expected_namespaces/Makefile index dcc3b1dbd..c48a1b154 100644 --- a/wrap/tests/expected_namespaces/Makefile +++ b/wrap/tests/expected_namespaces/Makefile @@ -9,18 +9,24 @@ all: ns1ClassA ns1ClassB ns2ClassA ns2ns3ClassB ns2ClassC ClassD # ns1ClassA new_ns1ClassA_.$(MEXENDING): new_ns1ClassA_.cpp $(MEX) $(mex_flags) new_ns1ClassA_.cpp -output new_ns1ClassA_ +delete_ns1ClassA.$(MEXENDING): delete_ns1ClassA.cpp + $(MEX) $(mex_flags) delete_ns1ClassA.cpp -output delete_ns1ClassA -ns1ClassA: new_ns1ClassA_.$(MEXENDING) +ns1ClassA: new_ns1ClassA_.$(MEXENDING) delete_ns1ClassA.$(MEXENDING) # ns1ClassB new_ns1ClassB_.$(MEXENDING): new_ns1ClassB_.cpp $(MEX) $(mex_flags) new_ns1ClassB_.cpp -output new_ns1ClassB_ +delete_ns1ClassB.$(MEXENDING): delete_ns1ClassB.cpp + $(MEX) $(mex_flags) delete_ns1ClassB.cpp -output delete_ns1ClassB -ns1ClassB: new_ns1ClassB_.$(MEXENDING) +ns1ClassB: new_ns1ClassB_.$(MEXENDING) delete_ns1ClassB.$(MEXENDING) # ns2ClassA new_ns2ClassA_.$(MEXENDING): new_ns2ClassA_.cpp $(MEX) $(mex_flags) new_ns2ClassA_.cpp -output new_ns2ClassA_ +delete_ns2ClassA.$(MEXENDING): delete_ns2ClassA.cpp + $(MEX) $(mex_flags) delete_ns2ClassA.cpp -output delete_ns2ClassA ns2ClassA_afunction.$(MEXENDING): ns2ClassA_afunction.cpp $(MEX) $(mex_flags) ns2ClassA_afunction.cpp -output ns2ClassA_afunction @ns2ClassA/memberFunction.$(MEXENDING): @ns2ClassA/memberFunction.cpp @@ -30,25 +36,31 @@ ns2ClassA_afunction.$(MEXENDING): ns2ClassA_afunction.cpp @ns2ClassA/nsReturn.$(MEXENDING): @ns2ClassA/nsReturn.cpp $(MEX) $(mex_flags) @ns2ClassA/nsReturn.cpp -output @ns2ClassA/nsReturn -ns2ClassA: new_ns2ClassA_.$(MEXENDING) ns2ClassA_afunction.$(MEXENDING) @ns2ClassA/memberFunction.$(MEXENDING) @ns2ClassA/nsArg.$(MEXENDING) @ns2ClassA/nsReturn.$(MEXENDING) +ns2ClassA: new_ns2ClassA_.$(MEXENDING) delete_ns2ClassA.$(MEXENDING) ns2ClassA_afunction.$(MEXENDING) @ns2ClassA/memberFunction.$(MEXENDING) @ns2ClassA/nsArg.$(MEXENDING) @ns2ClassA/nsReturn.$(MEXENDING) # ns2ns3ClassB new_ns2ns3ClassB_.$(MEXENDING): new_ns2ns3ClassB_.cpp $(MEX) $(mex_flags) new_ns2ns3ClassB_.cpp -output new_ns2ns3ClassB_ +delete_ns2ns3ClassB.$(MEXENDING): delete_ns2ns3ClassB.cpp + $(MEX) $(mex_flags) delete_ns2ns3ClassB.cpp -output delete_ns2ns3ClassB -ns2ns3ClassB: new_ns2ns3ClassB_.$(MEXENDING) +ns2ns3ClassB: new_ns2ns3ClassB_.$(MEXENDING) delete_ns2ns3ClassB.$(MEXENDING) # ns2ClassC new_ns2ClassC_.$(MEXENDING): new_ns2ClassC_.cpp $(MEX) $(mex_flags) new_ns2ClassC_.cpp -output new_ns2ClassC_ +delete_ns2ClassC.$(MEXENDING): delete_ns2ClassC.cpp + $(MEX) $(mex_flags) delete_ns2ClassC.cpp -output delete_ns2ClassC -ns2ClassC: new_ns2ClassC_.$(MEXENDING) +ns2ClassC: new_ns2ClassC_.$(MEXENDING) delete_ns2ClassC.$(MEXENDING) # ClassD new_ClassD_.$(MEXENDING): new_ClassD_.cpp $(MEX) $(mex_flags) new_ClassD_.cpp -output new_ClassD_ +delete_ClassD.$(MEXENDING): delete_ClassD.cpp + $(MEX) $(mex_flags) delete_ClassD.cpp -output delete_ClassD -ClassD: new_ClassD_.$(MEXENDING) +ClassD: new_ClassD_.$(MEXENDING) delete_ClassD.$(MEXENDING) diff --git a/wrap/tests/expected_namespaces/delete_ClassD.cpp b/wrap/tests/expected_namespaces/delete_ClassD.cpp new file mode 100644 index 000000000..5284e33ba --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ClassD.cpp @@ -0,0 +1,8 @@ +// automatically generated by wrap +#include +#include +void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[]) +{ + checkArguments("delete_ClassD",nargout,nargin,1); + delete_shared_ptr< ClassD >(in[0],"ClassD"); +} diff --git a/wrap/tests/expected_namespaces/delete_ClassD.m b/wrap/tests/expected_namespaces/delete_ClassD.m new file mode 100644 index 000000000..aef8cb642 --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ClassD.m @@ -0,0 +1,4 @@ +% automatically generated by wrap +function result = delete_ClassD(obj) + error('need to compile delete_ClassD.cpp'); +end diff --git a/wrap/tests/expected_namespaces/delete_ns1ClassA.cpp b/wrap/tests/expected_namespaces/delete_ns1ClassA.cpp new file mode 100644 index 000000000..17a25b523 --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns1ClassA.cpp @@ -0,0 +1,8 @@ +// automatically generated by wrap +#include +#include +void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[]) +{ + checkArguments("delete_ns1ClassA",nargout,nargin,1); + delete_shared_ptr< ns1::ClassA >(in[0],"ns1ClassA"); +} diff --git a/wrap/tests/expected_namespaces/delete_ns1ClassA.m b/wrap/tests/expected_namespaces/delete_ns1ClassA.m new file mode 100644 index 000000000..343d5636a --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns1ClassA.m @@ -0,0 +1,4 @@ +% automatically generated by wrap +function result = delete_ns1ClassA(obj) + error('need to compile delete_ns1ClassA.cpp'); +end diff --git a/wrap/tests/expected_namespaces/delete_ns1ClassB.cpp b/wrap/tests/expected_namespaces/delete_ns1ClassB.cpp new file mode 100644 index 000000000..7302cc3d3 --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns1ClassB.cpp @@ -0,0 +1,9 @@ +// automatically generated by wrap +#include +#include +#include +void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[]) +{ + checkArguments("delete_ns1ClassB",nargout,nargin,1); + delete_shared_ptr< ns1::ClassB >(in[0],"ns1ClassB"); +} diff --git a/wrap/tests/expected_namespaces/delete_ns1ClassB.m b/wrap/tests/expected_namespaces/delete_ns1ClassB.m new file mode 100644 index 000000000..ec50f3f06 --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns1ClassB.m @@ -0,0 +1,4 @@ +% automatically generated by wrap +function result = delete_ns1ClassB(obj) + error('need to compile delete_ns1ClassB.cpp'); +end diff --git a/wrap/tests/expected_namespaces/delete_ns2ClassA.cpp b/wrap/tests/expected_namespaces/delete_ns2ClassA.cpp new file mode 100644 index 000000000..0562ee073 --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns2ClassA.cpp @@ -0,0 +1,9 @@ +// automatically generated by wrap +#include +#include +#include +void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[]) +{ + checkArguments("delete_ns2ClassA",nargout,nargin,1); + delete_shared_ptr< ns2::ClassA >(in[0],"ns2ClassA"); +} diff --git a/wrap/tests/expected_namespaces/delete_ns2ClassA.m b/wrap/tests/expected_namespaces/delete_ns2ClassA.m new file mode 100644 index 000000000..4f1b92aa5 --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns2ClassA.m @@ -0,0 +1,4 @@ +% automatically generated by wrap +function result = delete_ns2ClassA(obj) + error('need to compile delete_ns2ClassA.cpp'); +end diff --git a/wrap/tests/expected_namespaces/delete_ns2ClassC.cpp b/wrap/tests/expected_namespaces/delete_ns2ClassC.cpp new file mode 100644 index 000000000..ef57796b7 --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns2ClassC.cpp @@ -0,0 +1,8 @@ +// automatically generated by wrap +#include +#include +void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[]) +{ + checkArguments("delete_ns2ClassC",nargout,nargin,1); + delete_shared_ptr< ns2::ClassC >(in[0],"ns2ClassC"); +} diff --git a/wrap/tests/expected_namespaces/delete_ns2ClassC.m b/wrap/tests/expected_namespaces/delete_ns2ClassC.m new file mode 100644 index 000000000..1db1ddc93 --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns2ClassC.m @@ -0,0 +1,4 @@ +% automatically generated by wrap +function result = delete_ns2ClassC(obj) + error('need to compile delete_ns2ClassC.cpp'); +end diff --git a/wrap/tests/expected_namespaces/delete_ns2ns3ClassB.cpp b/wrap/tests/expected_namespaces/delete_ns2ns3ClassB.cpp new file mode 100644 index 000000000..0a6c4ce73 --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns2ns3ClassB.cpp @@ -0,0 +1,9 @@ +// automatically generated by wrap +#include +#include +#include +void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[]) +{ + checkArguments("delete_ns2ns3ClassB",nargout,nargin,1); + delete_shared_ptr< ns2::ns3::ClassB >(in[0],"ns2ns3ClassB"); +} diff --git a/wrap/tests/expected_namespaces/delete_ns2ns3ClassB.m b/wrap/tests/expected_namespaces/delete_ns2ns3ClassB.m new file mode 100644 index 000000000..427359eca --- /dev/null +++ b/wrap/tests/expected_namespaces/delete_ns2ns3ClassB.m @@ -0,0 +1,4 @@ +% automatically generated by wrap +function result = delete_ns2ns3ClassB(obj) + error('need to compile delete_ns2ns3ClassB.cpp'); +end diff --git a/wrap/tests/expected_namespaces/make_testNamespaces.m b/wrap/tests/expected_namespaces/make_testNamespaces.m index 1dd743ffe..eac4146c8 100644 --- a/wrap/tests/expected_namespaces/make_testNamespaces.m +++ b/wrap/tests/expected_namespaces/make_testNamespaces.m @@ -10,18 +10,21 @@ addpath(toolboxpath); %% ns1ClassA cd(toolboxpath) mex -O5 new_ns1ClassA_.cpp +mex -O5 delete_ns1ClassA.cpp cd @ns1ClassA %% ns1ClassB cd(toolboxpath) mex -O5 new_ns1ClassB_.cpp +mex -O5 delete_ns1ClassB.cpp cd @ns1ClassB %% ns2ClassA cd(toolboxpath) mex -O5 new_ns2ClassA_.cpp +mex -O5 delete_ns2ClassA.cpp mex -O5 ns2ClassA_afunction.cpp cd @ns2ClassA @@ -32,18 +35,21 @@ mex -O5 nsReturn.cpp %% ns2ns3ClassB cd(toolboxpath) mex -O5 new_ns2ns3ClassB_.cpp +mex -O5 delete_ns2ns3ClassB.cpp cd @ns2ns3ClassB %% ns2ClassC cd(toolboxpath) mex -O5 new_ns2ClassC_.cpp +mex -O5 delete_ns2ClassC.cpp cd @ns2ClassC %% ClassD cd(toolboxpath) mex -O5 new_ClassD_.cpp +mex -O5 delete_ClassD.cpp cd @ClassD diff --git a/wrap/tests/testMemory.m b/wrap/tests/testMemory.m index ec3aad786..5f2a141a5 100644 --- a/wrap/tests/testMemory.m +++ b/wrap/tests/testMemory.m @@ -2,6 +2,6 @@ %Andrew Melim addpath([pwd,'/../../../toolbox/gtsam']); -for i=1:10 +for i=1:100000 p = gtsamPoint2() end diff --git a/wrap/tests/testWrap.cpp b/wrap/tests/testWrap.cpp index 5cad10cfd..789c949dc 100644 --- a/wrap/tests/testWrap.cpp +++ b/wrap/tests/testWrap.cpp @@ -226,6 +226,18 @@ TEST( wrap, matlab_code_namespaces ) { EXPECT(files_equal(exp_path + "new_ns2ClassC_.m" , act_path + "new_ns2ClassC_.m" )); EXPECT(files_equal(exp_path + "new_ns2ns3ClassB_.cpp" , act_path + "new_ns2ns3ClassB_.cpp" )); EXPECT(files_equal(exp_path + "new_ns2ns3ClassB_.m" , act_path + "new_ns2ns3ClassB_.m" )); + EXPECT(files_equal(exp_path + "delete_ClassD.cpp" , act_path + "delete_ClassD.cpp" )); + EXPECT(files_equal(exp_path + "delete_ClassD.m" , act_path + "delete_ClassD.m" )); + EXPECT(files_equal(exp_path + "delete_ns1ClassA.cpp" , act_path + "delete_ns1ClassA.cpp" )); + EXPECT(files_equal(exp_path + "delete_ns1ClassA.m" , act_path + "delete_ns1ClassA.m" )); + EXPECT(files_equal(exp_path + "delete_ns1ClassB.cpp" , act_path + "delete_ns1ClassB.cpp" )); + EXPECT(files_equal(exp_path + "delete_ns1ClassB.m" , act_path + "delete_ns1ClassB.m" )); + EXPECT(files_equal(exp_path + "delete_ns2ClassA.cpp" , act_path + "delete_ns2ClassA.cpp" )); + EXPECT(files_equal(exp_path + "delete_ns2ClassA.m" , act_path + "delete_ns2ClassA.m" )); + EXPECT(files_equal(exp_path + "delete_ns2ClassC.cpp" , act_path + "delete_ns2ClassC.cpp" )); + EXPECT(files_equal(exp_path + "delete_ns2ClassC.m" , act_path + "delete_ns2ClassC.m" )); + EXPECT(files_equal(exp_path + "delete_ns2ns3ClassB.cpp" , act_path + "delete_ns2ns3ClassB.cpp" )); + EXPECT(files_equal(exp_path + "delete_ns2ns3ClassB.m" , act_path + "delete_ns2ns3ClassB.m" )); EXPECT(files_equal(exp_path + "ns2ClassA_afunction.cpp" , act_path + "ns2ClassA_afunction.cpp" )); EXPECT(files_equal(exp_path + "ns2ClassA_afunction.m" , act_path + "ns2ClassA_afunction.m" )); @@ -267,6 +279,8 @@ TEST( wrap, matlab_code ) { EXPECT(files_equal(path + "/tests/expected/@Point3/norm.cpp" , "actual/@Point3/norm.cpp" )); EXPECT(files_equal(path + "/tests/expected/new_Test_.cpp" , "actual/new_Test_.cpp" )); + EXPECT(files_equal(path + "/tests/expected/delete_Test.cpp" , "actual/delete_Test.cpp" )); + EXPECT(files_equal(path + "/tests/expected/delete_Test.m" , "actual/delete_Test.m" )); EXPECT(files_equal(path + "/tests/expected/@Test/Test.m" , "actual/@Test/Test.m" )); EXPECT(files_equal(path + "/tests/expected/@Test/return_string.cpp" , "actual/@Test/return_string.cpp" )); EXPECT(files_equal(path + "/tests/expected/@Test/return_pair.cpp" , "actual/@Test/return_pair.cpp" ));