allow epicsAssert.h

This commit is contained in:
Jeff Hill
1997-06-13 18:26:15 +00:00
parent bfa29ec02b
commit 3fd93fc6f4
6 changed files with 76 additions and 50 deletions

View File

@@ -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"

View File

@@ -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);

View File

@@ -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);

View File

@@ -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"

View File

@@ -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);

View File

@@ -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);