From 2c5a9332b17815270c878014b71da7767ba93342 Mon Sep 17 00:00:00 2001 From: Jorge Morante Date: Thu, 17 Jan 2019 12:46:16 +0100 Subject: [PATCH] ensure no dupe letters when generating hints --- dev/generate-alphabets.js | 8 ++++++-- dev/package.json | 1 + dev/yarn.lock | 5 +++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dev/generate-alphabets.js b/dev/generate-alphabets.js index ece8b59..699d2e0 100755 --- a/dev/generate-alphabets.js +++ b/dev/generate-alphabets.js @@ -1,5 +1,6 @@ const huffman = require('n-ary-huffman') const range = require('lodash.range') +const uniq = require('lodash.uniq') const path = require('path') const fs = require('fs') const MAX_MATCHES = 200 @@ -9,8 +10,6 @@ const exec = promisify(require('child_process').exec) const alphabetsDefinition = require('./alphabets.json') -const alphabet = (process.argv[2] || '').split('') - const ALPHABETS_DIR = path.resolve(__dirname, '../alphabets/') const items = range(1, MAX_MATCHES).map((i) => ({ @@ -35,6 +34,11 @@ async function main() { Object.keys(alphabetsDefinition).forEach(async alphabetName => { const alphabet = alphabetsDefinition[alphabetName].split('') + if (alphabet.length !== uniq(alphabet).length) { + console.error(`ERROR: ${alphabetName} contains duplicate characters`); + process.exit(1) + } + const alphabetDir = path.resolve(ALPHABETS_DIR, alphabetName) await ensureDir(alphabetDir) diff --git a/dev/package.json b/dev/package.json index c8c1fc1..adfdab1 100644 --- a/dev/package.json +++ b/dev/package.json @@ -9,6 +9,7 @@ "dependencies": { "lodash.chunk": "^4.2.0", "lodash.range": "^3.2.0", + "lodash.uniq": "^4.5.0", "n-ary-huffman": "^4.0.0" } } diff --git a/dev/yarn.lock b/dev/yarn.lock index 149689d..48624da 100644 --- a/dev/yarn.lock +++ b/dev/yarn.lock @@ -12,6 +12,11 @@ lodash.range@^3.2.0: resolved "https://registry.yarnpkg.com/lodash.range/-/lodash.range-3.2.0.tgz#f461e588f66683f7eadeade513e38a69a565a15d" integrity sha1-9GHliPZmg/fq3q3lE+OKaaVloV0= +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + n-ary-huffman@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/n-ary-huffman/-/n-ary-huffman-4.0.0.tgz#a1b2efff0becf2d98b6591f31a29e0621b2d8320"