summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvisvgm/dvisvgm-src/tests/GFReaderTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/tests/GFReaderTest.cpp')
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/tests/GFReaderTest.cpp296
1 files changed, 0 insertions, 296 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/GFReaderTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/tests/GFReaderTest.cpp
deleted file mode 100644
index 82c11e9eecd..00000000000
--- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/GFReaderTest.cpp
+++ /dev/null
@@ -1,296 +0,0 @@
-/*************************************************************************
-** GFReaderTest.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 <cstdlib>
-#include <fstream>
-#include <string>
-#include <vector>
-#include "GFReader.hpp"
-
-#ifndef SRCDIR
-#define SRCDIR "."
-#endif
-
-using namespace std;
-
-
-struct PixelActions : public Bitmap::Callback {
- void pixel (int x, int y, bool set, const Bitmap &bm) {
- if (charmap.size() == 0) {
- charmap.resize(bm.height());
- for (int i=0; i < bm.height(); i++)
- charmap[i] = string(bm.width(), ' ');
- }
- EXPECT_GE(x, 0);
- EXPECT_LT(x, bm.width());
- EXPECT_GE(y, 0);
- EXPECT_LT(y, bm.height());
- charmap[y][x] = (set ? '*' : '-');
- }
-
- vector<string> charmap;
-};
-
-
-const char *letter_a[] = {
- "-----------********--------------------",
- "--------**************-----------------",
- "------*****-------******---------------",
- "-----***------------*****--------------",
- "----*****------------******------------",
- "---*******------------******-----------",
- "---********-----------******-----------",
- "---********------------******----------",
- "---********------------******----------",
- "---********-------------******---------",
- "----******--------------******---------",
- "-----****---------------******---------",
- "------------------------******---------",
- "------------------------******---------",
- "------------------------******---------",
- "------------------------******---------",
- "-----------------*************---------",
- "-------------*****************---------",
- "----------*********-----******---------",
- "--------*******---------******---------",
- "------*******-----------******---------",
- "----********------------******---------",
- "---*******--------------******---------",
- "--********--------------******---------",
- "-********---------------******---------",
- "-*******----------------******---------",
- "-*******----------------******------**-",
- "*******-----------------******------**-",
- "*******-----------------******------**-",
- "*******-----------------******------**-",
- "*******----------------*******------**-",
- "*******----------------*******------**-",
- "********--------------********------**-",
- "-*******-------------***-*****------**-",
- "-********------------**---*****----**--",
- "--********---------****---*****----**--",
- "----*******------****------*********---",
- "------**************--------*******----",
- "---------********------------*****-----",
-};
-
-
-const char *letter_g[] = {
- "------------------------------******---",
- "------------********--------*********--",
- "----------************----****----****-",
- "--------*****------*****-***-----*****-",
- "-------*****--------*******------*****-",
- "------*****----------*****-------*****-",
- "-----*****------------*****--------*---",
- "----******------------******-----------",
- "----******------------******-----------",
- "---******--------------******----------",
- "---******--------------******----------",
- "---******--------------******----------",
- "---******--------------******----------",
- "---******--------------******----------",
- "---******--------------******----------",
- "---******--------------******----------",
- "---******--------------******----------",
- "----******------------******-----------",
- "----******------------******-----------",
- "-----*****------------*****------------",
- "------*****----------*****-------------",
- "------******--------*****--------------",
- "------*******------*****---------------",
- "-----***--************-----------------",
- "-----**-----********-------------------",
- "----***--------------------------------",
- "----***--------------------------------",
- "----***--------------------------------",
- "----***--------------------------------",
- "----****-------------------------------",
- "----****-------------------------------",
- "----******-----------------------------",
- "-----*********************-------------",
- "-----************************----------",
- "------*************************--------",
- "-------**************************------",
- "------****************************-----",
- "----*****----------------**********----",
- "---*****--------------------********---",
- "--*****-----------------------******---",
- "-*****-------------------------*****---",
- "-*****-------------------------******--",
- "*****---------------------------*****--",
- "*****---------------------------*****--",
- "*****---------------------------*****--",
- "*****---------------------------*****--",
- "*****---------------------------*****--",
- "******-------------------------******--",
- "-*****-------------------------*****---",
- "--*****-----------------------*****----",
- "--******---------------------******----",
- "----*****-------------------*****------",
- "-----******---------------******-------",
- "-------*******---------*******---------",
- "---------*******************-----------",
- "-------------***********---------------",
-};
-
-
-const char *letter_M[] = {
- "****************-------------------------------------****************-",
- "*****************-----------------------------------*****************-",
- "*****************-----------------------------------*****************-",
- "-------**********-----------------------------------**********--------",
- "--------**-*******---------------------------------**-*******---------",
- "--------**-*******---------------------------------**-*******---------",
- "--------**--*******-------------------------------**--*******---------",
- "--------**--*******-------------------------------**--*******---------",
- "--------**--*******-------------------------------**--*******---------",
- "--------**---*******-----------------------------**---*******---------",
- "--------**---*******-----------------------------**---*******---------",
- "--------**---*******-----------------------------**---*******---------",
- "--------**----*******---------------------------**----*******---------",
- "--------**----*******---------------------------**----*******---------",
- "--------**-----*******-------------------------**-----*******---------",
- "--------**-----*******-------------------------**-----*******---------",
- "--------**-----*******-------------------------**-----*******---------",
- "--------**------*******-----------------------**------*******---------",
- "--------**------*******-----------------------**------*******---------",
- "--------**-------*******---------------------**-------*******---------",
- "--------**-------*******---------------------**-------*******---------",
- "--------**-------*******---------------------**-------*******---------",
- "--------**--------*******-------------------**--------*******---------",
- "--------**--------*******-------------------**--------*******---------",
- "--------**--------*******-------------------**--------*******---------",
- "--------**---------*******-----------------**---------*******---------",
- "--------**---------*******-----------------**---------*******---------",
- "--------**----------*******---------------**----------*******---------",
- "--------**----------*******---------------**----------*******---------",
- "--------**----------*******---------------**----------*******---------",
- "--------**-----------*******-------------**-----------*******---------",
- "--------**-----------*******-------------**-----------*******---------",
- "--------**------------*******-----------**------------*******---------",
- "--------**------------*******-----------**------------*******---------",
- "--------**------------*******-----------**------------*******---------",
- "--------**-------------*******---------**-------------*******---------",
- "--------**-------------*******---------**-------------*******---------",
- "--------**-------------*******---------**-------------*******---------",
- "--------**--------------*******-------**--------------*******---------",
- "--------**--------------*******-------**--------------*******---------",
- "--------**---------------*******-----**---------------*******---------",
- "--------**---------------*******-----**---------------*******---------",
- "--------**---------------*******-----**---------------*******---------",
- "--------**----------------*******---**----------------*******---------",
- "--------**----------------*******---**----------------*******---------",
- "--------**-----------------*******-**-----------------*******---------",
- "--------**-----------------*******-**-----------------*******---------",
- "--------**-----------------*******-**-----------------*******---------",
- "--------**------------------********------------------*******---------",
- "--------**------------------********------------------*******---------",
- "--------**------------------********------------------*******---------",
- "-------****------------------******-------------------*******---------",
- "------******-----------------******-------------------*******---------",
- "----**********----------------****-------------------*********--------",
- "******************------------****------------***********************-",
- "******************------------****------------***********************-",
- "******************-------------**-------------***********************-",
-};
-
-
-static void check_letter (const char **lettermap, const vector<string> &charmap) {
- for (size_t i=0; i < charmap.size(); i++)
- ASSERT_EQ(lettermap[i], charmap[charmap.size()-i-1]);
-}
-
-
-class LoggingGFReader : public GFReader {
- public:
- LoggingGFReader (istream &is) : GFReader(is) {}
- void preamble (const string &str) override {_info = str;}
- string getInfo () const {return _info;}
-
- private:
- string _info;
-};
-
-
-TEST(GFReaderTest, preamble) {
- string gf = string(SRCDIR)+"/data/cmr10.600gf";
- ifstream ifs(gf, ios::binary);
- ASSERT_TRUE(bool(ifs));
- LoggingGFReader gfReader(ifs);
- gfReader.executePreamble();
- ASSERT_EQ(gfReader.getInfo(), " METAFONT output 2010.06.18:1911");
-}
-
-
-TEST(GFReaderTest, postamble) {
- string gf = string(SRCDIR)+"/data/cmr10.600gf";
- ifstream ifs(gf, ios::binary);
- ASSERT_TRUE(bool(ifs));
- GFReader gfReader(ifs);
- gfReader.executePostamble();
- const double bp2pt = 72.27/72.0;
- ASSERT_DOUBLE_EQ(gfReader.getDesignSize()*bp2pt, 10);
- ASSERT_NEAR(gfReader.getHPixelsPerPoint(), 8.333, 0.001);
- ASSERT_NEAR(gfReader.getVPixelsPerPoint(), 8.333, 0.001);
-}
-
-
-TEST(GFReaderTest, executeChar) {
- string gf = string(SRCDIR)+"/data/cmr10.600gf";
- ifstream ifs(gf, ios::binary);
- ASSERT_TRUE(bool(ifs));
- GFReader gfReader(ifs);
- PixelActions actions;
- { gfReader.executeChar('a');
- ASSERT_EQ(gfReader.getBitmap().width(), 39);
- ASSERT_EQ(gfReader.getBitmap().height(), 39);
- SCOPED_TRACE("A");
- gfReader.getBitmap().forAllPixels(actions);
- check_letter(letter_a, actions.charmap);
- }{ actions.charmap.clear();
- gfReader.executeChar('g');
- ASSERT_EQ(gfReader.getBitmap().width(), 39);
- ASSERT_EQ(gfReader.getBitmap().height(), 56);
- SCOPED_TRACE("B");
- gfReader.getBitmap().forAllPixels(actions);
- check_letter(letter_g, actions.charmap);
- }{ actions.charmap.clear();
- gfReader.executeChar('M');
- ASSERT_EQ(gfReader.getBitmap().width(), 70);
- ASSERT_EQ(gfReader.getBitmap().height(), 57);
- SCOPED_TRACE("C");
- gfReader.getBitmap().forAllPixels(actions);
- check_letter(letter_M, actions.charmap);
- }
-}
-
-
-TEST(GFReaderTest, executeAllChars) {
- string gf = string(SRCDIR)+"/data/cmr10.600gf";
- ifstream ifs(gf, ios::binary);
- ASSERT_TRUE(bool(ifs));
- GFReader gfReader(ifs);
- gfReader.executeAllChars();
- const double bp2pt = 72.27/72.0;
- ASSERT_NEAR(gfReader.getCharWidth('M')*bp2pt, 0.573, 0.001);
- ASSERT_NEAR(gfReader.getCharWidth('g')*bp2pt, 0.313, 0.001);
-}