-
Notifications
You must be signed in to change notification settings - Fork 111
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test(gd)!: New test set and its first test
The gd test set only runs on LuaTeX. `pgfgd-debug.lua` adds debugging code to `InterfaceToDisplay` functions which helps in checking tests based on states of display layer (Lua), rather than box content. Signed-off-by: muzimuzhi <[email protected]>
- Loading branch information
Showing
6 changed files
with
186 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
-- Tests for graph drawing (gd) library | ||
|
||
stdengine = "luatex" | ||
checkengines = {"luatex"} | ||
testfiledir = "testfiles-gd" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
local InterfaceToDisplay = pgf.gd.interface.InterfaceToDisplay | ||
|
||
--- Wrap InterfaceToDisplay functions to prepend debugging code | ||
local createVertex = InterfaceToDisplay.createVertex | ||
-- here `...` is a vararg expression, | ||
-- see https://www.lua.org/manual/5.3/manual.html#3.4.11 | ||
function InterfaceToDisplay.createVertex(...) | ||
local name = ... | ||
debug("Create vertex '%s'", name) | ||
createVertex(...) | ||
end | ||
|
||
local createEdge = InterfaceToDisplay.createEdge | ||
function InterfaceToDisplay.createEdge(...) | ||
local tail, head, direction = ... | ||
debug("Create edge '%s' from '%s' to '%s'", direction, tail, head) | ||
createEdge(...) | ||
end | ||
|
||
-- this generates too many debugging lines | ||
-- local createEvent = InterfaceToDisplay.createEvent | ||
-- function InterfaceToDisplay.createEvent(...) | ||
-- local kind = ... | ||
-- debug("Create event '%s'", kind) | ||
-- return createEvent(...) | ||
-- end | ||
|
||
local addToVertexOptions = InterfaceToDisplay.addToVertexOptions | ||
function InterfaceToDisplay.addToVertexOptions(...) | ||
local name = ... | ||
debug("Add options to vertex '%s'", name) | ||
addToVertexOptions(...) | ||
end | ||
|
||
|
||
-- helper | ||
function debug(format_str, ...) | ||
tex.sprint(string.format("\\pgfgdluainfo{" .. format_str .. "}", ...)) | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
\input regression-test.tex | ||
|
||
\catcode`\@=11 % \makeatletter | ||
|
||
% this macro should be used _after_ graphdrawing library is loaded | ||
\def\pgfgdBeforeBeginDocument{ | ||
% redirect error | ||
\def\pgfutil@packageerror#1#2#3{\immediate\write17{Package #1 Error: #2.}} | ||
|
||
% new message type "info" | ||
\def\pgftest@genericinfo#1#2{\immediate\write17{#1 Info: #2.}} | ||
\def\pgfgdluainfo{\pgftest@genericinfo{Gd Lua layer}} | ||
|
||
% insert debugging code | ||
\directlua{dofile('pgfgd-debug.lua')} | ||
} | ||
|
||
\catcode`\@=12 % \makeatother |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
\documentclass{minimal} | ||
\input{pgfgd-regression-test} | ||
|
||
\RequirePackage{tikz} | ||
\usetikzlibrary{graphs, graphdrawing} | ||
\usegdlibrary{layered} | ||
|
||
\pgfgdBeforeBeginDocument | ||
\begin{document} | ||
|
||
\START | ||
|
||
% use all five edge kinds | ||
% make node names variable, to prevent false negative results | ||
\def\testgraph#1{ a#1 -> {b#1, c#1 <-> d#1} -- e#1 <- f#1; a#1 -!- f#1; } | ||
\SEPARATOR | ||
\TYPE{Base graph: \testgraph{}} | ||
\SEPARATOR | ||
|
||
\BEGINTEST{Empty `name prefix`} | ||
\tikzpicture | ||
\graph[layered layout] { [parse/.expand once=\testgraph{1}] }; | ||
\path (b1); | ||
\path[name prefix=z-] (b1); | ||
\endtikzpicture | ||
\ENDTEST | ||
|
||
\BEGINTEST{Non-empty `name prefix`} | ||
\tikzpicture[name prefix=x-] | ||
\graph[layered layout] { [parse/.expand once=\testgraph{2}] }; | ||
|
||
% works | ||
\path (b2) (x-b2); | ||
\path[name prefix=] (x-b2); | ||
\path[name prefix=y-] (x-b2); | ||
|
||
% should throw errors | ||
\path[name prefix=] (b2); | ||
\endtikzpicture | ||
\ENDTEST | ||
|
||
\BEGINTEST{Simple non-gd graph + Empty `name suffix`} | ||
\tikzpicture | ||
\graph { [parse/.expand once=\testgraph{3}] }; | ||
\path (b3); | ||
\path[name suffix=-z] (b3); | ||
\endtikzpicture | ||
\ENDTEST | ||
|
||
\BEGINTEST{Simple non-gd graph + Non-empty `name suffix`} | ||
\tikzpicture[name suffix=-x] | ||
\graph { [parse/.expand once=\testgraph{4}] }; | ||
|
||
% works | ||
\path (b4) (b4-x); | ||
\path[name suffix=] (b4-x); | ||
\path[name suffix=-y] (b4-x); | ||
|
||
% throws errors | ||
\path[name suffix=] (b4); | ||
\endtikzpicture | ||
\ENDTEST | ||
|
||
\END |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
This is a generated file for the l3build validation system. | ||
Don't change this file in any respect. | ||
============================================================ | ||
Base graph: a -> {b, c <-> d} -- e <- f; a -!- f; | ||
============================================================ | ||
============================================================ | ||
TEST 1: Empty `name prefix` | ||
============================================================ | ||
Gd Lua layer Info: Create vertex 'a1'. | ||
Gd Lua layer Info: Create vertex 'b1'. | ||
Gd Lua layer Info: Create vertex 'c1'. | ||
Gd Lua layer Info: Create vertex 'd1'. | ||
Gd Lua layer Info: Create edge '<->' from 'c1' to 'd1'. | ||
Gd Lua layer Info: Create edge '->' from 'a1' to 'b1'. | ||
Gd Lua layer Info: Create edge '->' from 'a1' to 'c1'. | ||
Gd Lua layer Info: Create vertex 'e1'. | ||
Gd Lua layer Info: Create edge '--' from 'b1' to 'e1'. | ||
Gd Lua layer Info: Create edge '--' from 'd1' to 'e1'. | ||
Gd Lua layer Info: Create vertex 'f1'. | ||
Gd Lua layer Info: Create edge '<-' from 'e1' to 'f1'. | ||
Gd Lua layer Info: Add options to vertex 'a1'. | ||
Gd Lua layer Info: Add options to vertex 'a1'. | ||
Gd Lua layer Info: Add options to vertex 'f1'. | ||
Gd Lua layer Info: Add options to vertex 'f1'. | ||
Gd Lua layer Info: Create edge '-!-' from 'a1' to 'f1'. | ||
============================================================ | ||
============================================================ | ||
TEST 2: Non-empty `name prefix` | ||
============================================================ | ||
Gd Lua layer Info: Create vertex 'x-a2'. | ||
Gd Lua layer Info: Create vertex 'x-b2'. | ||
Gd Lua layer Info: Create vertex 'x-c2'. | ||
Gd Lua layer Info: Create vertex 'x-d2'. | ||
Gd Lua layer Info: Create edge '<->' from 'x-c2' to 'x-d2'. | ||
Gd Lua layer Info: Create edge '->' from 'x-a2' to 'x-b2'. | ||
Gd Lua layer Info: Create edge '->' from 'x-a2' to 'x-c2'. | ||
Gd Lua layer Info: Create vertex 'x-e2'. | ||
Gd Lua layer Info: Create edge '--' from 'x-b2' to 'x-e2'. | ||
Gd Lua layer Info: Create edge '--' from 'x-d2' to 'x-e2'. | ||
Gd Lua layer Info: Create vertex 'x-f2'. | ||
Gd Lua layer Info: Create edge '<-' from 'x-e2' to 'x-f2'. | ||
Gd Lua layer Info: Add options to vertex 'x-a2'. | ||
Gd Lua layer Info: Add options to vertex 'x-a2'. | ||
Gd Lua layer Info: Add options to vertex 'x-f2'. | ||
Gd Lua layer Info: Add options to vertex 'x-f2'. | ||
Gd Lua layer Info: Create edge '-!-' from 'x-a2' to 'x-f2'. | ||
Package pgf Error: No shape named `b2' is known. | ||
============================================================ | ||
============================================================ | ||
TEST 3: Simple non-gd graph + Empty `name suffix` | ||
============================================================ | ||
============================================================ | ||
============================================================ | ||
TEST 4: Simple non-gd graph + Non-empty `name suffix` | ||
============================================================ | ||
Package pgf Error: No shape named `b4' is known. | ||
============================================================ |