| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- const fs = require("fs");
 
- const crypto = require("crypto");
 
- const execSync = require("child_process").execSync;
 
- const testManifest = "test/test_manifest.json";
 
- const pdfFolder = "test/pdfs/";
 
- const gitIgnore = "test/pdfs/.gitignore";
 
- if (process.argv.length < 3) {
 
-   console.log("\nUsage: node add_test.js FILE\n");
 
-   console.log(
 
-     `  Add a PDF as a reference test. FILE must be located in ${pdfFolder}`
 
-   );
 
-   process.exit(1);
 
- }
 
- const file = process.argv[2];
 
- if (!file.startsWith(pdfFolder)) {
 
-   throw new Error(`PDF file must be in '${pdfFolder}' directory.`);
 
- }
 
- if (!fs.existsSync(file)) {
 
-   throw new Error(`PDF file does not exist '${file}'.`);
 
- }
 
- function calculateMD5(pdfFile, callback) {
 
-   const hash = crypto.createHash("md5");
 
-   const stream = fs.createReadStream(pdfFile);
 
-   stream.on("data", function (data) {
 
-     hash.update(data);
 
-   });
 
-   stream.on("error", function (err) {
 
-     callback(err);
 
-   });
 
-   stream.on("end", function () {
 
-     const result = hash.digest("hex");
 
-     callback(null, result);
 
-   });
 
- }
 
- function getRandomArbitrary(min, max) {
 
-   return Math.floor(Math.random() * (max - min) + min);
 
- }
 
- calculateMD5(file, (err, md5) => {
 
-   if (err) {
 
-     throw new Error(err);
 
-   }
 
-   let contents = fs.readFileSync(gitIgnore, "utf8").split("\n");
 
-   const randomLine = getRandomArbitrary(10, contents.length - 2);
 
-   contents.splice(
 
-     randomLine,
 
-     0,
 
-     "!" + file.substring(file.lastIndexOf("/") + 1)
 
-   );
 
-   fs.writeFileSync("test/pdfs/.gitignore", contents.join("\n"));
 
-   contents = fs.readFileSync(testManifest, "utf8");
 
-   const pdf = file.substring(file.lastIndexOf("/") + 1, file.length - 4);
 
-   const randomPoint = getRandomArbitrary(100, contents.length - 20);
 
-   const bracket = contents.indexOf("},\n", randomPoint);
 
-   const out =
 
-     contents.substring(0, bracket) +
 
-     "},\n" +
 
-     `    {  "id": "${pdf}",\n` +
 
-     `       "file": "pdfs/${pdf}.pdf",\n` +
 
-     `       "md5": "${md5}",\n` +
 
-     '       "rounds": 1,\n' +
 
-     '       "type": "eq"\n' +
 
-     "    " +
 
-     contents.substring(bracket);
 
-   fs.writeFileSync("test/test_manifest.json", out);
 
-   execSync(`git add ${testManifest} ${gitIgnore}`);
 
-   execSync(`git add ${file}`);
 
- });
 
 
  |