mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-08-04 08:42:10 +00:00
Refactor folder (#10475)
Move many third-party components' source codes from the src folder to a new folder called deps_src. The goal is to make the code structure clearer and easier to navigate.
This commit is contained in:
215
deps_src/qhull/src/qhulltest/RboxPoints_test.cpp
Normal file
215
deps_src/qhull/src/qhulltest/RboxPoints_test.cpp
Normal file
@@ -0,0 +1,215 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (c) 2006-2015 C.B. Barber. All rights reserved.
|
||||
** $Id: //main/2015/qhull/src/qhulltest/RboxPoints_test.cpp#2 $$Change: 2062 $
|
||||
** $DateTime: 2016/01/17 13:13:18 $$Author: bbarber $
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
//pre-compiled headers
|
||||
#include <iostream>
|
||||
#include "RoadTest.h" // QT_VERSION
|
||||
|
||||
#include "libqhullcpp/RboxPoints.h"
|
||||
#include "libqhullcpp/QhullError.h"
|
||||
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
using std::ostringstream;
|
||||
using std::string;
|
||||
using std::stringstream;
|
||||
|
||||
namespace orgQhull {
|
||||
|
||||
//! Test C++ interface to Rbox
|
||||
//! See eg/q_test for tests of rbox commands
|
||||
class RboxPoints_test : public RoadTest
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
#//!\name Test slots
|
||||
private slots:
|
||||
void t_construct();
|
||||
void t_error();
|
||||
void t_test();
|
||||
void t_getSet();
|
||||
void t_foreach();
|
||||
void t_change();
|
||||
void t_ostream();
|
||||
};
|
||||
|
||||
void
|
||||
add_RboxPoints_test()
|
||||
{
|
||||
new RboxPoints_test(); // RoadTest::s_testcases
|
||||
}
|
||||
|
||||
void RboxPoints_test::
|
||||
t_construct()
|
||||
{
|
||||
RboxPoints rp;
|
||||
QCOMPARE(rp.dimension(), 0);
|
||||
QCOMPARE(rp.count(), 0);
|
||||
QVERIFY(QString::fromStdString(rp.comment()) != QString(""));
|
||||
QVERIFY(rp.isEmpty());
|
||||
QVERIFY(!rp.hasRboxMessage());
|
||||
QCOMPARE(rp.rboxStatus(), qh_ERRnone);
|
||||
QCOMPARE(QString::fromStdString(rp.rboxMessage()), QString("rbox warning: no points generated\n"));
|
||||
|
||||
RboxPoints rp2("c"); // 3-d cube
|
||||
QCOMPARE(rp2.dimension(), 3);
|
||||
QCOMPARE(rp2.count(), 8);
|
||||
QCOMPARE(QString::fromStdString(rp2.comment()), QString("rbox \"c\""));
|
||||
QVERIFY(!rp2.isEmpty());
|
||||
QVERIFY(!rp2.hasRboxMessage());
|
||||
QCOMPARE(rp2.rboxStatus(), qh_ERRnone);
|
||||
QCOMPARE(QString::fromStdString(rp2.rboxMessage()), QString("rbox: OK\n"));
|
||||
}//t_construct
|
||||
|
||||
void RboxPoints_test::
|
||||
t_error()
|
||||
{
|
||||
RboxPoints rp;
|
||||
try{
|
||||
rp.appendPoints("D0 c");
|
||||
QFAIL("'D0 c' did not fail.");
|
||||
}catch (const std::exception &e) {
|
||||
const char *s= e.what();
|
||||
cout << "INFO : Caught " << s;
|
||||
QCOMPARE(QString(s).left(6), QString("QH6189"));
|
||||
QVERIFY(rp.hasRboxMessage());
|
||||
QCOMPARE(QString::fromStdString(rp.rboxMessage()).left(8), QString("rbox err"));
|
||||
QCOMPARE(rp.rboxStatus(), 6189);
|
||||
rp.clearRboxMessage();
|
||||
QVERIFY(!rp.hasRboxMessage());
|
||||
}
|
||||
try{
|
||||
RboxPoints rp2;
|
||||
rp2.setDimension(-1);
|
||||
QFAIL("setDimension(-1) did not fail.");
|
||||
}catch (const RoadError &e) {
|
||||
const char *s= e.what();
|
||||
cout << "INFO : Caught " << s;
|
||||
QCOMPARE(QString(s).left(7), QString("QH10062"));
|
||||
QCOMPARE(e.errorCode(), 10062);
|
||||
QCOMPARE(QString::fromStdString(e.what()), QString(s));
|
||||
RoadLogEvent logEvent= e.roadLogEvent();
|
||||
QCOMPARE(logEvent.int1(), -1);
|
||||
}
|
||||
}//t_error
|
||||
|
||||
void RboxPoints_test::
|
||||
t_test()
|
||||
{
|
||||
// isEmpty -- t_construct
|
||||
}//t_test
|
||||
|
||||
void RboxPoints_test::
|
||||
t_getSet()
|
||||
{
|
||||
// comment -- t_construct
|
||||
// count -- t_construct
|
||||
// dimension -- t_construct
|
||||
|
||||
RboxPoints rp;
|
||||
QCOMPARE(rp.dimension(), 0);
|
||||
rp.setDimension(2);
|
||||
QCOMPARE(rp.dimension(), 2);
|
||||
try{
|
||||
rp.setDimension(102);
|
||||
QFAIL("setDimension(102) did not fail.");
|
||||
}catch (const std::exception &e) {
|
||||
cout << "INFO : Caught " << e.what();
|
||||
}
|
||||
QCOMPARE(rp.newCount(), 0);
|
||||
rp.appendPoints("D2 P1 P2");
|
||||
QCOMPARE(rp.count(), 2);
|
||||
QCOMPARE(rp.newCount(), 2); // From previous appendPoints();
|
||||
PointCoordinates pc(rp.qh(), 2, "Test qh() and <<");
|
||||
pc << 1.0 << 0.0 << 2.0 << 0.0;
|
||||
QCOMPARE(pc.dimension(), 2);
|
||||
QCOMPARE(pc.count(), 2);
|
||||
QVERIFY(rp==pc);
|
||||
rp.setNewCount(10); // Normally only used by appendPoints for rbox processing
|
||||
QCOMPARE(rp.newCount(), 10);
|
||||
rp.reservePoints();
|
||||
QVERIFY(rp==pc);
|
||||
}//t_getSet
|
||||
|
||||
void RboxPoints_test::
|
||||
t_foreach()
|
||||
{
|
||||
RboxPoints rp("c");
|
||||
Coordinates::ConstIterator cci= rp.beginCoordinates();
|
||||
orgQhull::Coordinates::Iterator ci= rp.beginCoordinates();
|
||||
QCOMPARE(*cci, -0.5);
|
||||
QCOMPARE(*ci, *cci);
|
||||
int i=1;
|
||||
while(++cci<rp.endCoordinates()){
|
||||
QVERIFY(++ci<rp.endCoordinates());
|
||||
QCOMPARE(*cci, *ci);
|
||||
i++;
|
||||
}
|
||||
QVERIFY(++ci==rp.endCoordinates());
|
||||
QCOMPARE(i, 8*3);
|
||||
orgQhull::Coordinates::Iterator ci4= rp.beginCoordinates(4);
|
||||
QCOMPARE(rp.endCoordinates()-ci4, 4*3);
|
||||
orgQhull::Coordinates::ConstIterator cci4= rp.beginCoordinates(4);
|
||||
orgQhull::Coordinates::ConstIterator cci5= rp.endCoordinates();
|
||||
QCOMPARE(cci5-cci4, 4*3);
|
||||
}//t_foreach
|
||||
|
||||
void RboxPoints_test::
|
||||
t_change()
|
||||
{
|
||||
RboxPoints rp("c D2");
|
||||
stringstream s;
|
||||
s << "4 count" << endl;
|
||||
s << "2 dimension" << endl;
|
||||
s << "1 2 3 4 5 6 7 8" << endl;
|
||||
rp.appendPoints(s);
|
||||
QCOMPARE(rp.count(), 8);
|
||||
orgQhull::Coordinates::Iterator ci= rp.beginCoordinates(7);
|
||||
QCOMPARE(*ci, 7.0);
|
||||
try{
|
||||
stringstream s2;
|
||||
s2 << "4 count" << endl;
|
||||
s2 << "2 dimension" << endl;
|
||||
s2 << "1 2 3 4 5 6 7 " << endl;
|
||||
rp.appendPoints(s2);
|
||||
QFAIL("incomplete appendPoints() did not fail.");
|
||||
}catch (const std::exception &e) {
|
||||
cout << "INFO : Caught " << e.what();
|
||||
}
|
||||
RboxPoints rp2;
|
||||
rp2.append(rp);
|
||||
QCOMPARE(rp2.count(), 8);
|
||||
orgQhull::Coordinates::ConstIterator cci2= rp2.beginCoordinates(6);
|
||||
QCOMPARE(*(cci2+1), 6.0);
|
||||
rp2.appendPoints("D2 10 P0");
|
||||
QCOMPARE(rp2.count(), 19);
|
||||
orgQhull::Coordinates::ConstIterator cie= rp2.beginCoordinates(8);
|
||||
QCOMPARE(*cie, 0.0);
|
||||
RboxPoints rp3;
|
||||
coordT points[] = { 0, 1,1,0,1,1,0,0};
|
||||
rp3.setDimension(2);
|
||||
rp3.append(8,points);
|
||||
QCOMPARE(rp3.count(), 4);
|
||||
orgQhull::Coordinates::Iterator ci3= rp3.beginCoordinates(3);
|
||||
QCOMPARE(*ci3, 0.0);
|
||||
}//t_change
|
||||
|
||||
void RboxPoints_test::
|
||||
t_ostream()
|
||||
{
|
||||
RboxPoints rp("c D2");
|
||||
ostringstream oss;
|
||||
oss << rp;
|
||||
string s= oss.str();
|
||||
QString qs= QString::fromStdString(s);
|
||||
QCOMPARE(qs.count("-0.5"), 4);
|
||||
}//t_ostream
|
||||
|
||||
}//orgQhull
|
||||
|
||||
#include "moc/RboxPoints_test.moc"
|
||||
Reference in New Issue
Block a user