summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvisvgm/dvisvgm-src/tests/TriangularPatchTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/tests/TriangularPatchTest.cpp')
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/tests/TriangularPatchTest.cpp197
1 files changed, 0 insertions, 197 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/TriangularPatchTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/tests/TriangularPatchTest.cpp
deleted file mode 100644
index 29fa437ad2e..00000000000
--- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/TriangularPatchTest.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-/*************************************************************************
-** TriangularPatchTest.cpp **
-** **
-** This file is part of dvisvgm -- a fast DVI to SVG converter **
-** Copyright (C) 2005-2021 Martin Gieseking <martin.gieseking@uos.de> **
-** **
-** This program is free software; you can redistribute it and/or **
-** modify it under the terms of the GNU General Public License as **
-** published by the Free Software Foundation; either version 3 of **
-** the License, or (at your option) any later version. **
-** **
-** This program is distributed in the hope that it will be useful, but **
-** WITHOUT ANY WARRANTY; without even the implied warranty of **
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
-** GNU General Public License for more details. **
-** **
-** You should have received a copy of the GNU General Public License **
-** along with this program; if not, see <http://www.gnu.org/licenses/>. **
-*************************************************************************/
-
-#include <gtest/gtest.h>
-#include "TriangularPatch.hpp"
-
-using namespace std;
-
-
-TEST(TriangularPatchTest, construct) {
- TriangularPatch tp1(Color::ColorSpace::RGB);
- EXPECT_EQ(tp1.psShadingType(), 4);
- EXPECT_EQ(tp1.numPoints(0), 3);
- EXPECT_EQ(tp1.numColors(0), 3);
- EXPECT_EQ(tp1.numPoints(1), 1);
- EXPECT_EQ(tp1.numColors(1), 1);
-
- vector<DPair> points(1);
- points[0] = DPair(10, 0);
- vector<Color> colors(1);
- TriangularPatch tp2(points, colors, Color::ColorSpace::RGB, 1, &tp1);
- EXPECT_EQ(tp1.psShadingType(), 4);
-
- LatticeTriangularPatch tp3(Color::ColorSpace::RGB);
- EXPECT_EQ(tp3.psShadingType(), 5);
-}
-
-
-TEST(TriangularPatchTest, valueAt) {
- vector<DPair> points(3);
- points[0] = DPair(0, 0);
- points[1] = DPair(10, 0);
- points[2] = DPair(0, 10);
- vector<Color> colors(3);
- TriangularPatch tp1(points, colors, Color::ColorSpace::RGB, 0, 0);
- EXPECT_EQ(tp1.valueAt(0, 0), DPair(0,0));
- EXPECT_EQ(tp1.valueAt(1, 0), DPair(10,0));
- EXPECT_EQ(tp1.valueAt(0, 1), DPair(0,10));
-
- points.resize(1);
- colors.resize(1);
- points[0] = DPair(10, 10);
- TriangularPatch tp2(points, colors, Color::ColorSpace::RGB, 1, &tp1);
- EXPECT_EQ(tp2.valueAt(0, 0), DPair(10,10));
- EXPECT_EQ(tp2.valueAt(1, 0), DPair(10,0));
- EXPECT_EQ(tp2.valueAt(0, 1), DPair(0,10));
-
- TriangularPatch tp3(points, colors, Color::ColorSpace::RGB, 2, &tp1);
- EXPECT_EQ(tp3.valueAt(0, 0), DPair(10,10));
- EXPECT_EQ(tp3.valueAt(1, 0), DPair(0,10));
- EXPECT_EQ(tp3.valueAt(0, 1), DPair(0,0));
-
- tp1.setPoints(DPair(20,20), DPair(20,40), DPair(40,20));
- EXPECT_EQ(tp1.valueAt(0, 0), DPair(20,20));
- EXPECT_EQ(tp1.valueAt(1, 0), DPair(20,40));
- EXPECT_EQ(tp1.valueAt(0, 1), DPair(40,20));
-}
-
-
-TEST(TriangularPatchTest, colorAt) {
- vector<DPair> points(3);
- vector<Color> colors(3);
- colors[0] = Color(1.0, 0.0, 0.0);
- colors[1] = Color(0.0, 1.0, 0.0);
- colors[2] = Color(0.0, 0.0, 1.0);
- TriangularPatch tp1(points, colors, Color::ColorSpace::RGB, 0, 0);
- EXPECT_EQ(tp1.colorAt(0, 0), Color(1.0, 0.0, 0.0));
- EXPECT_EQ(tp1.colorAt(1, 0), Color(0.0, 1.0, 0.0));
- EXPECT_EQ(tp1.colorAt(0, 1), Color(0.0, 0.0, 1.0));
-
- points.resize(1);
- colors.resize(1);
- colors[0] = Color(1.0, 1.0, 0.0);
- TriangularPatch tp2(points, colors, Color::ColorSpace::RGB, 1, &tp1);
- EXPECT_EQ(tp2.colorAt(0, 0), Color(1.0, 1.0, 0.0));
- EXPECT_EQ(tp2.colorAt(1, 0), Color(0.0, 1.0, 0.0));
- EXPECT_EQ(tp2.colorAt(0, 1), Color(0.0, 0.0, 1.0));
-
- TriangularPatch tp3(points, colors, Color::ColorSpace::RGB, 2, &tp1);
- EXPECT_EQ(tp3.colorAt(0, 0), Color(1.0, 1.0, 0.0));
- EXPECT_EQ(tp3.colorAt(1, 0), Color(0.0, 0.0, 1.0));
- EXPECT_EQ(tp3.colorAt(0, 1), Color(1.0, 0.0, 0.0));
-
- tp1.setColors(Color(1.0, 1.0, 0.0), Color(1.0, 0.0, 1.0), Color(0.0, 1.0, 1.0));
- EXPECT_EQ(tp1.colorAt(0, 0), Color(1.0, 1.0, 0.0));
- EXPECT_EQ(tp1.colorAt(1, 0), Color(1.0, 0.0, 1.0));
- EXPECT_EQ(tp1.colorAt(0, 1), Color(0.0, 1.0, 1.0));
-}
-
-
-TEST(TriangularPatchTest, averageColor) {
- vector<DPair> points(3);
- vector<Color> colors(3);
- colors[0] = Color(1.0, 0.0, 0.0);
- colors[1] = Color(0.0, 1.0, 0.0);
- colors[2] = Color(0.0, 0.0, 1.0);
- TriangularPatch tp(points, colors, Color::ColorSpace::RGB, 0, 0);
- EXPECT_EQ(tp.averageColor(), Color(uint8_t(85), uint8_t(85), uint8_t(85)));
-}
-
-
-TEST(TriangularPatchTest, bbox) {
- vector<DPair> points(3);
- points[0] = DPair(0, 0);
- points[1] = DPair(10, 0);
- points[2] = DPair(0, 10);
- vector<Color> colors(3);
- TriangularPatch tp(points, colors, Color::ColorSpace::RGB, 0, 0);
- BoundingBox bbox = tp.getBBox();
- EXPECT_EQ(bbox, BoundingBox(0, 0, 10, 10));
-}
-
-
-TEST(TriangularPatchTest, boundaryPath) {
- vector<DPair> points(3);
- points[0] = DPair(0, 0);
- points[1] = DPair(10, 0);
- points[2] = DPair(0, 10);
- vector<Color> colors(3);
- TriangularPatch tp(points, colors, Color::ColorSpace::RGB, 0, 0);
- GraphicsPath<double> path = tp.getBoundaryPath();
- ostringstream oss;
- path.writeSVG(oss, false);
- EXPECT_EQ(oss.str(), "M0 0H10L0 10Z");
-}
-
-
-class Callback : public ShadingPatch::Callback {
- public:
- void patchSegment (GraphicsPath<double> &path, const Color &color) {
- ostringstream oss;
- path.writeSVG(oss, false);
- _pathstr += oss.str();
- _colorstr += color.rgbString();
- }
- string pathstr() const {return _pathstr;}
- string colorstr() const {return _colorstr;}
- void reset () {_pathstr.clear(); _colorstr.clear();}
-
- private:
- string _pathstr;
- string _colorstr;
-};
-
-
-TEST(TriangularPatchTest, approximate) {
- vector<DPair> points(3);
- points[0] = DPair(0, 0);
- points[1] = DPair(10, 0);
- points[2] = DPair(0, 10);
- vector<Color> colors(3);
- TriangularPatch tp(points, colors, Color::ColorSpace::RGB, 0, 0);
- Callback callback;
- tp.approximate(2, false, 0.1, callback);
- EXPECT_EQ(callback.pathstr(), "M0 0H10L0 10Z");
- EXPECT_EQ(callback.colorstr(), "#000");
-
- callback.reset();
- tp.setColors(Color(1.0, 0.0, 0.0), Color(0.0, 1.0, 0.0), Color(0.0, 0.0, 1.0));
- tp.approximate(2, false, 0.1, callback);
- EXPECT_EQ(callback.pathstr(), "M0 0H5L0 5ZM0 5L5 0V5ZM0 5H5L0 10ZM5 0H10L5 5Z");
- EXPECT_EQ(callback.colorstr(), "#aa2b2b#555#2b2baa#2baa2b");
-}
-
-
-TEST(TriangularPatchTest, fail) {
- vector<DPair> points(3);
- vector<Color> colors(3);
- TriangularPatch tp(points, colors, Color::ColorSpace::RGB, 0, 0);
- EXPECT_THROW(tp.setColors(colors, 1, 0), ShadingException);
-
- for (int i=1; i <= 3; i++) {
- EXPECT_THROW(TriangularPatch(points, colors, Color::ColorSpace::RGB, i, 0), ShadingException);
- }
- points.resize(2);
- EXPECT_THROW(TriangularPatch(points, colors, Color::ColorSpace::RGB, 0, 0), ShadingException);
- points.resize(3);
- colors.resize(2);
- EXPECT_THROW(TriangularPatch(points, colors, Color::ColorSpace::RGB, 0, 0), ShadingException);
-}