allow epicsAssert.h
This commit is contained in:
@@ -29,6 +29,9 @@
|
||||
*
|
||||
* History
|
||||
* $Log$
|
||||
* Revision 1.10 1997/06/13 09:21:51 jhill
|
||||
* fixed compiler compatibility problems
|
||||
*
|
||||
* Revision 1.9 1997/04/23 17:11:15 jhill
|
||||
* stringId::T[] => stringIdFastHash[]
|
||||
*
|
||||
@@ -69,7 +72,9 @@
|
||||
#include <limits.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#ifndef assert // allow use of epicsAssert.h
|
||||
#include <assert.h>
|
||||
#endif
|
||||
|
||||
#include "tsSLList.h"
|
||||
#include "shareLib.h"
|
||||
|
||||
@@ -47,30 +47,30 @@ main ()
|
||||
|
||||
tree.traverse(A::show);
|
||||
|
||||
assert(!tree.remove(a6));
|
||||
assert(tree.remove(a6)==tsbtrrNotFound);
|
||||
tree.insert(a6);
|
||||
assert(tree.remove(a6));
|
||||
assert(tree.remove(a5));
|
||||
assert(!tree.remove(a5));
|
||||
assert(tree.remove(a6)==tsbtrrFound);
|
||||
assert(tree.remove(a5)==tsbtrrFound);
|
||||
assert(tree.remove(a5)==tsbtrrNotFound);
|
||||
assert(!tree.verify(a5));
|
||||
assert(tree.verify(a4));
|
||||
assert(tree.remove(a0));
|
||||
assert(tree.remove(a0)==tsbtrrFound);
|
||||
assert(!tree.verify(a0));
|
||||
assert(!tree.remove(a0));
|
||||
assert(tree.remove(a0)==tsbtrrNotFound);
|
||||
tree.insert(a5);
|
||||
assert(tree.verify(a5));
|
||||
assert(tree.verify(a2));
|
||||
assert(tree.remove(a2));
|
||||
assert(tree.remove(a2)==tsbtrrFound);
|
||||
assert(!tree.verify(a2));
|
||||
assert(!tree.remove(a2));
|
||||
assert(tree.remove(a2)==tsbtrrNotFound);
|
||||
assert(tree.verify(a5));
|
||||
assert(tree.remove(a5));
|
||||
assert(!tree.remove(a5));
|
||||
assert(!tree.remove(a0));
|
||||
assert(tree.remove(a4));
|
||||
assert(tree.remove(a3));
|
||||
assert(!tree.remove(a4));
|
||||
assert(tree.remove(a1));
|
||||
assert(tree.remove(a5)==tsbtrrFound);
|
||||
assert(tree.remove(a5)==tsbtrrNotFound);
|
||||
assert(tree.remove(a0)==tsbtrrNotFound);
|
||||
assert(tree.remove(a4)==tsbtrrFound);
|
||||
assert(tree.remove(a3)==tsbtrrFound);
|
||||
assert(tree.remove(a4)==tsbtrrNotFound);
|
||||
assert(tree.remove(a1)==tsbtrrFound);
|
||||
|
||||
tree.traverse(A::show);
|
||||
|
||||
|
||||
@@ -1,16 +1,24 @@
|
||||
|
||||
#ifndef assert // allow use of epicsAssert.h
|
||||
#include <assert.h>
|
||||
#endif
|
||||
|
||||
//
|
||||
// tsBTreeRMRet
|
||||
//
|
||||
enum tsbtRR {tsbtrrNotFound, tsbtrrFound};
|
||||
template <class T>
|
||||
class tsBTreeRMRet {
|
||||
public:
|
||||
tsBTreeRMRet (unsigned foundItIn, T *pNewSegIn) :
|
||||
tsBTreeRMRet (tsbtRR foundItIn, T *pNewSegIn) :
|
||||
foundIt(foundItIn), pNewSeg(pNewSegIn) {}
|
||||
|
||||
const unsigned foundIt;
|
||||
operator tsbtRR ()
|
||||
{
|
||||
return this->foundIt;
|
||||
}
|
||||
|
||||
const tsbtRR foundIt;
|
||||
T * const pNewSeg;
|
||||
};
|
||||
|
||||
@@ -109,10 +117,10 @@ private:
|
||||
self.tsBTreeNode<T>::pRight;
|
||||
}
|
||||
}
|
||||
return tsBTreeRMRet<T>(1u, self.tsBTreeNode<T>::pLeft); // found it
|
||||
return tsBTreeRMRet<T>(tsbtrrFound, self.tsBTreeNode<T>::pLeft); // found it
|
||||
}
|
||||
else {
|
||||
return tsBTreeRMRet<T>(1u, self.tsBTreeNode<T>::pRight); // found it
|
||||
return tsBTreeRMRet<T>(tsbtrrFound, self.tsBTreeNode<T>::pRight); // found it
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,23 +129,23 @@ private:
|
||||
if (self.tsBTreeNode<T>::pLeft) {
|
||||
tsBTreeRMRet<T> ret = tsBTreeNode<T>::
|
||||
remove(*self.tsBTreeNode<T>::pLeft, item);
|
||||
if (ret.foundIt) {
|
||||
if (ret.foundIt==tsbtrrFound) {
|
||||
self.tsBTreeNode<T>::pLeft= ret.pNewSeg;
|
||||
return tsBTreeRMRet<T>(1u,&self); // TRUE - found it
|
||||
return tsBTreeRMRet<T>(tsbtrrFound,&self); // TRUE - found it
|
||||
}
|
||||
}
|
||||
return tsBTreeRMRet<T>(0u, 0u); // not found
|
||||
return tsBTreeRMRet<T>(tsbtrrNotFound, 0u); // not found
|
||||
}
|
||||
else if(result==btGreater) {
|
||||
if (self.tsBTreeNode<T>::pRight) {
|
||||
tsBTreeRMRet<T> ret = tsBTreeNode<T>::
|
||||
remove(*self.tsBTreeNode<T>::pRight, item);
|
||||
if (ret.foundIt) {
|
||||
if (ret.foundIt==tsbtrrFound) {
|
||||
self.tsBTreeNode<T>::pRight = ret.pNewSeg;
|
||||
return tsBTreeRMRet<T>(1u,&self); // TRUE - found it
|
||||
return tsBTreeRMRet<T>(tsbtrrFound,&self); // TRUE - found it
|
||||
}
|
||||
}
|
||||
return tsBTreeRMRet<T>(0u, 0u); // not found
|
||||
return tsBTreeRMRet<T>(tsbtrrNotFound, 0u); // not found
|
||||
}
|
||||
else {
|
||||
assert(0);
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
*
|
||||
* History
|
||||
* $Log$
|
||||
* Revision 1.10 1997/06/13 09:21:51 jhill
|
||||
* fixed compiler compatibility problems
|
||||
*
|
||||
* Revision 1.9 1997/04/23 17:11:15 jhill
|
||||
* stringId::T[] => stringIdFastHash[]
|
||||
*
|
||||
@@ -69,7 +72,9 @@
|
||||
#include <limits.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#ifndef assert // allow use of epicsAssert.h
|
||||
#include <assert.h>
|
||||
#endif
|
||||
|
||||
#include "tsSLList.h"
|
||||
#include "shareLib.h"
|
||||
|
||||
@@ -47,30 +47,30 @@ main ()
|
||||
|
||||
tree.traverse(A::show);
|
||||
|
||||
assert(!tree.remove(a6));
|
||||
assert(tree.remove(a6)==tsbtrrNotFound);
|
||||
tree.insert(a6);
|
||||
assert(tree.remove(a6));
|
||||
assert(tree.remove(a5));
|
||||
assert(!tree.remove(a5));
|
||||
assert(tree.remove(a6)==tsbtrrFound);
|
||||
assert(tree.remove(a5)==tsbtrrFound);
|
||||
assert(tree.remove(a5)==tsbtrrNotFound);
|
||||
assert(!tree.verify(a5));
|
||||
assert(tree.verify(a4));
|
||||
assert(tree.remove(a0));
|
||||
assert(tree.remove(a0)==tsbtrrFound);
|
||||
assert(!tree.verify(a0));
|
||||
assert(!tree.remove(a0));
|
||||
assert(tree.remove(a0)==tsbtrrNotFound);
|
||||
tree.insert(a5);
|
||||
assert(tree.verify(a5));
|
||||
assert(tree.verify(a2));
|
||||
assert(tree.remove(a2));
|
||||
assert(tree.remove(a2)==tsbtrrFound);
|
||||
assert(!tree.verify(a2));
|
||||
assert(!tree.remove(a2));
|
||||
assert(tree.remove(a2)==tsbtrrNotFound);
|
||||
assert(tree.verify(a5));
|
||||
assert(tree.remove(a5));
|
||||
assert(!tree.remove(a5));
|
||||
assert(!tree.remove(a0));
|
||||
assert(tree.remove(a4));
|
||||
assert(tree.remove(a3));
|
||||
assert(!tree.remove(a4));
|
||||
assert(tree.remove(a1));
|
||||
assert(tree.remove(a5)==tsbtrrFound);
|
||||
assert(tree.remove(a5)==tsbtrrNotFound);
|
||||
assert(tree.remove(a0)==tsbtrrNotFound);
|
||||
assert(tree.remove(a4)==tsbtrrFound);
|
||||
assert(tree.remove(a3)==tsbtrrFound);
|
||||
assert(tree.remove(a4)==tsbtrrNotFound);
|
||||
assert(tree.remove(a1)==tsbtrrFound);
|
||||
|
||||
tree.traverse(A::show);
|
||||
|
||||
|
||||
@@ -1,16 +1,24 @@
|
||||
|
||||
#ifndef assert // allow use of epicsAssert.h
|
||||
#include <assert.h>
|
||||
#endif
|
||||
|
||||
//
|
||||
// tsBTreeRMRet
|
||||
//
|
||||
enum tsbtRR {tsbtrrNotFound, tsbtrrFound};
|
||||
template <class T>
|
||||
class tsBTreeRMRet {
|
||||
public:
|
||||
tsBTreeRMRet (unsigned foundItIn, T *pNewSegIn) :
|
||||
tsBTreeRMRet (tsbtRR foundItIn, T *pNewSegIn) :
|
||||
foundIt(foundItIn), pNewSeg(pNewSegIn) {}
|
||||
|
||||
const unsigned foundIt;
|
||||
operator tsbtRR ()
|
||||
{
|
||||
return this->foundIt;
|
||||
}
|
||||
|
||||
const tsbtRR foundIt;
|
||||
T * const pNewSeg;
|
||||
};
|
||||
|
||||
@@ -109,10 +117,10 @@ private:
|
||||
self.tsBTreeNode<T>::pRight;
|
||||
}
|
||||
}
|
||||
return tsBTreeRMRet<T>(1u, self.tsBTreeNode<T>::pLeft); // found it
|
||||
return tsBTreeRMRet<T>(tsbtrrFound, self.tsBTreeNode<T>::pLeft); // found it
|
||||
}
|
||||
else {
|
||||
return tsBTreeRMRet<T>(1u, self.tsBTreeNode<T>::pRight); // found it
|
||||
return tsBTreeRMRet<T>(tsbtrrFound, self.tsBTreeNode<T>::pRight); // found it
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,23 +129,23 @@ private:
|
||||
if (self.tsBTreeNode<T>::pLeft) {
|
||||
tsBTreeRMRet<T> ret = tsBTreeNode<T>::
|
||||
remove(*self.tsBTreeNode<T>::pLeft, item);
|
||||
if (ret.foundIt) {
|
||||
if (ret.foundIt==tsbtrrFound) {
|
||||
self.tsBTreeNode<T>::pLeft= ret.pNewSeg;
|
||||
return tsBTreeRMRet<T>(1u,&self); // TRUE - found it
|
||||
return tsBTreeRMRet<T>(tsbtrrFound,&self); // TRUE - found it
|
||||
}
|
||||
}
|
||||
return tsBTreeRMRet<T>(0u, 0u); // not found
|
||||
return tsBTreeRMRet<T>(tsbtrrNotFound, 0u); // not found
|
||||
}
|
||||
else if(result==btGreater) {
|
||||
if (self.tsBTreeNode<T>::pRight) {
|
||||
tsBTreeRMRet<T> ret = tsBTreeNode<T>::
|
||||
remove(*self.tsBTreeNode<T>::pRight, item);
|
||||
if (ret.foundIt) {
|
||||
if (ret.foundIt==tsbtrrFound) {
|
||||
self.tsBTreeNode<T>::pRight = ret.pNewSeg;
|
||||
return tsBTreeRMRet<T>(1u,&self); // TRUE - found it
|
||||
return tsBTreeRMRet<T>(tsbtrrFound,&self); // TRUE - found it
|
||||
}
|
||||
}
|
||||
return tsBTreeRMRet<T>(0u, 0u); // not found
|
||||
return tsBTreeRMRet<T>(tsbtrrNotFound, 0u); // not found
|
||||
}
|
||||
else {
|
||||
assert(0);
|
||||
|
||||
Reference in New Issue
Block a user