From 9f8dd0f2a6cb8abfd512bda7187d5b13b302de2f Mon Sep 17 00:00:00 2001 From: edh Date: Tue, 25 Sep 2018 22:27:45 +0200 Subject: [PATCH] tests added --- test/index.mjs | 1 + test/tests/operations/Literals.mjs | 114 +++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 test/tests/operations/Literals.mjs diff --git a/test/index.mjs b/test/index.mjs index 3f873201..3ad28e39 100644 --- a/test/index.mjs +++ b/test/index.mjs @@ -71,6 +71,7 @@ import "./tests/operations/SymmetricDifference"; import "./tests/operations/ToGeohash.mjs"; import "./tests/operations/TranslateDateTimeFormat"; import "./tests/operations/Magic"; +import "./tests/operations/Literals"; let allTestsPassing = true; const testStatusCounts = { diff --git a/test/tests/operations/Literals.mjs b/test/tests/operations/Literals.mjs new file mode 100644 index 00000000..3c3e5fb6 --- /dev/null +++ b/test/tests/operations/Literals.mjs @@ -0,0 +1,114 @@ +/** + * Literal tests. + * + * @author edouard hinard [] + * @copyright Crown Copyright 2018 + * @license Apache-2.0 + */ +import TestRegister from "../../TestRegister"; + +TestRegister.addTests([ + { + name: "Literal: empty", + input: "", + expectedOutput: "b''", + recipeConfig: [ + { + "op": "To Python bytes", + "args": [] + }, + ], + }, + { + name: "Literal: single quote", + input: "'", + expectedOutput: "b\"'\"", + recipeConfig: [ + { + "op": "To Python bytes", + "args": [] + }, + ], + }, + { + name: "Literal: single quote and data", + input: "aaa'bbb", + expectedOutput: "b\"aaa'bbb\"", + recipeConfig: [ + { + "op": "To Python bytes", + "args": [] + }, + ], + }, + { + name: "Literal: double quote", + input: "\"", + expectedOutput: "b'\"'", + recipeConfig: [ + { + "op": "To Python bytes", + "args": [] + }, + ], + }, + { + name: "Literal: double quote and data", + input: "aaa\"bbb", + expectedOutput: "b'aaa\"bbb'", + recipeConfig: [ + { + "op": "To Python bytes", + "args": [] + }, + ], + }, + { + name: "Literal: single + double", + input: "'\"", + expectedOutput: "b'\\'\"'", + recipeConfig: [ + { + "op": "To Python bytes", + "args": [] + }, + ], + }, + { + name: "Literal: double + single", + input: "\"'", + expectedOutput: "b'\"\\''", + recipeConfig: [ + { + "op": "To Python bytes", + "args": [] + }, + ], + }, + { + name: "Literal: UTF-8 encoded string", + input: "ça ma couté 20€", + expectedOutput: "b'\\xc3\\xa7a ma cout\\xc3\\xa9 20\\xe2\\x82\\xac'", + recipeConfig: [ + { + "op": "To Python bytes", + "args": [] + }, + ], + }, + { + name: "Literal: all 256 byte values", + input: "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==", + expectedOutput: "b'\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f !\"#$%&\\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\x7f\\x80\\x81\\x82\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8a\\x8b\\x8c\\x8d\\x8e\\x8f\\x90\\x91\\x92\\x93\\x94\\x95\\x96\\x97\\x98\\x99\\x9a\\x9b\\x9c\\x9d\\x9e\\x9f\\xa0\\xa1\\xa2\\xa3\\xa4\\xa5\\xa6\\xa7\\xa8\\xa9\\xaa\\xab\\xac\\xad\\xae\\xaf\\xb0\\xb1\\xb2\\xb3\\xb4\\xb5\\xb6\\xb7\\xb8\\xb9\\xba\\xbb\\xbc\\xbd\\xbe\\xbf\\xc0\\xc1\\xc2\\xc3\\xc4\\xc5\\xc6\\xc7\\xc8\\xc9\\xca\\xcb\\xcc\\xcd\\xce\\xcf\\xd0\\xd1\\xd2\\xd3\\xd4\\xd5\\xd6\\xd7\\xd8\\xd9\\xda\\xdb\\xdc\\xdd\\xde\\xdf\\xe0\\xe1\\xe2\\xe3\\xe4\\xe5\\xe6\\xe7\\xe8\\xe9\\xea\\xeb\\xec\\xed\\xee\\xef\\xf0\\xf1\\xf2\\xf3\\xf4\\xf5\\xf6\\xf7\\xf8\\xf9\\xfa\\xfb\\xfc\\xfd\\xfe\\xff'", + recipeConfig: [ + { + "op": "From Base64", + "args": ["A-Za-z0-9+/="] + }, + { + "op": "To Python bytes", + "args": [] + }, + ], + }, +]);