Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F65203197
QhullFacetSet_test.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Jun 1, 19:57
Size
4 KB
Mime Type
text/x-c
Expires
Mon, Jun 3, 19:57 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
18025378
Attached To
rCADDMESH CADD_mesher
QhullFacetSet_test.cpp
View Options
/****************************************************************************
**
** Copyright (c) 2008-2015 C.B. Barber. All rights reserved.
** $Id: //main/2011/qhull/src/qhulltest/QhullFacetSet_test.cpp#7 $$Change: 1810 $
** $DateTime: 2015/01/17 18:28:15 $$Author: bbarber $
**
****************************************************************************/
//pre-compiled headers
#include <iostream>
#include "RoadTest.h"
#include "QhullFacetSet.h"
#include "QhullError.h"
#include "QhullFacet.h"
#include "Qhull.h"
using std::cout;
using std::endl;
using std::ostringstream;
using std::ostream;
using std::string;
namespace orgQhull {
class QhullFacetSet_test : public RoadTest
{
Q_OBJECT
#//Test slots
private slots:
void cleanup();
void t_construct();
void t_convert();
void t_readonly();
void t_foreach();
void t_io();
};//QhullFacetSet_test
void
add_QhullFacetSet_test()
{
new QhullFacetSet_test();
}
//Executed after each testcase
void QhullFacetSet_test::
cleanup()
{
RoadTest::cleanup();
}
void QhullFacetSet_test::
t_construct()
{
RboxPoints rcube("c");
Qhull q(rcube,"QR0"); // rotated unit cube
QhullFacet f= q.firstFacet();
QhullFacetSet fs2= f.neighborFacets();
QVERIFY(!fs2.isEmpty());
QCOMPARE(fs2.count(),4);
QhullFacetSet fs4= fs2; // copy constructor
QVERIFY(fs4==fs2);
QhullFacetSet fs3(q.qhullQh()->facet_mergeset);
QVERIFY(fs3.isEmpty());
q.checkAndFreeQhullMemory();
}//t_construct
void QhullFacetSet_test::
t_convert()
{
RboxPoints rcube("c");
Qhull q2(rcube,"QR0 QV2"); // rotated unit cube
QhullFacet f2= q2.firstFacet();
QhullFacetSet fs2= f2.neighborFacets();
QVERIFY(!fs2.isSelectAll());
QCOMPARE(fs2.count(),2);
std::vector<QhullFacet> fv= fs2.toStdVector();
QCOMPARE(fv.size(), 2u);
QList<QhullFacet> fv2= fs2.toQList();
QCOMPARE(fv2.size(), 2);
fs2.selectAll();
QVERIFY(fs2.isSelectAll());
std::vector<QhullFacet> fv3= fs2.toStdVector();
QCOMPARE(fv3.size(), 4u);
QList<QhullFacet> fv4= fs2.toQList();
QCOMPARE(fv4.size(), 4);
q2.checkAndFreeQhullMemory();
}//t_convert
//! Spot check properties and read-only. See QhullSet_test
void QhullFacetSet_test::
t_readonly()
{
RboxPoints rcube("c");
Qhull q(rcube,"QV0"); // good facets are adjacent to point 0
QhullFacetSet fs= q.firstFacet().neighborFacets();
QVERIFY(!fs.isSelectAll());
QCOMPARE(fs.count(), 2);
fs.selectAll();
QVERIFY(fs.isSelectAll());
QCOMPARE(fs.count(), 4);
fs.selectGood();
QVERIFY(!fs.isSelectAll());
QCOMPARE(fs.count(), 2);
QhullFacet f= fs.first();
QhullFacet f2= fs.last();
fs.selectAll();
QVERIFY(fs.contains(f));
QVERIFY(fs.contains(f2));
QVERIFY(f.isGood());
QVERIFY(!f2.isGood());
fs.selectGood();
QVERIFY(fs.contains(f));
QVERIFY(!fs.contains(f2));
q.checkAndFreeQhullMemory();
}//t_readonly
void QhullFacetSet_test::
t_foreach()
{
RboxPoints rcube("c");
// Spot check predicates and accessors. See QhullLinkedList_test
Qhull q(rcube,"QR0"); // rotated unit cube
QhullFacetSet fs= q.firstFacet().neighborFacets();
QVERIFY(!fs.contains(q.firstFacet()));
QVERIFY(fs.contains(fs.first()));
QhullFacet f= q.firstFacet().next();
if(!fs.contains(f)){
f= f.next();
}
QVERIFY(fs.contains(f));
QCOMPARE(fs.first(), *fs.begin());
QCOMPARE(*(fs.end()-1), fs.last());
q.checkAndFreeQhullMemory();
}//t_foreach
void QhullFacetSet_test::
t_io()
{
RboxPoints rcube("c");
{
Qhull q(rcube,"QR0 QV0"); // good facets are adjacent to point 0
QhullFacetSet fs= q.firstFacet().neighborFacets();
ostringstream os;
os << fs.print("Neighbors of first facet with point 0");
os << fs.printIdentifiers("\nFacet identifiers: ");
cout << os.str();
QString facets= QString::fromStdString(os.str());
QCOMPARE(facets.count(QRegExp(" f[0-9]")), 2+13*2);
q.checkAndFreeQhullMemory();
}
}//t_io
}//orgQhull
#include "moc/QhullFacetSet_test.moc"
Event Timeline
Log In to Comment