MatrixBerryCore
HandleObjectClonerTC.m
Go to the documentation of this file.
2  methods
3  function self = HandleObjectClonerTC(varargin)
4  self = self@mxberry.unittest.TestCase(varargin{:});
5  end
6  end
7  methods (Test)
8  function testUniqueNotInBinaryMode(self)
9  objVec=mxberry.core.obj.test.HandleObjectClonerAdv.create(...
10  [1,2,1],[1,2,2]);
11  isOk=eq(objVec(1),objVec(3));
12  self.verifyTrue(isOk);
13  isOk=isEqual(objVec(1),objVec(3),'asBlob',true);
14  self.verifyTrue(~isOk);
15  isOk=isEqual(objVec(1),objVec(3),'asHandle',true);
16  self.verifyTrue(~isOk);
17  self.runAndCheckError(...
18  'isOk=isEqual(objVec(1),objVec(3),''asHandle'',true,''asBlob'',true);',...
19  'wrongInput:blobAndHandleIncompatible');
20  %
21  unqVec=unique(objVec);
22  sortVec=sort(objVec);
23  isOk=numel(unqVec)==3;
24  self.verifyTrue(isOk);
25  isOk=~any(isEqualElem(unqVec(1:end-1),unqVec(2:end),'asBlob',true));
26  self.verifyTrue(isOk);
27  isOk=all(isEqualElem(unqVec,sortVec,'asBlob',true));
28  self.verifyTrue(isOk);
29  isOk=isEqual(unqVec,sortVec,'asBlob',true);
30  self.verifyTrue(isOk);
31  end
32  function testEqAsHandle(self)
33  obj=mxberry.core.obj.test.HandleObjectCloner(1);
34  self.checkEqAsHandle(self,obj);
35  end
36  function testAtemptToSortNotInBinaryMode(self)
37  objVec=mxberry.core.obj.test.HandleObjectCloner.create(2);
38  self.runAndCheckError(@()mxberry.core.sort.mergesort(objVec),...
39  'wrongInput:signNotDefForAllElems');
40  end
41  function testUniqueIsmemberCallNumber(~)
42  import mxberry.core.test.aux.EqualCallCounter;
43  %
44  nObjVec=[3,2,5];
45  for iCase=1:numel(nObjVec)
46  nObj=nObjVec(iCase);
47  objVec=...
48  mxberry.core.obj.test.HandleObjectClonerTrickyCount.create(nObj);
49  EqualCallCounter.checkCalls(objVec);
50  end
51  end
52  end
53  methods (Static)
54  function checkEqAsHandle(self,obj)
55  obj2=obj.clone;
56  check(false,'asHandle',true);
57  check(true);
58  %
59  function check(isPosExpected,varargin)
60  chk(@isequal);
61  chk(@eq);
62  chk(@(varargin)~ne(varargin{:}));
63  chk(@isequaln);
64  chk(@isequaln);
65  function chk(fOp)
66  isEq=fOp(obj,obj2,varargin{:});
67  self.verifyEqual(isEq,isPosExpected);
68  end
69  end
70  end
71  end
72 end
function mergesort(in x)
Syntax: sx = mergesort(x);.
function unique(in inpVec)
UNIQUE for arrays of any type.