nail down all the MObjectRef equality comparison cases
This commit is contained in:
parent
e04672936a
commit
e9d641babd
2 changed files with 110 additions and 11 deletions
|
|
@ -142,30 +142,56 @@ namespace mobject {
|
|||
|
||||
template<class MOX>
|
||||
bool
|
||||
operator== (MORef<MOX> const& oRef)
|
||||
operator== (MORef<MOX> const& oRef) const
|
||||
{
|
||||
return pRef_ == oRef.pRef_;
|
||||
return oRef == this->pRef_;
|
||||
}
|
||||
|
||||
template<class MOX>
|
||||
bool
|
||||
operator== (PlacementRef<MOX> const& pRef)
|
||||
operator!= (MORef<MOX> const& oRef) const
|
||||
{
|
||||
return pRef_ == pRef;
|
||||
return oRef != this->pRef_;
|
||||
}
|
||||
|
||||
template<class MOX>
|
||||
bool
|
||||
operator== (typename Placement<MOX>::ID const& pID)
|
||||
friend bool
|
||||
operator== (MORef const& oRef, PlacementRef<MOX> const& pRef)
|
||||
{
|
||||
return pRef_ == pID;
|
||||
return oRef.pRef_ == pRef;
|
||||
}
|
||||
|
||||
template<class XX>
|
||||
bool
|
||||
operator!= (XX const& xx)
|
||||
template<class MOX>
|
||||
friend bool
|
||||
operator!= (MORef const& oRef, PlacementRef<MOX> const& pRef)
|
||||
{
|
||||
return !((*this) == xx);
|
||||
return oRef.pRef_ != pRef;
|
||||
}
|
||||
|
||||
template<class MOX>
|
||||
friend bool
|
||||
operator== (PlacementRef<MOX> const& pRef, MORef const& oRef)
|
||||
{
|
||||
return pRef == oRef.pRef_;
|
||||
}
|
||||
|
||||
template<class MOX>
|
||||
friend bool
|
||||
operator!= (PlacementRef<MOX> const& pRef, MORef const& oRef)
|
||||
{
|
||||
return pRef != oRef.pRef_;
|
||||
}
|
||||
|
||||
bool
|
||||
operator== (PlacementMO::ID const& pID) const
|
||||
{
|
||||
return PlacementMO::ID (pRef_) == pID;
|
||||
}
|
||||
|
||||
bool
|
||||
operator!= (PlacementMO::ID const& pID) const
|
||||
{
|
||||
return PlacementMO::ID (pRef_) != pID;
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
|||
|
|
@ -127,6 +127,7 @@ namespace test {
|
|||
checkBuildMObjectRef (ref1, &pClip1);
|
||||
checkBuildMObjectRef (ref2, &pClip2);
|
||||
|
||||
checkComparison(rP1,rP2);
|
||||
checkLifecycle (rP1,rP2);
|
||||
checkTypeHandling (luid);
|
||||
// -----Tests------------------
|
||||
|
|
@ -188,6 +189,78 @@ namespace test {
|
|||
ASSERT (4 == rMO.use_count());
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
checkComparison (PMO& p1, PMO& p2)
|
||||
{
|
||||
PlacementRef<Clip> pRef1 (p1);
|
||||
PlacementRef<MObject> pRef2 (p2);
|
||||
|
||||
MORef<MObject> rM;
|
||||
MORef<Clip> rC;
|
||||
|
||||
#if false //////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET 384 !!!!!!!!!
|
||||
rM.activate (p1);
|
||||
rC.activate (p2);
|
||||
#endif ////////////////////////////////////////////////////////////////////////////////////////TODO lots of things unimplemented.....!!!!!
|
||||
ASSERT (rM && rC);
|
||||
ASSERT (!(rM == rC) && !(rC == rM));
|
||||
ASSERT ( (rM != rC) && (rC != rM));
|
||||
|
||||
// mixed comparisons
|
||||
ASSERT ( (rM == pRef1) && (pRef1 == rM));
|
||||
ASSERT ( (rC == pRef2) && (pRef2 == rC));
|
||||
ASSERT (!(rM != pRef1) && !(pRef1 != rM));
|
||||
ASSERT (!(rC != pRef2) && !(pRef2 != rC));
|
||||
ASSERT ( (rM != pRef2) && (pRef2 != rM));
|
||||
ASSERT ( (rC != pRef1) && (pRef1 != rC));
|
||||
ASSERT (!(rM == pRef2) && !(pRef2 == rM));
|
||||
ASSERT (!(rC == pRef1) && !(pRef1 == rC));
|
||||
|
||||
ASSERT ( (rM == p1.getID()) );
|
||||
ASSERT ( (rC == p2.getID()) );
|
||||
ASSERT (!(rM != p1.getID()) );
|
||||
ASSERT (!(rC != p2.getID()) );
|
||||
ASSERT ( (rM != p2.getID()) );
|
||||
ASSERT ( (rC != p1.getID()) );
|
||||
ASSERT (!(rM == p2.getID()) );
|
||||
ASSERT (!(rC == p1.getID()) );
|
||||
|
||||
|
||||
#if false //////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET 384 !!!!!!!!!
|
||||
rC.activate (p1);
|
||||
#endif ////////////////////////////////////////////////////////////////////////////////////////TODO lots of things unimplemented.....!!!!!
|
||||
ASSERT ( (rM == rC) && (rC == rM));
|
||||
ASSERT (!(rM != rC) && !(rC != rM));
|
||||
|
||||
ASSERT ( (rC == pRef1) && (pRef1 == rC));
|
||||
ASSERT (!(rC != pRef1) && !(pRef1 != rC));
|
||||
ASSERT ( (rC != pRef2) && (pRef2 != rC));
|
||||
ASSERT (!(rC == pRef2) && !(pRef2 == rC));
|
||||
|
||||
ASSERT ( (rC == p1.getID()) );
|
||||
ASSERT (!(rC != p1.getID()) );
|
||||
ASSERT ( (rC != p2.getID()) );
|
||||
ASSERT (!(rC == p2.getID()) );
|
||||
|
||||
|
||||
rM.close();
|
||||
ASSERT (!rM);
|
||||
ASSERT (!(rM == rC) && !(rC == rM));
|
||||
ASSERT ( (rM != rC) && (rC != rM));
|
||||
|
||||
ASSERT (!(rM == pRef1) && !(pRef1 == rM));
|
||||
ASSERT ( (rM != pRef1) && (pRef1 != rM));
|
||||
ASSERT (!(rM != pRef2) && !(pRef2 != rM));
|
||||
ASSERT ( (rM == pRef2) && (pRef2 == rM));
|
||||
|
||||
ASSERT (!(rM == p1.getID()) );
|
||||
ASSERT ( (rM != p1.getID()) );
|
||||
ASSERT (!(rM != p2.getID()) );
|
||||
ASSERT ( (rM == p2.getID()) );
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
checkLifecylce (PMObj const& p1, PMObj const& p2)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue