www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 2f552af02d34911a180bc882df9c40736dc846f8
parent d9396c205a55618edb17687eee3606fe91cf7afb
Author: Emily Eisenberg <emily@khanacademy.org>
Date:   Thu, 12 Mar 2015 16:40:15 -0700

Make our own screenshotting script instead of using huxley

Summary:
Create our own screenshotting script which takes screenshots. This
improves over huxley for a couple reasons:
 - It makes the screenshots the correct size (for some reason, huxley struggles
   with this).
 - Its configuration matches more with what we want (we don't need multiple
   screenshots or interaction, we just want a single static shot)
 - It runs faster

I also changed the docs to reflect this change.

Test Plan:
 - Make sure all of the tests that were in the Huxleyfile are now in ss_data.json
 - Run the screenshotter docker
 - Make sure all of the images look reasonable and don't change (except
   sometimes the Lap test, which has some strange pixel-positioning
   differences...)

Reviewers: kevinb

Reviewed By: kevinb

Differential Revision: https://phabricator.khanacademy.org/D16731

Diffstat:
MCONTRIBUTING.md | 15+++++++--------
MMakefile | 3+++
Ddockers/HuxleyTests/Dockerfile | 13-------------
Ddockers/HuxleyTests/README.md | 30------------------------------
Adockers/Screenshotter/Dockerfile | 15+++++++++++++++
Adockers/Screenshotter/README.md | 29+++++++++++++++++++++++++++++
Adockers/Screenshotter/screenshotter.py | 107+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpackage.json | 1-
Dtest/huxley/Huxleyfile.json | 205-------------------------------------------------------------------------------
Dtest/huxley/Huxleyfolder/Accents.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Accents.record.json | 5-----
Dtest/huxley/Huxleyfolder/Baseline.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Baseline.record.json | 5-----
Dtest/huxley/Huxleyfolder/BasicTest.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/BasicTest.record.json | 5-----
Dtest/huxley/Huxleyfolder/BinomTest.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/BinomTest.record.json | 5-----
Dtest/huxley/Huxleyfolder/Colors.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Colors.record.json | 5-----
Dtest/huxley/Huxleyfolder/DeepFontSizing.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/DeepFontSizing.record.json | 5-----
Dtest/huxley/Huxleyfolder/DelimiterSizing.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/DelimiterSizing.record.json | 5-----
Dtest/huxley/Huxleyfolder/DisplayMode.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/DisplayMode.record.json | 5-----
Dtest/huxley/Huxleyfolder/DisplayStyle.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/DisplayStyle.record.json | 5-----
Dtest/huxley/Huxleyfolder/Exponents.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Exponents.record.json | 5-----
Dtest/huxley/Huxleyfolder/FractionTest.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/FractionTest.record.json | 5-----
Dtest/huxley/Huxleyfolder/Functions.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Functions.record.json | 5-----
Dtest/huxley/Huxleyfolder/GreekLetters.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/GreekLetters.record.json | 5-----
Dtest/huxley/Huxleyfolder/KaTeX.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/KaTeX.record.json | 5-----
Dtest/huxley/Huxleyfolder/Lap.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Lap.record.json | 5-----
Dtest/huxley/Huxleyfolder/LeftRight.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/LeftRight.record.json | 5-----
Dtest/huxley/Huxleyfolder/LeftRightListStyling.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/LeftRightListStyling.record.json | 5-----
Dtest/huxley/Huxleyfolder/LeftRightStyleSizing.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/LeftRightStyleSizing.record.json | 5-----
Dtest/huxley/Huxleyfolder/NestedFractions.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/NestedFractions.record.json | 5-----
Dtest/huxley/Huxleyfolder/NullDelimiterInteraction.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/NullDelimiterInteraction.record.json | 5-----
Dtest/huxley/Huxleyfolder/OpLimits.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/OpLimits.record.json | 5-----
Dtest/huxley/Huxleyfolder/Overline.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Overline.record.json | 5-----
Dtest/huxley/Huxleyfolder/PrimeSpacing.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/PrimeSpacing.record.json | 5-----
Dtest/huxley/Huxleyfolder/RlapBug.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/RlapBug.record.json | 5-----
Dtest/huxley/Huxleyfolder/Rule.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Rule.record.json | 5-----
Dtest/huxley/Huxleyfolder/Sizing.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Sizing.record.json | 5-----
Dtest/huxley/Huxleyfolder/SizingBaseline.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/SizingBaseline.record.json | 5-----
Dtest/huxley/Huxleyfolder/Spacing.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Spacing.record.json | 5-----
Dtest/huxley/Huxleyfolder/Sqrt.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Sqrt.record.json | 5-----
Dtest/huxley/Huxleyfolder/SupSubCharacterBox.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/SupSubCharacterBox.record.json | 5-----
Dtest/huxley/Huxleyfolder/SupSubHorizSpacing.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/SupSubHorizSpacing.record.json | 5-----
Dtest/huxley/Huxleyfolder/SupSubOffsets.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/SupSubOffsets.record.json | 5-----
Dtest/huxley/Huxleyfolder/Text.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/Text.record.json | 5-----
Dtest/huxley/Huxleyfolder/VerticalSpacing.hux/firefox-1.png | 0
Dtest/huxley/Huxleyfolder/VerticalSpacing.record.json | 5-----
Atest/screenshotter/images/Accents-firefox.png | 0
Atest/screenshotter/images/Baseline-firefox.png | 0
Atest/screenshotter/images/BasicTest-firefox.png | 0
Atest/screenshotter/images/BinomTest-firefox.png | 0
Atest/screenshotter/images/Colors-firefox.png | 0
Atest/screenshotter/images/DeepFontSizing-firefox.png | 0
Atest/screenshotter/images/DelimiterSizing-firefox.png | 0
Atest/screenshotter/images/DisplayMode-firefox.png | 0
Atest/screenshotter/images/DisplayStyle-firefox.png | 0
Atest/screenshotter/images/Exponents-firefox.png | 0
Atest/screenshotter/images/FractionTest-firefox.png | 0
Atest/screenshotter/images/Functions-firefox.png | 0
Atest/screenshotter/images/GreekLetters-firefox.png | 0
Atest/screenshotter/images/KaTeX-firefox.png | 0
Atest/screenshotter/images/Lap-firefox.png | 0
Atest/screenshotter/images/LeftRight-firefox.png | 0
Atest/screenshotter/images/LeftRightListStyling-firefox.png | 0
Atest/screenshotter/images/LeftRightStyleSizing-firefox.png | 0
Atest/screenshotter/images/NestedFractions-firefox.png | 0
Atest/screenshotter/images/NullDelimiterInteraction-firefox.png | 0
Atest/screenshotter/images/OpLimits-firefox.png | 0
Atest/screenshotter/images/Overline-firefox.png | 0
Atest/screenshotter/images/PrimeSpacing-firefox.png | 0
Atest/screenshotter/images/RlapBug-firefox.png | 0
Atest/screenshotter/images/Rule-firefox.png | 0
Atest/screenshotter/images/Sizing-firefox.png | 0
Atest/screenshotter/images/SizingBaseline-firefox.png | 0
Atest/screenshotter/images/Spacing-firefox.png | 0
Atest/screenshotter/images/Sqrt-firefox.png | 0
Atest/screenshotter/images/SupSubCharacterBox-firefox.png | 0
Atest/screenshotter/images/SupSubHorizSpacing-firefox.png | 0
Atest/screenshotter/images/SupSubOffsets-firefox.png | 0
Atest/screenshotter/images/Text-firefox.png | 0
Atest/screenshotter/images/VerticalSpacing-firefox.png | 0
Atest/screenshotter/ss_data.json | 36++++++++++++++++++++++++++++++++++++
Rtest/huxley/test.html -> test/screenshotter/test.html | 0
113 files changed, 197 insertions(+), 427 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md @@ -68,14 +68,13 @@ tests when you submit a pull request, in case you forget. If you make any changes to Parser.js, add Jasmine tests to ensure they work. -#### Huxley tests +#### Screenshot tests -To ensure the final output looks good, we use -[Huxley](https://github.com/chenglou/node-huxley) tests, which screenshot -different expressions. These tests can be run by using the [Huxley -docker](https://github.com/Khan/KaTeX/tree/master/dockers/HuxleyTests). +To ensure the final output looks good, we screenshot different expressions. +These tests can be run by using the +[Screenshotter docker](https://github.com/Khan/KaTeX/tree/master/dockers/Screenshotter). -The Huxley tests should be run if you add anything more significant than +The screenshot tests should be run if you add anything more significant than individual symbols. These tests are not automatically run, so please remember! If the new images are different (meaning they are not byte-by-byte the same as the old ones), inspect them visually. If there are no visible changes, that is @@ -83,8 +82,8 @@ okay. If things change in a way consistent with your additions, explain what changed and why. Otherwise, figure out what is causing the changes and fix it! If you add a feature that is dependent on the final output looking the way you -created it, add a huxley test. See -[Huxleyfile.json](test/huxley/Huxleyfile.json). +created it, add a screenshot test. See +[ss_data.json](test/screenshotter/ss_data.json). #### Testing in other browsers diff --git a/Makefile b/Makefile @@ -59,3 +59,6 @@ metrics: clean: rm -rf build/* + +screenshots: + docker run --volume=$(shell pwd):/KaTeX ss diff --git a/dockers/HuxleyTests/Dockerfile b/dockers/HuxleyTests/Dockerfile @@ -1,13 +0,0 @@ -FROM ubuntu:14.04 -MAINTAINER xymostech <xymostech@gmail.com> -RUN apt-get -qq update -RUN apt-get -qqy install nodejs=0.10.25~dfsg2-2ubuntu1 default-jre=2:1.7-51 firefox=28.0+build2-0ubuntu2 xvfb=2:1.15.1-0ubuntu2 wget=1.15-1ubuntu1 || true -RUN wget http://selenium-release.storage.googleapis.com/2.42/selenium-server-standalone-2.42.2.jar -RUN ln -s /usr/bin/nodejs /usr/bin/node -ENV DISPLAY :1 -CMD /bin/bash ~/run.sh -RUN echo "java -jar /selenium-server-standalone-2.42.2.jar > /dev/null &" >> ~/run.sh -RUN echo "Xvfb :1 2> /dev/null &" >> ~/run.sh -RUN echo "make -C /KaTeX serve > /dev/null &" >> ~/run.sh -RUN echo "sleep 2" >> ~/run.sh -RUN echo "/KaTeX/node_modules/.bin/hux --write /KaTeX/test/huxley/" >> ~/run.sh diff --git a/dockers/HuxleyTests/README.md b/dockers/HuxleyTests/README.md @@ -1,29 +0,0 @@ -### How to generate huxley images ---------------------------------- - -Now you too can generate huxley images from your own computer, and (hopefully) -have them look mostly the same as the current ones! To start, make a docker -image from the included Dockerfile using a command like - - sudo docker build --tag=huxley . - -from within this directory (note you need to have docker installed and running -for this to work). This will build a docker image with the huxley tag, -which you can then use to run dockers based on them. - -This huxleyfile is set up such that it will run everything and generate all the -huxley images when the image is run, so no interactive input is required. All -that you need to do is mount the KaTeX directory you want to test into the -`/KaTeX` directory in the docker, and run the huxley docker, like so: - - sudo docker run --volume=/your/KaTeX/:/KaTeX huxley - -The `--volume=/your/KaTeX:/KaTeX` switch mounts your KaTeX directory into the -docker. Note this is a read-write mounting, so the new huxley images will be -directly placed into your KaTeX directory. - -Since this docker is very self-contained, there should be no need to do -interactive management of the docker, but if you feel the need, you can read the -General Docker Help section of the MathJaxFonts docker readme. - -That's it! -\ No newline at end of file diff --git a/dockers/Screenshotter/Dockerfile b/dockers/Screenshotter/Dockerfile @@ -0,0 +1,14 @@ +FROM ubuntu:14.04 +MAINTAINER xymostech <xymostech@gmail.com> +RUN apt-get -qq update +RUN apt-get -qqy install default-jre=2:1.7-51 firefox=28.0+build2-0ubuntu2 xvfb=2:1.15.1-0ubuntu2 wget=1.15-1ubuntu1 python=2.7.5-5ubuntu3 python-pip=1.5.4-1 nodejs=0.10.25~dfsg2-2ubuntu1 || true +RUN wget http://selenium-release.storage.googleapis.com/2.43/selenium-server-standalone-2.43.0.jar +RUN ln -s /usr/bin/nodejs /usr/bin/node +RUN pip install selenium pypng +ENV DISPLAY :1 +CMD /bin/bash ~/run.sh +RUN echo "java -jar /selenium-server-standalone-2.43.0.jar > /dev/null &" >> ~/run.sh +RUN echo "Xvfb :1 2> /dev/null &" >> ~/run.sh +RUN echo "make -C /KaTeX serve > /dev/null &" >> ~/run.sh +RUN echo "sleep 2" >> ~/run.sh +RUN echo "/KaTeX/dockers/Screenshotter/screenshotter.py /KaTeX/test/screenshotter/ss_data.json" >> ~/run.sh +\ No newline at end of file diff --git a/dockers/Screenshotter/README.md b/dockers/Screenshotter/README.md @@ -0,0 +1,29 @@ +### How to generate screenshotter images +---------------------------------------- + +Now you too can generate screenshots from your own computer, and (hopefully) +have them look mostly the same as the current ones! To start, make a docker +image from the included Dockerfile using a command like + + docker build --tag=ss . + +from within this directory (note you need to have docker installed and running +for this to work). This will build a docker image with the `ss` tag, which you +can then use to run dockers based on it. + +This Dockerfile is set up such that it will run everything and generate all the +screenshots when the docker is run, so no interactive input is required. All +that you need to do is mount the KaTeX directory you want to test into the +`/KaTeX` directory in the docker, and run the `ss` docker, like so: + + docker run --volume=/your/KaTeX/:/KaTeX ss + +The `--volume=/your/KaTeX:/KaTeX` switch mounts your KaTeX directory into the +docker. Note this is a read-write mounting, so the new screenshots will be +directly placed into your KaTeX directory. + +Since this docker is very self-contained, there should be no need to do +interactive management of the docker, but if you feel the need, you can read the +General Docker Help section of the MathJaxFonts docker readme. + +That's it! diff --git a/dockers/Screenshotter/screenshotter.py b/dockers/Screenshotter/screenshotter.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python2 + +import argparse +import json +import os +import png +import StringIO +import sys + +from selenium import webdriver + + +def get_png_size(png_data): + w, h, _, _ = png.Reader(file=StringIO.StringIO(png_data)).read() + return (w, h) + + +def set_driver_size(driver, width, height): + """Correctly sets the size of the driver window so screenshots end up the + provided size""" + driver.set_window_size(width, height) + + screenshot_size = get_png_size(driver.get_screenshot_as_png()) + attempts = 0 + while (width, height) != screenshot_size: + attempts += 1 + if attempts > 5: + print "Tried 5 times to size screen correctly, bailing out" + exit(1) + + ss_width, ss_height = screenshot_size + driver.set_window_size( + width + (width - ss_width), + height + (height - ss_height)) + screenshot_size = get_png_size(driver.get_screenshot_as_png()) + + +def main(): + parser = argparse.ArgumentParser( + description='Take screenshots of webpages', add_help=False) + parser.add_argument('file', metavar='file.json') + parser.add_argument('-t', '--tests', metavar='test', nargs='*') + parser.add_argument('-w', '--width', metavar='width', default=1024, + type=int) + parser.add_argument('-h', '--height', metavar='height', default=768, + type=int) + parser.add_argument('-b', '--browser', metavar='browser', + choices=['firefox'], default='firefox') + + args = parser.parse_args() + + data = None + with open(args.file) as f: + try: + data = json.load(f) + except ValueError: + print "Invalid json in input file:", args.file + exit(1) + + tests = [] + + if args.tests is None: + tests = data.keys() + else: + data_tests = data.keys() + for test in args.tests: + if test not in data_tests: + print "Unknown test:", test + exit(1) + + tests = args.tests + + print "Starting up" + sys.stdout.flush() + + driver = None + if args.browser == 'firefox': + driver = webdriver.Firefox() + else: + print "Unknown browser:", args.browser + exit(1) + + set_driver_size(driver, args.width, args.height) + + data_dir = os.path.join( + os.path.dirname(os.path.realpath(args.file)), "images") + + try: + os.mkdir(data_dir) + except OSError: + pass + + for test, url in data.iteritems(): + if test in tests: + filename = os.path.join( + data_dir, '%s-%s.png' % (test, args.browser)) + + print "Running:", test + sys.stdout.flush() + + driver.get(url) + driver.get_screenshot_as_file(filename) + + print "Done" + +if __name__ == '__main__': + main() diff --git a/package.json b/package.json @@ -17,7 +17,6 @@ "browserify": "~2.29.1", "clean-css": "~2.2.15", "express": "~3.3.3", - "huxley": "~0.8.1", "jasmine-node": "git://github.com/mhevery/jasmine-node.git#Jasmine2.0", "jshint": "^2.5.6", "less": "~1.7.5", diff --git a/test/huxley/Huxleyfile.json b/test/huxley/Huxleyfile.json @@ -1,205 +0,0 @@ -[ - { - "name": "BasicTest", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=a" - }, - - { - "name": "FractionTest", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\dfrac{a}{b}\\frac{a}{b}\\tfrac{a}{b}" - }, - - { - "name": "BinomTest", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\dbinom{a}{b}\\tbinom{a}{b}^{\\binom{a}{b}+17}" - }, - - { - "name": "NestedFractions", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\dfrac{\\frac{a}{b}}{\\frac{c}{d}}\\dfrac{\\dfrac{a}{b}}{\\dfrac{c}{d}}\\frac{\\frac{a}{b}}{\\frac{c}{d}}" - }, - - { - "name": "Exponents", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=a^{a^a_a}_{a^a_a}" - }, - - { - "name": "Colors", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\blue{a}\\color{%230f0}{b}\\color{red}{c}" - }, - - { - "name": "GreekLetters", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\alpha\\beta\\gamma\\omega" - }, - - { - "name": "Baseline", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=a+b-c\\cdot d/e" - }, - - { - "name": "Spacing", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=^3+[-1][1-1]1=1(=1)\\lvert a\\rvert~b" - }, - - { - "name": "Functions", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\sin\\cos\\tan\\ln\\log" - }, - - { - "name": "Sizing", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m={\\Huge x}{\\LARGE y}{\\normalsize z}{\\scriptsize w}" - }, - - { - "name": "SizingBaseline", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m={\\tiny a+b}a+b{\\Huge a+b}&pre=x&post=M" - }, - - { - "name": "Text", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\frac{a}{b}\\text{c~ {ab} \\ e}+fg" - }, - - { - "name": "KaTeX", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\KaTeX" - }, - - { - "name": "RlapBug", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\frac{\\rlap{x}}{2}" - }, - - { - "name": "SupSubCharacterBox", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=a_2f_2{f}_2{aa}_2{af}_2" - }, - - { - "name": "Lap", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=ab\\llap{f}cd\\rlap{g}h" - }, - - { - "name": "DelimiterSizing", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\bigl\\uparrow\\Bigl\\downarrow\\biggl\\updownarrow\\Biggl\\Uparrow\\Biggr\\Downarrow\\biggr\\langle\\Bigr\\}\\bigr\\rfloor" - }, - - { - "name": "Overline", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\overline{x}\\overline{x}\\overline{x^{x^{x^x}}} \\blue{\\overline{y}}" - }, - - { - "name": "DeepFontSizing", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=a^{\\big| x^{\\big(}}_{\\Big\\uparrow} + i^{i^{\\Huge x}_y}_{\\Huge z} + \\dfrac{\\Huge x}{y}" - }, - - { - "name": "VerticalSpacing", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?pre=potato<br>blah&post=<br>moo&m=x^{\\Huge y}z" - }, - - { - "name": "SupSubHorizSpacing", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=x^{x^{x}}\\Big|x_{x_{x_{x_{x}}}}\\bigg|x^{x^{x_{x_{x_{x_{x}}}}}}\\bigg|" - }, - - { - "name": "Rule", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\rule{1em}{0.5em}\\rule{1ex}{2ex}\\rule{1em}{1ex}\\rule{1em}{0.431ex}" - }, - - { - "name": "LeftRight", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\left( x^2 \\right) \\left\\{ x^{x^{x^{x^x}}} \\right." - }, - - { - "name": "LeftRightStyleSizing", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=+\\left\\{\\rule{0.1em}{1em}\\right.x^{+\\left\\{\\rule{0.1em}{1em}\\right.x^{+\\left\\{\\rule{0.1em}{1em}\\right.}}" - }, - - { - "name": "LeftRightListStyling", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=a+\\left(x+y\\right)-x" - }, - - { - "name": "PrimeSpacing", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=f'+f_2'+f^{f'}" - }, - - { - "name": "NullDelimiterInteraction", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=a \\bigl. + 2 \\quad \\left. + a \\right)" - }, - - { - "name": "Sqrt", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\sqrt{\\sqrt{\\sqrt{x}}}_{\\sqrt{\\sqrt{x}}}^{\\sqrt{\\sqrt{\\sqrt{x}}}^{\\sqrt{\\sqrt{\\sqrt{x}}}}}" - }, - - { - "name": "DisplayStyle", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m={\\displaystyle\\sqrt{x}}{\\sqrt{x}}{\\displaystyle \\frac12}{\\frac12}{\\displaystyle x^1_2}{x^1_2}" - }, - - { - "name": "OpLimits", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m={\\sin_2^2 \\lim_2^2 \\int_2^2 \\sum_2^2}{\\displaystyle \\lim_2^2 \\int_2^2 \\intop_2^2 \\sum_2^2}" - }, - - { - "name": "SupSubOffsets", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\displaystyle \\int_{2+3}x f^{2+3}+3\\lim_{2+3+4+5}f" - }, - - { - "name": "Accents", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\vec{A}\\vec{x}\\vec x^2\\vec{x}_2^2\\vec{A}^2\\vec{xA}^2" - }, - - { - "name": "DisplayMode", - "screenSize": [1024, 768], - "url": "http://localhost:7936/test/huxley/test.html?m=\\sum_{i=0}^\\infty \\frac{1}{i}&pre=pre&post=post&display=1" - } -] diff --git a/test/huxley/Huxleyfolder/Accents.hux/firefox-1.png b/test/huxley/Huxleyfolder/Accents.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Accents.record.json b/test/huxley/Huxleyfolder/Accents.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Baseline.hux/firefox-1.png b/test/huxley/Huxleyfolder/Baseline.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Baseline.record.json b/test/huxley/Huxleyfolder/Baseline.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/BasicTest.hux/firefox-1.png b/test/huxley/Huxleyfolder/BasicTest.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/BasicTest.record.json b/test/huxley/Huxleyfolder/BasicTest.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/BinomTest.hux/firefox-1.png b/test/huxley/Huxleyfolder/BinomTest.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/BinomTest.record.json b/test/huxley/Huxleyfolder/BinomTest.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Colors.hux/firefox-1.png b/test/huxley/Huxleyfolder/Colors.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Colors.record.json b/test/huxley/Huxleyfolder/Colors.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/DeepFontSizing.hux/firefox-1.png b/test/huxley/Huxleyfolder/DeepFontSizing.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/DeepFontSizing.record.json b/test/huxley/Huxleyfolder/DeepFontSizing.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/DelimiterSizing.hux/firefox-1.png b/test/huxley/Huxleyfolder/DelimiterSizing.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/DelimiterSizing.record.json b/test/huxley/Huxleyfolder/DelimiterSizing.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/DisplayMode.hux/firefox-1.png b/test/huxley/Huxleyfolder/DisplayMode.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/DisplayMode.record.json b/test/huxley/Huxleyfolder/DisplayMode.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/DisplayStyle.hux/firefox-1.png b/test/huxley/Huxleyfolder/DisplayStyle.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/DisplayStyle.record.json b/test/huxley/Huxleyfolder/DisplayStyle.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Exponents.hux/firefox-1.png b/test/huxley/Huxleyfolder/Exponents.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Exponents.record.json b/test/huxley/Huxleyfolder/Exponents.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/FractionTest.hux/firefox-1.png b/test/huxley/Huxleyfolder/FractionTest.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/FractionTest.record.json b/test/huxley/Huxleyfolder/FractionTest.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Functions.hux/firefox-1.png b/test/huxley/Huxleyfolder/Functions.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Functions.record.json b/test/huxley/Huxleyfolder/Functions.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/GreekLetters.hux/firefox-1.png b/test/huxley/Huxleyfolder/GreekLetters.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/GreekLetters.record.json b/test/huxley/Huxleyfolder/GreekLetters.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/KaTeX.hux/firefox-1.png b/test/huxley/Huxleyfolder/KaTeX.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/KaTeX.record.json b/test/huxley/Huxleyfolder/KaTeX.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Lap.hux/firefox-1.png b/test/huxley/Huxleyfolder/Lap.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Lap.record.json b/test/huxley/Huxleyfolder/Lap.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/LeftRight.hux/firefox-1.png b/test/huxley/Huxleyfolder/LeftRight.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/LeftRight.record.json b/test/huxley/Huxleyfolder/LeftRight.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/LeftRightListStyling.hux/firefox-1.png b/test/huxley/Huxleyfolder/LeftRightListStyling.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/LeftRightListStyling.record.json b/test/huxley/Huxleyfolder/LeftRightListStyling.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/LeftRightStyleSizing.hux/firefox-1.png b/test/huxley/Huxleyfolder/LeftRightStyleSizing.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/LeftRightStyleSizing.record.json b/test/huxley/Huxleyfolder/LeftRightStyleSizing.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/NestedFractions.hux/firefox-1.png b/test/huxley/Huxleyfolder/NestedFractions.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/NestedFractions.record.json b/test/huxley/Huxleyfolder/NestedFractions.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/NullDelimiterInteraction.hux/firefox-1.png b/test/huxley/Huxleyfolder/NullDelimiterInteraction.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/NullDelimiterInteraction.record.json b/test/huxley/Huxleyfolder/NullDelimiterInteraction.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/OpLimits.hux/firefox-1.png b/test/huxley/Huxleyfolder/OpLimits.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/OpLimits.record.json b/test/huxley/Huxleyfolder/OpLimits.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Overline.hux/firefox-1.png b/test/huxley/Huxleyfolder/Overline.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Overline.record.json b/test/huxley/Huxleyfolder/Overline.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/PrimeSpacing.hux/firefox-1.png b/test/huxley/Huxleyfolder/PrimeSpacing.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/PrimeSpacing.record.json b/test/huxley/Huxleyfolder/PrimeSpacing.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/RlapBug.hux/firefox-1.png b/test/huxley/Huxleyfolder/RlapBug.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/RlapBug.record.json b/test/huxley/Huxleyfolder/RlapBug.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Rule.hux/firefox-1.png b/test/huxley/Huxleyfolder/Rule.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Rule.record.json b/test/huxley/Huxleyfolder/Rule.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Sizing.hux/firefox-1.png b/test/huxley/Huxleyfolder/Sizing.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Sizing.record.json b/test/huxley/Huxleyfolder/Sizing.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/SizingBaseline.hux/firefox-1.png b/test/huxley/Huxleyfolder/SizingBaseline.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/SizingBaseline.record.json b/test/huxley/Huxleyfolder/SizingBaseline.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Spacing.hux/firefox-1.png b/test/huxley/Huxleyfolder/Spacing.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Spacing.record.json b/test/huxley/Huxleyfolder/Spacing.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Sqrt.hux/firefox-1.png b/test/huxley/Huxleyfolder/Sqrt.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Sqrt.record.json b/test/huxley/Huxleyfolder/Sqrt.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/SupSubCharacterBox.hux/firefox-1.png b/test/huxley/Huxleyfolder/SupSubCharacterBox.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/SupSubCharacterBox.record.json b/test/huxley/Huxleyfolder/SupSubCharacterBox.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/SupSubHorizSpacing.hux/firefox-1.png b/test/huxley/Huxleyfolder/SupSubHorizSpacing.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/SupSubHorizSpacing.record.json b/test/huxley/Huxleyfolder/SupSubHorizSpacing.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/SupSubOffsets.hux/firefox-1.png b/test/huxley/Huxleyfolder/SupSubOffsets.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/SupSubOffsets.record.json b/test/huxley/Huxleyfolder/SupSubOffsets.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/Text.hux/firefox-1.png b/test/huxley/Huxleyfolder/Text.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/Text.record.json b/test/huxley/Huxleyfolder/Text.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/huxley/Huxleyfolder/VerticalSpacing.hux/firefox-1.png b/test/huxley/Huxleyfolder/VerticalSpacing.hux/firefox-1.png Binary files differ. diff --git a/test/huxley/Huxleyfolder/VerticalSpacing.record.json b/test/huxley/Huxleyfolder/VerticalSpacing.record.json @@ -1,5 +0,0 @@ -[ - { - "action": "screenshot" - } -] diff --git a/test/screenshotter/images/Accents-firefox.png b/test/screenshotter/images/Accents-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Baseline-firefox.png b/test/screenshotter/images/Baseline-firefox.png Binary files differ. diff --git a/test/screenshotter/images/BasicTest-firefox.png b/test/screenshotter/images/BasicTest-firefox.png Binary files differ. diff --git a/test/screenshotter/images/BinomTest-firefox.png b/test/screenshotter/images/BinomTest-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Colors-firefox.png b/test/screenshotter/images/Colors-firefox.png Binary files differ. diff --git a/test/screenshotter/images/DeepFontSizing-firefox.png b/test/screenshotter/images/DeepFontSizing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/DelimiterSizing-firefox.png b/test/screenshotter/images/DelimiterSizing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/DisplayMode-firefox.png b/test/screenshotter/images/DisplayMode-firefox.png Binary files differ. diff --git a/test/screenshotter/images/DisplayStyle-firefox.png b/test/screenshotter/images/DisplayStyle-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Exponents-firefox.png b/test/screenshotter/images/Exponents-firefox.png Binary files differ. diff --git a/test/screenshotter/images/FractionTest-firefox.png b/test/screenshotter/images/FractionTest-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Functions-firefox.png b/test/screenshotter/images/Functions-firefox.png Binary files differ. diff --git a/test/screenshotter/images/GreekLetters-firefox.png b/test/screenshotter/images/GreekLetters-firefox.png Binary files differ. diff --git a/test/screenshotter/images/KaTeX-firefox.png b/test/screenshotter/images/KaTeX-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Lap-firefox.png b/test/screenshotter/images/Lap-firefox.png Binary files differ. diff --git a/test/screenshotter/images/LeftRight-firefox.png b/test/screenshotter/images/LeftRight-firefox.png Binary files differ. diff --git a/test/screenshotter/images/LeftRightListStyling-firefox.png b/test/screenshotter/images/LeftRightListStyling-firefox.png Binary files differ. diff --git a/test/screenshotter/images/LeftRightStyleSizing-firefox.png b/test/screenshotter/images/LeftRightStyleSizing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/NestedFractions-firefox.png b/test/screenshotter/images/NestedFractions-firefox.png Binary files differ. diff --git a/test/screenshotter/images/NullDelimiterInteraction-firefox.png b/test/screenshotter/images/NullDelimiterInteraction-firefox.png Binary files differ. diff --git a/test/screenshotter/images/OpLimits-firefox.png b/test/screenshotter/images/OpLimits-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Overline-firefox.png b/test/screenshotter/images/Overline-firefox.png Binary files differ. diff --git a/test/screenshotter/images/PrimeSpacing-firefox.png b/test/screenshotter/images/PrimeSpacing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/RlapBug-firefox.png b/test/screenshotter/images/RlapBug-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Rule-firefox.png b/test/screenshotter/images/Rule-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Sizing-firefox.png b/test/screenshotter/images/Sizing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/SizingBaseline-firefox.png b/test/screenshotter/images/SizingBaseline-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Spacing-firefox.png b/test/screenshotter/images/Spacing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Sqrt-firefox.png b/test/screenshotter/images/Sqrt-firefox.png Binary files differ. diff --git a/test/screenshotter/images/SupSubCharacterBox-firefox.png b/test/screenshotter/images/SupSubCharacterBox-firefox.png Binary files differ. diff --git a/test/screenshotter/images/SupSubHorizSpacing-firefox.png b/test/screenshotter/images/SupSubHorizSpacing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/SupSubOffsets-firefox.png b/test/screenshotter/images/SupSubOffsets-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Text-firefox.png b/test/screenshotter/images/Text-firefox.png Binary files differ. diff --git a/test/screenshotter/images/VerticalSpacing-firefox.png b/test/screenshotter/images/VerticalSpacing-firefox.png Binary files differ. diff --git a/test/screenshotter/ss_data.json b/test/screenshotter/ss_data.json @@ -0,0 +1,36 @@ +{ + "Accents": "http://localhost:7936/test/screenshotter/test.html?m=\\vec{A}\\vec{x}\\vec x^2\\vec{x}_2^2\\vec{A}^2\\vec{xA}^2", + "Baseline": "http://localhost:7936/test/screenshotter/test.html?m=a+b-c\\cdot d/e", + "BasicTest": "http://localhost:7936/test/screenshotter/test.html?m=a", + "BinomTest": "http://localhost:7936/test/screenshotter/test.html?m=\\dbinom{a}{b}\\tbinom{a}{b}^{\\binom{a}{b}+17}", + "Colors": "http://localhost:7936/test/screenshotter/test.html?m=\\blue{a}\\color{%230f0}{b}\\color{red}{c}", + "DeepFontSizing": "http://localhost:7936/test/screenshotter/test.html?m=a^{\\big| x^{\\big(}}_{\\Big\\uparrow} + i^{i^{\\Huge x}_y}_{\\Huge z} + \\dfrac{\\Huge x}{y}", + "DelimiterSizing": "http://localhost:7936/test/screenshotter/test.html?m=\\bigl\\uparrow\\Bigl\\downarrow\\biggl\\updownarrow\\Biggl\\Uparrow\\Biggr\\Downarrow\\biggr\\langle\\Bigr\\}\\bigr\\rfloor", + "DisplayMode": "http://localhost:7936/test/screenshotter/test.html?m=\\sum_{i=0}^\\infty \\frac{1}{i}&pre=pre&post=post&display=1", + "DisplayStyle": "http://localhost:7936/test/screenshotter/test.html?m={\\displaystyle\\sqrt{x}}{\\sqrt{x}}{\\displaystyle \\frac12}{\\frac12}{\\displaystyle x^1_2}{x^1_2}", + "Exponents": "http://localhost:7936/test/screenshotter/test.html?m=a^{a^a_a}_{a^a_a}", + "FractionTest": "http://localhost:7936/test/screenshotter/test.html?m=\\dfrac{a}{b}\\frac{a}{b}\\tfrac{a}{b}", + "Functions": "http://localhost:7936/test/screenshotter/test.html?m=\\sin\\cos\\tan\\ln\\log", + "GreekLetters": "http://localhost:7936/test/screenshotter/test.html?m=\\alpha\\beta\\gamma\\omega", + "KaTeX": "http://localhost:7936/test/screenshotter/test.html?m=\\KaTeX", + "Lap": "http://localhost:7936/test/screenshotter/test.html?m=ab\\llap{f}cd\\rlap{g}h", + "LeftRight": "http://localhost:7936/test/screenshotter/test.html?m=\\left( x^2 \\right) \\left\\{ x^{x^{x^{x^x}}} \\right.", + "LeftRightListStyling": "http://localhost:7936/test/screenshotter/test.html?m=a+\\left(x+y\\right)-x", + "LeftRightStyleSizing": "http://localhost:7936/test/screenshotter/test.html?m=+\\left\\{\\rule{0.1em}{1em}\\right.x^{+\\left\\{\\rule{0.1em}{1em}\\right.x^{+\\left\\{\\rule{0.1em}{1em}\\right.}}", + "NestedFractions": "http://localhost:7936/test/screenshotter/test.html?m=\\dfrac{\\frac{a}{b}}{\\frac{c}{d}}\\dfrac{\\dfrac{a}{b}}{\\dfrac{c}{d}}\\frac{\\frac{a}{b}}{\\frac{c}{d}}", + "NullDelimiterInteraction": "http://localhost:7936/test/screenshotter/test.html?m=a \\bigl. + 2 \\quad \\left. + a \\right)", + "OpLimits": "http://localhost:7936/test/screenshotter/test.html?m={\\sin_2^2 \\lim_2^2 \\int_2^2 \\sum_2^2}{\\displaystyle \\lim_2^2 \\int_2^2 \\intop_2^2 \\sum_2^2}", + "Overline": "http://localhost:7936/test/screenshotter/test.html?m=\\overline{x}\\overline{x}\\overline{x^{x^{x^x}}} \\blue{\\overline{y}}", + "PrimeSpacing": "http://localhost:7936/test/screenshotter/test.html?m=f'+f_2'+f^{f'}", + "RlapBug": "http://localhost:7936/test/screenshotter/test.html?m=\\frac{\\rlap{x}}{2}", + "Rule": "http://localhost:7936/test/screenshotter/test.html?m=\\rule{1em}{0.5em}\\rule{1ex}{2ex}\\rule{1em}{1ex}\\rule{1em}{0.431ex}", + "SizingBaseline": "http://localhost:7936/test/screenshotter/test.html?m={\\tiny a+b}a+b{\\Huge a+b}&pre=x&post=M", + "Sizing": "http://localhost:7936/test/screenshotter/test.html?m={\\Huge x}{\\LARGE y}{\\normalsize z}{\\scriptsize w}", + "Spacing": "http://localhost:7936/test/screenshotter/test.html?m=^3+[-1][1-1]1=1(=1)\\lvert a\\rvert~b", + "Sqrt": "http://localhost:7936/test/screenshotter/test.html?m=\\sqrt{\\sqrt{\\sqrt{x}}}_{\\sqrt{\\sqrt{x}}}^{\\sqrt{\\sqrt{\\sqrt{x}}}^{\\sqrt{\\sqrt{\\sqrt{x}}}}}", + "SupSubCharacterBox": "http://localhost:7936/test/screenshotter/test.html?m=a_2f_2{f}_2{aa}_2{af}_2", + "SupSubHorizSpacing": "http://localhost:7936/test/screenshotter/test.html?m=x^{x^{x}}\\Big|x_{x_{x_{x_{x}}}}\\bigg|x^{x^{x_{x_{x_{x_{x}}}}}}\\bigg|", + "SupSubOffsets": "http://localhost:7936/test/screenshotter/test.html?m=\\displaystyle \\int_{2+3}x f^{2+3}+3\\lim_{2+3+4+5}f", + "Text": "http://localhost:7936/test/screenshotter/test.html?m=\\frac{a}{b}\\text{c~ {ab} \\ e}+fg", + "VerticalSpacing": "http://localhost:7936/test/screenshotter/test.html?pre=potato<br>blah&post=<br>moo&m=x^{\\Huge y}z" +} diff --git a/test/huxley/test.html b/test/screenshotter/test.html