Patch: Add Comparison Operators for Centerings
Jeffrey Oldham
oldham at codesourcery.com
Fri Oct 5 01:18:58 UTC 2001
Resolves Pooma QMTrack issue 'centering_comparison'.
2001-10-04 Jeffrey D. Oldham <oldham at codesourcery.com>
* FieldCentering.h (operator==): New function to compare two
centerings with the same dimension.
(operator!=): Likewise.
* tests/Centerings.cpp (main): Add tests of comparison operators.
Tested by running tests/Centerings.cpp
Approved by Stephen Smith
Applied to mainline
Thanks,
Jeffrey D. Oldham
oldham at codesourcery.com
-------------- next part --------------
Index: FieldCentering.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Field/FieldCentering.h,v
retrieving revision 1.2
diff -c -p -r1.2 FieldCentering.h
*** FieldCentering.h 2001/08/30 19:02:36 1.2
--- FieldCentering.h 2001/10/01 17:01:42
*************** std::ostream &operator<<(std::ostream &o
*** 491,496 ****
--- 491,517 ----
//-----------------------------------------------------------------------------
+ // Provide == and != comparison operators for centerings.
+ //-----------------------------------------------------------------------------
+
+ template <int Dim>
+ bool operator==(const Centering<Dim> ¢ering1, const Centering<Dim> ¢ering2)
+ {
+ return
+ centering1.centeringType() == centering2.centeringType() &&
+ centering1.discontinuous() == centering2.discontinuous() &&
+ centering1.orientations() == centering2.orientations() &&
+ centering1.positions() == centering2.positions();
+ }
+
+ template <int Dim>
+ bool operator!=(const Centering<Dim> ¢ering1, const Centering<Dim> ¢ering2)
+ {
+ return !(centering1 == centering2);
+ }
+
+
+ //-----------------------------------------------------------------------------
// Define CanonicalCentering's static members.
//-----------------------------------------------------------------------------
Index: tests/Centerings.cpp
===================================================================
RCS file: /home/pooma/Repository/r2/src/Field/tests/Centerings.cpp,v
retrieving revision 1.1
diff -c -p -r1.1 Centerings.cpp
*** tests/Centerings.cpp 2001/08/30 01:15:18 1.1
--- tests/Centerings.cpp 2001/10/01 17:01:42
***************
*** 31,41 ****
--- 31,43 ----
#include "Pooma/Fields.h"
#include "Field/FieldCentering.h"
+ #include "Utilities/Tester.h"
int main(int argc, char *argv[])
{
Pooma::initialize(argc, argv);
+ Pooma::Tester tester(argc, argv);
// Explicitly obtain the centerings.
CanonicalCentering<2> centering2;
*************** int main(int argc, char *argv[])
*** 52,59 ****
std::cout << canonicalCentering<2>(CellType, Continuous) << std::endl;
std::cout << canonicalCentering<3>(FaceType, Discontinuous, XDim | YDim) << std::endl;
Pooma::finalize();
! return 0;
}
// ACL:rcsinfo
--- 54,68 ----
std::cout << canonicalCentering<2>(CellType, Continuous) << std::endl;
std::cout << canonicalCentering<3>(FaceType, Discontinuous, XDim | YDim) << std::endl;
+ // Briefly test the comparison operators.
+ tester.check(cell == canonicalCentering<2>(CellType, Continuous));
+ tester.check(cell != centering2(FaceType, Continuous, XDim | YDim));
+ tester.check(allFace == centering3(FaceType, Continuous, XDim | YDim));
+ tester.check(centering3(FaceType, Continuous, XDim | YDim) == allFace);
+
+ int ret = tester.results("Centerings");
Pooma::finalize();
! return ret;
}
// ACL:rcsinfo
More information about the pooma-dev
mailing list