From e3ab62b941c9815f7a9673640da214e93547696e Mon Sep 17 00:00:00 2001 From: Cool-Katt Date: Thu, 25 Jan 2024 16:28:51 +0200 Subject: [PATCH 1/3] Initial scaffolding for pop-count --- config.json | 8 ++++ .../practice/pop-count/.docs/instructions.md | 8 ++++ .../practice/pop-count/.docs/introduction.md | 47 +++++++++++++++++++ .../practice/pop-count/.meta/config.json | 17 +++++++ .../practice/pop-count/.meta/proof.ci.js | 0 exercises/practice/pop-count/.meta/tests.toml | 22 +++++++++ exercises/practice/pop-count/pop-count.js | 0 .../practice/pop-count/pop-count.spec.js | 0 8 files changed, 102 insertions(+) create mode 100644 exercises/practice/pop-count/.docs/instructions.md create mode 100644 exercises/practice/pop-count/.docs/introduction.md create mode 100644 exercises/practice/pop-count/.meta/config.json create mode 100644 exercises/practice/pop-count/.meta/proof.ci.js create mode 100644 exercises/practice/pop-count/.meta/tests.toml create mode 100644 exercises/practice/pop-count/pop-count.js create mode 100644 exercises/practice/pop-count/pop-count.spec.js diff --git a/config.json b/config.json index 7965fb8e60..93cf00ec18 100644 --- a/config.json +++ b/config.json @@ -2535,6 +2535,14 @@ "strings" ], "difficulty": 7 + }, + { + "slug": "pop-count", + "name": "Eliud's Eggs", + "uuid": "2a3ecf62-fb5d-4dac-8369-72e7976a8f57", + "practices": [], + "prerequisites": [], + "difficulty": 2 } ] }, diff --git a/exercises/practice/pop-count/.docs/instructions.md b/exercises/practice/pop-count/.docs/instructions.md new file mode 100644 index 0000000000..b0c2df593c --- /dev/null +++ b/exercises/practice/pop-count/.docs/instructions.md @@ -0,0 +1,8 @@ +# Instructions + +Your task is to count the number of 1 bits in the binary representation of a number. + +## Restrictions + +Keep your hands off that bit-count functionality provided by your standard library! +Solve this one yourself using other basic tools instead. diff --git a/exercises/practice/pop-count/.docs/introduction.md b/exercises/practice/pop-count/.docs/introduction.md new file mode 100644 index 0000000000..49eaffd8bc --- /dev/null +++ b/exercises/practice/pop-count/.docs/introduction.md @@ -0,0 +1,47 @@ +# Introduction + +Your friend Eliud inherited a farm from her grandma Tigist. +Her granny was an inventor and had a tendency to build things in an overly complicated manner. +The chicken coop has a digital display showing an encoded number representing the positions of all eggs that could be picked up. + +Eliud is asking you to write a program that shows the actual number of eggs in the coop. + +The position information encoding is calculated as follows: + +1. Scan the potential egg-laying spots and mark down a `1` for an existing egg or a `0` for an empty spot. +2. Convert the number from binary to decimal. +3. Show the result on the display. + +Example 1: + +```text +Chicken Coop: + _ _ _ _ _ _ _ +|E| |E|E| | |E| + +Resulting Binary: + 1 0 1 1 0 0 1 + +Decimal number on the display: +89 + +Actual eggs in the coop: +4 +``` + +Example 2: + +```text +Chicken Coop: + _ _ _ _ _ _ _ _ +| | | |E| | | | | + +Resulting Binary: + 0 0 0 1 0 0 0 0 + +Decimal number on the display: +16 + +Actual eggs in the coop: +1 +``` diff --git a/exercises/practice/pop-count/.meta/config.json b/exercises/practice/pop-count/.meta/config.json new file mode 100644 index 0000000000..36aacc829c --- /dev/null +++ b/exercises/practice/pop-count/.meta/config.json @@ -0,0 +1,17 @@ +{ + "authors": [], + "files": { + "solution": [ + "pop-count.js" + ], + "test": [ + "pop-count.spec.js" + ], + "example": [ + ".meta/proof.ci.js" + ] + }, + "blurb": "Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.", + "source": "Christian Willner, Eric Willigers", + "source_url": "https://forum.exercism.org/t/new-exercise-suggestion-pop-count/7632/5" +} diff --git a/exercises/practice/pop-count/.meta/proof.ci.js b/exercises/practice/pop-count/.meta/proof.ci.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/exercises/practice/pop-count/.meta/tests.toml b/exercises/practice/pop-count/.meta/tests.toml new file mode 100644 index 0000000000..e11683c2ef --- /dev/null +++ b/exercises/practice/pop-count/.meta/tests.toml @@ -0,0 +1,22 @@ +# This is an auto-generated file. +# +# Regenerating this file via `configlet sync` will: +# - Recreate every `description` key/value pair +# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications +# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion) +# - Preserve any other key/value pair +# +# As user-added comments (using the # character) will be removed when this file +# is regenerated, comments can be added via a `comment` key. + +[559e789d-07d1-4422-9004-3b699f83bca3] +description = "0 eggs" + +[97223282-f71e-490c-92f0-b3ec9e275aba] +description = "1 egg" + +[1f8fd18f-26e9-4144-9a0e-57cdfc4f4ff5] +description = "4 eggs" + +[0c18be92-a498-4ef2-bcbb-28ac4b06cb81] +description = "13 eggs" diff --git a/exercises/practice/pop-count/pop-count.js b/exercises/practice/pop-count/pop-count.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/exercises/practice/pop-count/pop-count.spec.js b/exercises/practice/pop-count/pop-count.spec.js new file mode 100644 index 0000000000..e69de29bb2 From 02e5558694bced625584716c501838b32d48c2ee Mon Sep 17 00:00:00 2001 From: Cool-Katt Date: Thu, 25 Jan 2024 17:50:30 +0200 Subject: [PATCH 2/3] Added pop-count exercise files --- config.json | 911 ++++-------------- exercises/practice/leap/.docs/introduction.md | 4 +- exercises/practice/pop-count/.eslintrc | 14 + exercises/practice/pop-count/.gitignore | 5 + .../practice/pop-count/.meta/config.json | 4 +- .../practice/pop-count/.meta/proof.ci.js | 5 + exercises/practice/pop-count/.npmrc | 1 + exercises/practice/pop-count/LICENSE | 21 + exercises/practice/pop-count/babel.config.js | 4 + exercises/practice/pop-count/package.json | 33 + exercises/practice/pop-count/pop-count.js | 8 + .../practice/pop-count/pop-count.spec.js | 27 + 12 files changed, 285 insertions(+), 752 deletions(-) create mode 100644 exercises/practice/pop-count/.eslintrc create mode 100644 exercises/practice/pop-count/.gitignore create mode 100644 exercises/practice/pop-count/.npmrc create mode 100644 exercises/practice/pop-count/LICENSE create mode 100644 exercises/practice/pop-count/babel.config.js create mode 100644 exercises/practice/pop-count/package.json diff --git a/config.json b/config.json index 93cf00ec18..db6a21df3c 100644 --- a/config.json +++ b/config.json @@ -19,18 +19,10 @@ "average_run_time": 5 }, "files": { - "solution": [ - "%{kebab_slug}.js" - ], - "test": [ - "%{kebab_slug}.spec.js" - ], - "example": [ - ".meta/proof.ci.js" - ], - "exemplar": [ - ".meta/exemplar.js" - ] + "solution": ["%{kebab_slug}.js"], + "test": ["%{kebab_slug}.spec.js"], + "example": [".meta/proof.ci.js"], + "exemplar": [".meta/exemplar.js"] }, "exercises": { "concept": [ @@ -38,9 +30,7 @@ "slug": "lasagna", "name": "Lucian's Luscious Lasagna", "uuid": "97bf898a-36fc-47fc-b870-01fc0c7fe554", - "concepts": [ - "basics" - ], + "concepts": ["basics"], "prerequisites": [], "status": "active" }, @@ -48,103 +38,63 @@ "slug": "annalyns-infiltration", "name": "Annalyn's Infiltration", "uuid": "5acafcbb-20a0-45b9-b276-3d167e0de313", - "concepts": [ - "booleans" - ], - "prerequisites": [ - "basics" - ], + "concepts": ["booleans"], + "prerequisites": ["basics"], "status": "beta" }, { "slug": "freelancer-rates", "name": "Freelancer Rates", "uuid": "0aff2fa7-55ea-47e9-af4a-78927d916baf", - "concepts": [ - "numbers", - "arithmetic-operators" - ], - "prerequisites": [ - "basics" - ], + "concepts": ["numbers", "arithmetic-operators"], + "prerequisites": ["basics"], "status": "beta" }, { "slug": "poetry-club-door-policy", "name": "Poetry Club Door Policy", "uuid": "39549583-1889-490a-bf98-ffb2e0aefe44", - "concepts": [ - "strings" - ], - "prerequisites": [ - "basics" - ], + "concepts": ["strings"], + "prerequisites": ["basics"], "status": "beta" }, { "slug": "elyses-enchantments", "name": "Elyses Enchantments", "uuid": "25cb0707-44f8-4800-b993-3fcb2b6d9f61", - "concepts": [ - "arrays" - ], - "prerequisites": [ - "numbers" - ], + "concepts": ["arrays"], + "prerequisites": ["numbers"], "status": "beta" }, { "slug": "vehicle-purchase", "name": "Vehicle Purchase", "uuid": "f75a7e2c-053a-411e-8b3d-f978a2c5100e", - "concepts": [ - "comparison", - "conditionals" - ], - "prerequisites": [ - "booleans", - "numbers", - "strings" - ], + "concepts": ["comparison", "conditionals"], + "prerequisites": ["booleans", "numbers", "strings"], "status": "beta" }, { "slug": "bird-watcher", "name": "Bird Watcher", "uuid": "3e648aa0-9ce7-4041-93d2-2b95f3832824", - "concepts": [ - "increment-decrement", - "for-loops" - ], - "prerequisites": [ - "arrays", - "comparison", - "conditionals" - ], + "concepts": ["increment-decrement", "for-loops"], + "prerequisites": ["arrays", "comparison", "conditionals"], "status": "beta" }, { "slug": "mixed-juices", "name": "Mixed Juices", "uuid": "81c3fb86-af86-4c56-a45f-e021403c4070", - "concepts": [ - "while-loops", - "conditionals-switch" - ], - "prerequisites": [ - "comparison", - "conditionals", - "arrays" - ], + "concepts": ["while-loops", "conditionals-switch"], + "prerequisites": ["comparison", "conditionals", "arrays"], "status": "beta" }, { "slug": "lucky-numbers", "name": "Lucky Numbers", "uuid": "78bbd7d2-b660-4791-a404-af5bfed31849", - "concepts": [ - "type-conversion" - ], + "concepts": ["type-conversion"], "prerequisites": [ "booleans", "strings", @@ -158,40 +108,23 @@ "slug": "elyses-analytic-enchantments", "name": "Elyses Analytic Enchantments", "uuid": "45d956db-d4ef-4468-b1d3-47021f172c15", - "concepts": [ - "arrow-functions", - "array-analysis" - ], - "prerequisites": [ - "arrays", - "booleans", - "callbacks", - "numbers" - ], + "concepts": ["arrow-functions", "array-analysis"], + "prerequisites": ["arrays", "booleans", "callbacks", "numbers"], "status": "beta" }, { "slug": "elyses-destructured-enchantments", "name": "Elyses Destructured Enchantments", "uuid": "d9b5cd13-2f2b-4034-a571-e66c847ed6f8", - "concepts": [ - "array-destructuring", - "rest-and-spread" - ], - "prerequisites": [ - "arrays", - "functions", - "objects" - ], + "concepts": ["array-destructuring", "rest-and-spread"], + "prerequisites": ["arrays", "functions", "objects"], "status": "beta" }, { "slug": "elyses-looping-enchantments", "name": "Elyses Looping Enchantments", "uuid": "e06f8f70-019f-4cec-924b-3971414e15d9", - "concepts": [ - "array-loops" - ], + "concepts": ["array-loops"], "prerequisites": [ "arrays", "arrow-functions", @@ -213,21 +146,15 @@ "slug": "amusement-park", "name": "Amusement Park", "uuid": "2d40b46b-9e49-431c-913c-81d1f42f74df", - "concepts": [ - "null-undefined" - ], - "prerequisites": [ - "objects" - ], + "concepts": ["null-undefined"], + "prerequisites": ["objects"], "status": "beta" }, { "slug": "pizza-order", "name": "Pizza Order", "uuid": "e9a9fa73-4497-43d5-a4ff-4eb319c98233", - "concepts": [ - "recursion" - ], + "concepts": ["recursion"], "prerequisites": [ "functions", "rest-and-spread", @@ -240,61 +167,39 @@ "slug": "coordinate-transformation", "name": "Coordinate Transformation", "uuid": "5aa39e89-c601-4a66-ab72-5d8512d69e02", - "concepts": [ - "closures" - ], - "prerequisites": [ - "arrays", - "functions" - ], + "concepts": ["closures"], + "prerequisites": ["arrays", "functions"], "status": "beta" }, { "slug": "fruit-picker", "name": "Fruit Picker", "uuid": "a6348db8-cc2b-4c53-9f43-3c23248d66f0", - "concepts": [ - "callbacks" - ], - "prerequisites": [ - "functions", - "objects" - ], + "concepts": ["callbacks"], + "prerequisites": ["functions", "objects"], "status": "beta" }, { "slug": "translation-service", "name": "Translation Service", "uuid": "4a967656-8615-474e-a009-5c0b09f4386f", - "concepts": [ - "promises" - ], - "prerequisites": [ - "callbacks", - "arrow-functions", - "errors" - ], + "concepts": ["promises"], + "prerequisites": ["callbacks", "arrow-functions", "errors"], "status": "beta" }, { "slug": "high-score-board", "name": "High Score Board", "uuid": "431d1f13-d280-4808-bbc6-a72e628c15c2", - "concepts": [ - "objects" - ], - "prerequisites": [ - "for-loops" - ], + "concepts": ["objects"], + "prerequisites": ["for-loops"], "status": "beta" }, { "slug": "ozans-playlist", "name": "Ozan's Playlist", "uuid": "347692fb-7b0f-4ef0-9a02-2192b59bdf5d", - "concepts": [ - "sets" - ], + "concepts": ["sets"], "prerequisites": [ "array-destructuring", "array-loops", @@ -309,38 +214,23 @@ "slug": "lasagna-master", "name": "Lasagna Master", "uuid": "a7e323f1-84d8-43d5-8c26-cc119166b9fd", - "concepts": [ - "functions" - ], - "prerequisites": [ - "objects", - "arrays", - "null-undefined" - ], + "concepts": ["functions"], + "prerequisites": ["objects", "arrays", "null-undefined"], "status": "beta" }, { "slug": "factory-sensors", "name": "Factory Sensors", "uuid": "2ccafa38-2802-44c1-8758-7415edefa909", - "concepts": [ - "errors", - "inheritance" - ], - "prerequisites": [ - "classes", - "null-undefined", - "conditionals" - ], + "concepts": ["errors", "inheritance"], + "prerequisites": ["classes", "null-undefined", "conditionals"], "status": "beta" }, { "slug": "elyses-transformative-enchantments", "name": "Elyses Transformative Enchantments", "uuid": "6e156d67-2bd2-4624-956d-ddcc3795bad5", - "concepts": [ - "array-transformations" - ], + "concepts": ["array-transformations"], "prerequisites": [ "arrow-functions", "numbers", @@ -354,44 +244,24 @@ "slug": "custom-signs", "name": "Custom Signs", "uuid": "02a9c753-614f-4814-a7a8-43c1971d2eb7", - "concepts": [ - "conditionals-ternary", - "template-strings" - ], - "prerequisites": [ - "strings", - "conditionals", - "type-conversion" - ], + "concepts": ["conditionals-ternary", "template-strings"], + "prerequisites": ["strings", "conditionals", "type-conversion"], "status": "beta" }, { "slug": "windowing-system", "name": "Windowing System", "uuid": "d697850e-fd43-408c-a958-835aa8a510f7", - "concepts": [ - "classes" - ], - "prerequisites": [ - "objects", - "functions", - "conditionals-ternary" - ], + "concepts": ["classes"], + "prerequisites": ["objects", "functions", "conditionals-ternary"], "status": "beta" }, { "slug": "regular-chatbot", "name": "Regular Chatbot", "uuid": "dc118a0d-be89-4ea5-a814-e471897d921a", - "concepts": [ - "regular-expressions" - ], - "prerequisites": [ - "arrays", - "classes", - "objects", - "template-strings" - ], + "concepts": ["regular-expressions"], + "prerequisites": ["arrays", "classes", "objects", "template-strings"], "status": "beta" } ], @@ -415,101 +285,61 @@ "name": "Two Fer", "uuid": "7f49e997-4435-4f34-a020-bddc92c838ed", "practices": [], - "prerequisites": [ - "strings", - "functions" - ], + "prerequisites": ["strings", "functions"], "difficulty": 1, - "topics": [ - "optional_values", - "strings", - "text_formatting" - ] + "topics": ["optional_values", "strings", "text_formatting"] }, { "slug": "resistor-color", "name": "Resistor Color", "uuid": "53be6837-c224-45f1-bff3-d7f74d6285ce", "practices": [], - "prerequisites": [ - "arrays", - "array-analysis" - ], + "prerequisites": ["arrays", "array-analysis"], "difficulty": 1, - "topics": [ - "arrays", - "strings" - ] + "topics": ["arrays", "strings"] }, { "slug": "resistor-color-duo", "name": "Resistor Color Duo", "uuid": "de800041-3dcc-41b9-b101-7314ff685c93", "practices": [], - "prerequisites": [ - "array-analysis" - ], + "prerequisites": ["array-analysis"], "difficulty": 2, - "topics": [ - "strings", - "arrays" - ] + "topics": ["strings", "arrays"] }, { "slug": "gigasecond", "name": "Gigasecond", "uuid": "fd7b62d4-266b-4e84-a526-bf3d47901216", "practices": [], - "prerequisites": [ - "dates", - "numbers", - "arithmetic-operators" - ], + "prerequisites": ["dates", "numbers", "arithmetic-operators"], "difficulty": 1, - "topics": [ - "time" - ] + "topics": ["time"] }, { "slug": "rna-transcription", "name": "RNA Transcription", "uuid": "342974d6-9083-4754-a6c5-ed1e19e40ec5", "practices": [], - "prerequisites": [ - "strings", - "array-transformations", - "objects" - ], + "prerequisites": ["strings", "array-transformations", "objects"], "difficulty": 2, - "topics": [ - "strings", - "transforming" - ] + "topics": ["strings", "transforming"] }, { "slug": "space-age", "name": "Space Age", "uuid": "d9d757ed-ebe6-4d4a-aa73-f6834221cd54", "practices": [], - "prerequisites": [ - "objects", - "numbers", - "type-conversion" - ], + "prerequisites": ["objects", "numbers", "type-conversion"], "difficulty": 2, - "topics": [ - "floating_point_numbers" - ] + "topics": ["floating_point_numbers"] }, { "slug": "pangram", "name": "Pangram", "uuid": "da5b2b34-a1a7-4970-81f9-4665d875398b", "practices": [], - "prerequisites": [ - "strings", - "array-analysis" - ], + "prerequisites": ["strings", "array-analysis"], "difficulty": 2, "topics": [ "algorithms", @@ -546,11 +376,7 @@ "name": "Bob", "uuid": "a5bf36f0-5d3c-41d4-8d54-e37e484e59cd", "practices": [], - "prerequisites": [ - "strings", - "conditionals", - "regular-expressions" - ], + "prerequisites": ["strings", "conditionals", "regular-expressions"], "difficulty": 4, "topics": [ "conditionals", @@ -573,23 +399,14 @@ "functions" ], "difficulty": 5, - "topics": [ - "algorithms", - "conditionals", - "loops", - "lists", - "sorting" - ] + "topics": ["algorithms", "conditionals", "loops", "lists", "sorting"] }, { "slug": "pascals-triangle", "name": "Pascal's Triangle", "uuid": "99493160-4673-402f-acda-62db5378148d", "practices": [], - "prerequisites": [ - "arrays", - "for-loops" - ], + "prerequisites": ["arrays", "for-loops"], "difficulty": 4, "topics": [ "conditionals", @@ -604,11 +421,7 @@ "name": "Linked List", "uuid": "ec60a578-8889-46a1-b7b8-306dbd8551d5", "practices": [], - "prerequisites": [ - "classes", - "conditionals", - "while-loops" - ], + "prerequisites": ["classes", "conditionals", "while-loops"], "difficulty": 5, "topics": [ "algorithms", @@ -625,36 +438,18 @@ "name": "Grade School", "uuid": "64637322-33bc-401f-8cec-1f9810a41f75", "practices": [], - "prerequisites": [ - "classes", - "objects", - "array-transformations" - ], + "prerequisites": ["classes", "objects", "array-transformations"], "difficulty": 5, - "topics": [ - "arrays", - "maps", - "sorting" - ] + "topics": ["arrays", "maps", "sorting"] }, { "slug": "list-ops", "name": "List Ops", "uuid": "7d9db056-5398-41b6-af3b-9707f5eb0dbc", "practices": [], - "prerequisites": [ - "classes", - "arrays", - "functions", - "recursion" - ], + "prerequisites": ["classes", "arrays", "functions", "recursion"], "difficulty": 6, - "topics": [ - "data_structures", - "loops", - "lists", - "recursion" - ] + "topics": ["data_structures", "loops", "lists", "recursion"] }, { "slug": "robot-name", @@ -729,11 +524,7 @@ "name": "Secret Handshake", "uuid": "74bbc9e3-edc5-41e0-84d7-5b2d98dd8370", "practices": [], - "prerequisites": [ - "bit-manipulation", - "array-analysis", - "errors" - ], + "prerequisites": ["bit-manipulation", "array-analysis", "errors"], "difficulty": 6, "topics": [ "algorithms", @@ -749,31 +540,18 @@ "name": "Leap", "uuid": "193a0e19-462d-4d26-a117-124f07d5a3d7", "practices": [], - "prerequisites": [ - "arithmetic-operators", - "booleans" - ], + "prerequisites": ["arithmetic-operators", "booleans"], "difficulty": 1, - "topics": [ - "booleans", - "integers", - "logic" - ] + "topics": ["booleans", "integers", "logic"] }, { "slug": "reverse-string", "name": "Reverse String", "uuid": "e84c97eb-dbec-487c-b99f-ae9924e16293", "practices": [], - "prerequisites": [ - "strings", - "array-transformations" - ], + "prerequisites": ["strings", "array-transformations"], "difficulty": 2, - "topics": [ - "loops", - "strings" - ] + "topics": ["loops", "strings"] }, { "slug": "collatz-conjecture", @@ -802,19 +580,9 @@ "name": "Triangle", "uuid": "ed3ca73a-a0f0-46b8-8013-8b6d20758c8f", "practices": [], - "prerequisites": [ - "numbers", - "booleans", - "comparison", - "classes" - ], + "prerequisites": ["numbers", "booleans", "comparison", "classes"], "difficulty": 3, - "topics": [ - "conditionals", - "loops", - "exception_handling", - "integers" - ] + "topics": ["conditionals", "loops", "exception_handling", "integers"] }, { "slug": "clock", @@ -828,22 +596,14 @@ "strings" ], "difficulty": 5, - "topics": [ - "dates", - "globalization", - "time" - ] + "topics": ["dates", "globalization", "time"] }, { "slug": "meetup", "name": "Meetup", "uuid": "98617798-b49d-4d43-9f65-7131ee73d626", "practices": [], - "prerequisites": [ - "dates", - "array-analysis", - "conditionals-switch" - ], + "prerequisites": ["dates", "array-analysis", "conditionals-switch"], "difficulty": 7, "topics": [ "conditionals", @@ -859,55 +619,27 @@ "name": "ETL", "uuid": "db16804b-0f63-445d-8beb-99e0f7218d66", "practices": [], - "prerequisites": [ - "objects", - "array-loops", - "arrays", - "strings" - ], + "prerequisites": ["objects", "array-loops", "arrays", "strings"], "difficulty": 2, - "topics": [ - "loops", - "integers", - "maps", - "transforming" - ] + "topics": ["loops", "integers", "maps", "transforming"] }, { "slug": "hamming", "name": "Hamming", "uuid": "d773c4ef-c09e-40e4-a7fe-01456cb4a12a", "practices": [], - "prerequisites": [ - "comparison", - "errors", - "for-loops" - ], + "prerequisites": ["comparison", "errors", "for-loops"], "difficulty": 2, - "topics": [ - "conditionals", - "loops", - "equality", - "strings" - ] + "topics": ["conditionals", "loops", "equality", "strings"] }, { "slug": "raindrops", "name": "Raindrops", "uuid": "f77ac2d1-cf3a-497d-bf04-b484a5a9cb37", "practices": [], - "prerequisites": [ - "arithmetic-operators", - "strings", - "conditionals" - ], + "prerequisites": ["arithmetic-operators", "strings", "conditionals"], "difficulty": 2, - "topics": [ - "conditionals", - "integers", - "strings", - "transforming" - ] + "topics": ["conditionals", "integers", "strings", "transforming"] }, { "slug": "nucleotide-count", @@ -934,37 +666,18 @@ "name": "Scrabble Score", "uuid": "11771d47-1109-4579-a62b-e0b8e9583485", "practices": [], - "prerequisites": [ - "strings", - "array-transformations" - ], + "prerequisites": ["strings", "array-transformations"], "difficulty": 5, - "topics": [ - "conditionals", - "loops", - "maps", - "strings" - ] + "topics": ["conditionals", "loops", "maps", "strings"] }, { "slug": "allergies", "name": "Allergies", "uuid": "9d33d21c-e695-427f-9f58-dd9498d61318", "practices": [], - "prerequisites": [ - "classes", - "math", - "numbers", - "for-loops", - "arrays" - ], + "prerequisites": ["classes", "math", "numbers", "for-loops", "arrays"], "difficulty": 6, - "topics": [ - "arrays", - "bitwise_operations", - "conditionals", - "loops" - ] + "topics": ["arrays", "bitwise_operations", "conditionals", "loops"] }, { "slug": "word-count", @@ -979,45 +692,25 @@ "objects" ], "difficulty": 4, - "topics": [ - "loops", - "lists", - "regular_expressions", - "strings" - ] + "topics": ["loops", "lists", "regular_expressions", "strings"] }, { "slug": "bank-account", "name": "Bank Account", "uuid": "8beedf70-28b4-4cfb-ab53-309ee6f6aa78", "practices": [], - "prerequisites": [ - "classes", - "conditionals", - "numbers" - ], + "prerequisites": ["classes", "conditionals", "numbers"], "difficulty": 3, - "topics": [ - "classes", - "conditionals" - ] + "topics": ["classes", "conditionals"] }, { "slug": "difference-of-squares", "name": "Difference of Squares", "uuid": "7dfa878c-83a6-48ef-9170-b6633d51d601", "practices": [], - "prerequisites": [ - "classes", - "for-loops" - ], + "prerequisites": ["classes", "for-loops"], "difficulty": 3, - "topics": [ - "algorithms", - "loops", - "integers", - "math" - ] + "topics": ["algorithms", "loops", "integers", "math"] }, { "slug": "perfect-numbers", @@ -1032,82 +725,43 @@ "for-loops" ], "difficulty": 3, - "topics": [ - "arrays", - "conditionals", - "loops", - "integers", - "math" - ] + "topics": ["arrays", "conditionals", "loops", "integers", "math"] }, { "slug": "complex-numbers", "name": "Complex Numbers", "uuid": "ea9a9a3e-ae6a-470d-8bb4-2afead507f24", "practices": [], - "prerequisites": [ - "classes", - "numbers", - "math" - ], + "prerequisites": ["classes", "numbers", "math"], "difficulty": 4, - "topics": [ - "math" - ] + "topics": ["math"] }, { "slug": "luhn", "name": "Luhn", "uuid": "28872cc9-f1ef-487f-9a79-6bf7983148bf", "practices": [], - "prerequisites": [ - "numbers", - "conditionals", - "array-transformations" - ], + "prerequisites": ["numbers", "conditionals", "array-transformations"], "difficulty": 4, - "topics": [ - "conditionals", - "loops", - "integers", - "strings" - ] + "topics": ["conditionals", "loops", "integers", "strings"] }, { "slug": "prime-factors", "name": "Prime Factors", "uuid": "f43cdddf-eea8-4c4a-8359-c69e20ff9661", "practices": [], - "prerequisites": [ - "while-loops", - "conditionals", - "arrays" - ], + "prerequisites": ["while-loops", "conditionals", "arrays"], "difficulty": 4, - "topics": [ - "algorithms", - "conditionals", - "loops", - "integers", - "math" - ] + "topics": ["algorithms", "conditionals", "loops", "integers", "math"] }, { "slug": "grains", "name": "Grains", "uuid": "d003975a-9045-4f03-9ad9-c15db584dc13", "practices": [], - "prerequisites": [ - "conditionals", - "errors", - "numbers", - "math" - ], + "prerequisites": ["conditionals", "errors", "numbers", "math"], "difficulty": 5, - "topics": [ - "loops", - "integers" - ] + "topics": ["loops", "integers"] }, { "slug": "pythagorean-triplet", @@ -1123,13 +777,7 @@ "conditionals" ], "difficulty": 5, - "topics": [ - "algorithms", - "conditionals", - "loops", - "integers", - "math" - ] + "topics": ["algorithms", "conditionals", "loops", "integers", "math"] }, { "slug": "palindrome-products", @@ -1168,10 +816,7 @@ "comparison" ], "difficulty": 1, - "topics": [ - "filtering", - "strings" - ] + "topics": ["filtering", "strings"] }, { "slug": "acronym", @@ -1184,12 +829,7 @@ "array-transformations" ], "difficulty": 2, - "topics": [ - "loops", - "regular_expressions", - "strings", - "transforming" - ] + "topics": ["loops", "regular_expressions", "strings", "transforming"] }, { "slug": "high-scores", @@ -1203,25 +843,16 @@ "classes" ], "difficulty": 2, - "topics": [ - "arrays" - ] + "topics": ["arrays"] }, { "slug": "isogram", "name": "Isogram", - "uuid": "3df577af-2854-40ee-b211-9b608dbbad58", - "practices": [], - "prerequisites": [ - "strings", - "arrays", - "regular-expressions" - ], + "uuid": "3df577af-2854-40ee-b211-9b608dbbad58", + "practices": [], + "prerequisites": ["strings", "arrays", "regular-expressions"], "difficulty": 2, - "topics": [ - "filtering", - "strings" - ] + "topics": ["filtering", "strings"] }, { "slug": "matching-brackets", @@ -1255,10 +886,7 @@ "regular-expressions" ], "difficulty": 3, - "topics": [ - "parsing", - "transforming" - ] + "topics": ["parsing", "transforming"] }, { "slug": "scale-generator", @@ -1272,12 +900,7 @@ "array-transformations" ], "difficulty": 3, - "topics": [ - "loops", - "pattern_recognition", - "strings", - "arrays" - ] + "topics": ["loops", "pattern_recognition", "strings", "arrays"] }, { "slug": "series", @@ -1293,12 +916,7 @@ "array-transformations" ], "difficulty": 3, - "topics": [ - "loops", - "exception_handling", - "strings", - "text_formatting" - ] + "topics": ["loops", "exception_handling", "strings", "text_formatting"] }, { "slug": "largest-series-product", @@ -1328,12 +946,7 @@ "name": "Transpose", "uuid": "9c140fb7-cc8b-411b-b613-a0e0081a9c3f", "practices": [], - "prerequisites": [ - "arrays", - "for-loops", - "strings", - "conditionals" - ], + "prerequisites": ["arrays", "for-loops", "strings", "conditionals"], "difficulty": 3, "topics": [ "arrays", @@ -1357,11 +970,7 @@ "template-strings" ], "difficulty": 4, - "topics": [ - "files", - "searching", - "text_formatting" - ] + "topics": ["files", "searching", "text_formatting"] }, { "slug": "rectangles", @@ -1370,24 +979,14 @@ "practices": [], "prerequisites": [], "difficulty": 4, - "topics": [ - "arrays", - "conditionals", - "loops", - "matrices", - "strings" - ] + "topics": ["arrays", "conditionals", "loops", "matrices", "strings"] }, { "slug": "spiral-matrix", "name": "Spiral Matrix", "uuid": "c1abafcc-0d44-4fb5-afae-bff3ce2e1b39", "practices": [], - "prerequisites": [ - "arrays", - "for-loops", - "conditionals" - ], + "prerequisites": ["arrays", "for-loops", "conditionals"], "difficulty": 4, "topics": [ "arrays", @@ -1439,11 +1038,7 @@ "practices": [], "prerequisites": [], "difficulty": 8, - "topics": [ - "domain_specific_languages", - "parsing", - "stacks" - ] + "topics": ["domain_specific_languages", "parsing", "stacks"] }, { "slug": "food-chain", @@ -1452,21 +1047,14 @@ "practices": [], "prerequisites": [], "difficulty": 4, - "topics": [ - "algorithms", - "text_formatting" - ] + "topics": ["algorithms", "text_formatting"] }, { "slug": "house", "name": "House", "uuid": "a8b7187d-12eb-4efc-b966-87823654ccda", "practices": [], - "prerequisites": [ - "for-loops", - "arrays", - "strings" - ], + "prerequisites": ["for-loops", "arrays", "strings"], "difficulty": 4 }, { @@ -1526,12 +1114,7 @@ "name": "Twelve Days", "uuid": "64de1776-d5c6-43fe-9abf-7e3aa08ae342", "practices": [], - "prerequisites": [ - "arrays", - "conditionals", - "for-loops", - "strings" - ], + "prerequisites": ["arrays", "conditionals", "for-loops", "strings"], "difficulty": 4, "topics": [ "conditionals", @@ -1549,11 +1132,7 @@ "practices": [], "prerequisites": [], "difficulty": 6, - "topics": [ - "promises", - "error_handling", - "higher_order_functions" - ] + "topics": ["promises", "error_handling", "higher_order_functions"] }, { "slug": "yacht", @@ -1568,12 +1147,7 @@ "sets" ], "difficulty": 4, - "topics": [ - "arrays", - "conditionals", - "filtering", - "games" - ] + "topics": ["arrays", "conditionals", "filtering", "games"] }, { "slug": "beer-song", @@ -1587,11 +1161,7 @@ "template-strings" ], "difficulty": 5, - "topics": [ - "conditionals", - "loops", - "strings" - ] + "topics": ["conditionals", "loops", "strings"] }, { "slug": "resistor-color-trio", @@ -1606,10 +1176,7 @@ "template-strings" ], "difficulty": 5, - "topics": [ - "conditionals", - "loops" - ] + "topics": ["conditionals", "loops"] }, { "slug": "dominoes", @@ -1625,9 +1192,7 @@ "while-loops" ], "difficulty": 6, - "topics": [ - "graph_theory" - ] + "topics": ["graph_theory"] }, { "slug": "say", @@ -1659,11 +1224,7 @@ "name": "Diamond", "uuid": "6a1eee0e-f8d4-446d-9c52-f31c3700af1b", "practices": [], - "prerequisites": [ - "arrays", - "for-loops", - "strings" - ], + "prerequisites": ["arrays", "for-loops", "strings"], "difficulty": 5, "topics": [ "arrays", @@ -1689,11 +1250,7 @@ "while-loops" ], "difficulty": 5, - "topics": [ - "algorithms", - "floating_point_numbers", - "math" - ] + "topics": ["algorithms", "floating_point_numbers", "math"] }, { "slug": "sublist", @@ -1707,28 +1264,16 @@ "conditionals" ], "difficulty": 4, - "topics": [ - "arrays", - "lists" - ] + "topics": ["arrays", "lists"] }, { "slug": "binary-search-tree", "name": "Binary Search Tree", "uuid": "6c4b4e25-c115-4789-9058-d28ab6ca0d26", "practices": [], - "prerequisites": [ - "classes", - "conditionals", - "recursion" - ], + "prerequisites": ["classes", "conditionals", "recursion"], "difficulty": 6, - "topics": [ - "algorithms", - "conditionals", - "loops", - "recursion" - ] + "topics": ["algorithms", "conditionals", "loops", "recursion"] }, { "slug": "custom-set", @@ -1768,13 +1313,7 @@ "while-loops" ], "difficulty": 7, - "topics": [ - "algorithms", - "arrays", - "conditionals", - "loops", - "recursion" - ] + "topics": ["algorithms", "arrays", "conditionals", "loops", "recursion"] }, { "slug": "circular-buffer", @@ -1803,30 +1342,16 @@ "name": "Simple Linked List", "uuid": "a1591026-2f02-45f9-b189-24b2359eb43f", "practices": [], - "prerequisites": [ - "arrays", - "classes", - "conditionals", - "for-loops" - ], + "prerequisites": ["arrays", "classes", "conditionals", "for-loops"], "difficulty": 8, - "topics": [ - "arrays", - "data_structures", - "lists" - ] + "topics": ["arrays", "data_structures", "lists"] }, { "slug": "word-search", "name": "Word Search", "uuid": "0125f5a7-8883-4553-a6c1-45f19544af5e", "practices": [], - "prerequisites": [ - "arrays", - "array-loops", - "classes", - "conditionals" - ], + "prerequisites": ["arrays", "array-loops", "classes", "conditionals"], "difficulty": 8, "topics": [ "arrays", @@ -1852,10 +1377,7 @@ "rest-and-spread" ], "difficulty": 5, - "topics": [ - "bitwise_operations", - "transforming" - ] + "topics": ["bitwise_operations", "transforming"] }, { "slug": "two-bucket", @@ -1897,10 +1419,7 @@ "rest-and-spread" ], "difficulty": 7, - "topics": [ - "algorithms", - "games" - ] + "topics": ["algorithms", "games"] }, { "slug": "connect", @@ -1968,12 +1487,7 @@ "prerequisites": [], "difficulty": 5, "status": "deprecated", - "topics": [ - "algorithms", - "callbacks", - "loops", - "lists" - ] + "topics": ["algorithms", "callbacks", "loops", "lists"] }, { "slug": "flatten-array", @@ -1982,10 +1496,7 @@ "practices": [], "prerequisites": [], "difficulty": 5, - "topics": [ - "arrays", - "recursion" - ] + "topics": ["arrays", "recursion"] }, { "slug": "nth-prime", @@ -2010,13 +1521,7 @@ "practices": [], "prerequisites": [], "difficulty": 5, - "topics": [ - "conditionals", - "loops", - "integers", - "math", - "recursion" - ] + "topics": ["conditionals", "loops", "integers", "math", "recursion"] }, { "slug": "rotational-cipher", @@ -2025,12 +1530,7 @@ "practices": [], "prerequisites": [], "difficulty": 2, - "topics": [ - "conditionals", - "strings", - "text_formatting", - "transforming" - ] + "topics": ["conditionals", "strings", "text_formatting", "transforming"] }, { "slug": "diffie-hellman", @@ -2055,12 +1555,7 @@ "practices": [], "prerequisites": [], "difficulty": 4, - "topics": [ - "algorithms", - "arrays", - "filtering", - "math" - ] + "topics": ["algorithms", "arrays", "filtering", "math"] }, { "slug": "atbash-cipher", @@ -2117,12 +1612,7 @@ "name": "Kindergarten Garden", "uuid": "13444eff-005a-405e-9737-7b64d99c1a61", "practices": [], - "prerequisites": [ - "arrays", - "classes", - "strings", - "rest-and-spread" - ], + "prerequisites": ["arrays", "classes", "strings", "rest-and-spread"], "difficulty": 7, "topics": [ "arrays", @@ -2139,13 +1629,7 @@ "practices": [], "prerequisites": [], "difficulty": 5, - "topics": [ - "conditionals", - "loops", - "integers", - "lists", - "math" - ] + "topics": ["conditionals", "loops", "integers", "lists", "math"] }, { "slug": "change", @@ -2154,11 +1638,7 @@ "practices": [], "prerequisites": [], "difficulty": 8, - "topics": [ - "algorithms", - "performance", - "searching" - ] + "topics": ["algorithms", "performance", "searching"] }, { "slug": "point-mutations", @@ -2176,12 +1656,7 @@ "practices": [], "prerequisites": [], "difficulty": 1, - "topics": [ - "algorithms", - "conditionals", - "loops", - "strings" - ] + "topics": ["algorithms", "conditionals", "loops", "strings"] }, { "slug": "armstrong-numbers", @@ -2190,10 +1665,7 @@ "practices": [], "prerequisites": [], "difficulty": 2, - "topics": [ - "algorithms", - "math" - ] + "topics": ["algorithms", "math"] }, { "slug": "dnd-character", @@ -2202,10 +1674,7 @@ "practices": [], "prerequisites": [], "difficulty": 2, - "topics": [ - "classes", - "randomness" - ] + "topics": ["classes", "randomness"] }, { "slug": "run-length-encoding", @@ -2305,12 +1774,7 @@ "practices": [], "prerequisites": [], "difficulty": 4, - "topics": [ - "bitwise_operations", - "algorithms", - "loops", - "math" - ] + "topics": ["bitwise_operations", "algorithms", "loops", "math"] }, { "slug": "trinary", @@ -2352,11 +1816,7 @@ "practices": [], "prerequisites": [], "difficulty": 7, - "topics": [ - "algorithms", - "arrays", - "games" - ] + "topics": ["algorithms", "arrays", "games"] }, { "slug": "queen-attack", @@ -2382,11 +1842,7 @@ "practices": [], "prerequisites": [], "difficulty": 8, - "topics": [ - "algorithms", - "events", - "reactive_programming" - ] + "topics": ["algorithms", "events", "reactive_programming"] }, { "slug": "zipper", @@ -2395,80 +1851,43 @@ "practices": [], "prerequisites": [], "difficulty": 8, - "topics": [ - "recursion", - "searching", - "trees" - ] + "topics": ["recursion", "searching", "trees"] }, { "slug": "zebra-puzzle", "name": "Zebra Puzzle", "uuid": "3a34cb49-546f-4aae-b49e-7d5b25db7ebb", "practices": [], - "prerequisites": [ - "arrays", - "classes", - "for-loops", - "maps" - ], + "prerequisites": ["arrays", "classes", "for-loops", "maps"], "difficulty": 7, - "topics": [ - "algorithms", - "logic" - ] + "topics": ["algorithms", "logic"] }, { "slug": "tournament", "name": "Tournament", "uuid": "e5e5363d-4e9a-478f-8b18-e578f3721ac5", "practices": [], - "prerequisites": [ - "arrays", - "strings", - "for-loops", - "objects" - ], + "prerequisites": ["arrays", "strings", "for-loops", "objects"], "difficulty": 3, - "topics": [ - "parsing", - "strings" - ] + "topics": ["parsing", "strings"] }, { "slug": "rail-fence-cipher", "name": "Rail Fence Cipher", "uuid": "5f0352e5-0988-434a-82c7-f6810d41d63a", "practices": [], - "prerequisites": [ - "arrays", - "strings", - "for-loops", - "conditionals" - ], + "prerequisites": ["arrays", "strings", "for-loops", "conditionals"], "difficulty": 3, - "topics": [ - "parsing", - "strings", - "iteration" - ] + "topics": ["parsing", "strings", "iteration"] }, { "slug": "rest-api", "name": "REST API", "uuid": "75b4816d-a5d7-4840-92d6-7249c9e8beeb", "practices": [], - "prerequisites": [ - "arrays", - "classes", - "array-loops", - "objects" - ], + "prerequisites": ["arrays", "classes", "array-loops", "objects"], "difficulty": 6, - "topics": [ - "algorithms", - "logic" - ] + "topics": ["algorithms", "logic"] }, { "slug": "go-counting", @@ -2484,10 +1903,7 @@ "conditionals-switch" ], "difficulty": 5, - "topics": [ - "algorithms", - "logic" - ] + "topics": ["algorithms", "logic"] }, { "slug": "knapsack", @@ -2502,10 +1918,7 @@ "conditionals" ], "difficulty": 5, - "topics": [ - "algorithms", - "logic" - ] + "topics": ["algorithms", "logic"] }, { "slug": "satellite", diff --git a/exercises/practice/leap/.docs/introduction.md b/exercises/practice/leap/.docs/introduction.md index 4ffd2da594..8017122d0d 100644 --- a/exercises/practice/leap/.docs/introduction.md +++ b/exercises/practice/leap/.docs/introduction.md @@ -11,6 +11,6 @@ Some examples: - 1900 was not a leap year as it's not divisible by 400. - 2000 was a leap year! -~~~~exercism/note +```exercism/note For a delightful, four-minute explanation of the whole phenomenon of leap years, check out [this YouTube video](https://www.youtube.com/watch?v=xX96xng7sAE). -~~~~ +``` diff --git a/exercises/practice/pop-count/.eslintrc b/exercises/practice/pop-count/.eslintrc new file mode 100644 index 0000000000..1d4446029c --- /dev/null +++ b/exercises/practice/pop-count/.eslintrc @@ -0,0 +1,14 @@ +{ + "root": true, + "extends": "@exercism/eslint-config-javascript", + "env": { + "jest": true + }, + "overrides": [ + { + "files": [".meta/proof.ci.js", ".meta/exemplar.js", "*.spec.js"], + "excludedFiles": ["custom.spec.js"], + "extends": "@exercism/eslint-config-javascript/maintainers" + } + ] +} diff --git a/exercises/practice/pop-count/.gitignore b/exercises/practice/pop-count/.gitignore new file mode 100644 index 0000000000..31c57dd53a --- /dev/null +++ b/exercises/practice/pop-count/.gitignore @@ -0,0 +1,5 @@ +/node_modules +/bin/configlet +/bin/configlet.exe +/pnpm-lock.yaml +/yarn.lock diff --git a/exercises/practice/pop-count/.meta/config.json b/exercises/practice/pop-count/.meta/config.json index 36aacc829c..5f80e7bf45 100644 --- a/exercises/practice/pop-count/.meta/config.json +++ b/exercises/practice/pop-count/.meta/config.json @@ -1,5 +1,7 @@ { - "authors": [], + "authors": [ + "Cool-Katt" + ], "files": { "solution": [ "pop-count.js" diff --git a/exercises/practice/pop-count/.meta/proof.ci.js b/exercises/practice/pop-count/.meta/proof.ci.js index e69de29bb2..ad767f867f 100644 --- a/exercises/practice/pop-count/.meta/proof.ci.js +++ b/exercises/practice/pop-count/.meta/proof.ci.js @@ -0,0 +1,5 @@ +export const eggCount = (displayValue) => + [...displayValue.toString(2)].reduce( + (acc, curr) => (curr === '1' ? (acc += 1) : acc), + 0, + ); diff --git a/exercises/practice/pop-count/.npmrc b/exercises/practice/pop-count/.npmrc new file mode 100644 index 0000000000..d26df800bb --- /dev/null +++ b/exercises/practice/pop-count/.npmrc @@ -0,0 +1 @@ +audit=false diff --git a/exercises/practice/pop-count/LICENSE b/exercises/practice/pop-count/LICENSE new file mode 100644 index 0000000000..90e73be03b --- /dev/null +++ b/exercises/practice/pop-count/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Exercism + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/exercises/practice/pop-count/babel.config.js b/exercises/practice/pop-count/babel.config.js new file mode 100644 index 0000000000..b781d5a667 --- /dev/null +++ b/exercises/practice/pop-count/babel.config.js @@ -0,0 +1,4 @@ +module.exports = { + presets: ['@exercism/babel-preset-javascript'], + plugins: [], +}; diff --git a/exercises/practice/pop-count/package.json b/exercises/practice/pop-count/package.json new file mode 100644 index 0000000000..e40a84455c --- /dev/null +++ b/exercises/practice/pop-count/package.json @@ -0,0 +1,33 @@ +{ + "name": "@exercism/javascript-practice-pop-count", + "description": "Exercism practice exercise on pop-count", + "author": "Katrina Owen", + "contributors": [ + "Derk-Jan Karrenbeld (https://derk-jan.com)", + "Tejas Bubane (https://tejasbubane.github.io/)" + ], + "private": true, + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/exercism/javascript", + "directory": "exercises/practice/pop-count" + }, + "devDependencies": { + "@babel/core": "^7.23.0", + "@exercism/babel-preset-javascript": "^0.2.1", + "@exercism/eslint-config-javascript": "^0.6.0", + "@types/jest": "^29.5.4", + "@types/node": "^20.5.6", + "babel-jest": "^29.6.4", + "core-js": "~3.32.2", + "eslint": "^8.49.0", + "jest": "^29.7.0" + }, + "dependencies": {}, + "scripts": { + "test": "jest ./*", + "watch": "jest --watch ./*", + "lint": "eslint ." + } +} diff --git a/exercises/practice/pop-count/pop-count.js b/exercises/practice/pop-count/pop-count.js index e69de29bb2..dba85fb0bc 100644 --- a/exercises/practice/pop-count/pop-count.js +++ b/exercises/practice/pop-count/pop-count.js @@ -0,0 +1,8 @@ +// +// This is only a SKELETON file for the 'Poker' exercise. It's been provided as a +// convenience to get you started writing code faster. +// + +export const eggCount = (displayValue) => { + throw new Error('Remove this statement and implement this function'); +}; diff --git a/exercises/practice/pop-count/pop-count.spec.js b/exercises/practice/pop-count/pop-count.spec.js index e69de29bb2..b8019c20da 100644 --- a/exercises/practice/pop-count/pop-count.spec.js +++ b/exercises/practice/pop-count/pop-count.spec.js @@ -0,0 +1,27 @@ +import { eggCount } from './pop-count'; + +describe('PopCount', () => { + test('0 eggs', () => { + const expected = 0; + const actual = eggCount(0); + expect(actual).toEqual(expected); + }); + + xtest('1 egg', () => { + const expected = 1; + const actual = eggCount(16); + expect(actual).toEqual(expected); + }); + + xtest('4 eggs', () => { + const expected = 4; + const actual = eggCount(89); + expect(actual).toEqual(expected); + }); + + xtest('13 eggs', () => { + const expected = 13; + const actual = eggCount(2000000000); + expect(actual).toEqual(expected); + }); +}); From c9dd99e9087e454d68647f0cf7c9c4d259a7877d Mon Sep 17 00:00:00 2001 From: Cool-Katt Date: Fri, 26 Jan 2024 12:26:46 +0200 Subject: [PATCH 3/3] Updating files to pass CI checks --- config.json | 907 ++++++++++++++++++---- exercises/practice/pop-count/package.json | 2 +- 2 files changed, 748 insertions(+), 161 deletions(-) diff --git a/config.json b/config.json index db6a21df3c..93cf00ec18 100644 --- a/config.json +++ b/config.json @@ -19,10 +19,18 @@ "average_run_time": 5 }, "files": { - "solution": ["%{kebab_slug}.js"], - "test": ["%{kebab_slug}.spec.js"], - "example": [".meta/proof.ci.js"], - "exemplar": [".meta/exemplar.js"] + "solution": [ + "%{kebab_slug}.js" + ], + "test": [ + "%{kebab_slug}.spec.js" + ], + "example": [ + ".meta/proof.ci.js" + ], + "exemplar": [ + ".meta/exemplar.js" + ] }, "exercises": { "concept": [ @@ -30,7 +38,9 @@ "slug": "lasagna", "name": "Lucian's Luscious Lasagna", "uuid": "97bf898a-36fc-47fc-b870-01fc0c7fe554", - "concepts": ["basics"], + "concepts": [ + "basics" + ], "prerequisites": [], "status": "active" }, @@ -38,63 +48,103 @@ "slug": "annalyns-infiltration", "name": "Annalyn's Infiltration", "uuid": "5acafcbb-20a0-45b9-b276-3d167e0de313", - "concepts": ["booleans"], - "prerequisites": ["basics"], + "concepts": [ + "booleans" + ], + "prerequisites": [ + "basics" + ], "status": "beta" }, { "slug": "freelancer-rates", "name": "Freelancer Rates", "uuid": "0aff2fa7-55ea-47e9-af4a-78927d916baf", - "concepts": ["numbers", "arithmetic-operators"], - "prerequisites": ["basics"], + "concepts": [ + "numbers", + "arithmetic-operators" + ], + "prerequisites": [ + "basics" + ], "status": "beta" }, { "slug": "poetry-club-door-policy", "name": "Poetry Club Door Policy", "uuid": "39549583-1889-490a-bf98-ffb2e0aefe44", - "concepts": ["strings"], - "prerequisites": ["basics"], + "concepts": [ + "strings" + ], + "prerequisites": [ + "basics" + ], "status": "beta" }, { "slug": "elyses-enchantments", "name": "Elyses Enchantments", "uuid": "25cb0707-44f8-4800-b993-3fcb2b6d9f61", - "concepts": ["arrays"], - "prerequisites": ["numbers"], + "concepts": [ + "arrays" + ], + "prerequisites": [ + "numbers" + ], "status": "beta" }, { "slug": "vehicle-purchase", "name": "Vehicle Purchase", "uuid": "f75a7e2c-053a-411e-8b3d-f978a2c5100e", - "concepts": ["comparison", "conditionals"], - "prerequisites": ["booleans", "numbers", "strings"], + "concepts": [ + "comparison", + "conditionals" + ], + "prerequisites": [ + "booleans", + "numbers", + "strings" + ], "status": "beta" }, { "slug": "bird-watcher", "name": "Bird Watcher", "uuid": "3e648aa0-9ce7-4041-93d2-2b95f3832824", - "concepts": ["increment-decrement", "for-loops"], - "prerequisites": ["arrays", "comparison", "conditionals"], + "concepts": [ + "increment-decrement", + "for-loops" + ], + "prerequisites": [ + "arrays", + "comparison", + "conditionals" + ], "status": "beta" }, { "slug": "mixed-juices", "name": "Mixed Juices", "uuid": "81c3fb86-af86-4c56-a45f-e021403c4070", - "concepts": ["while-loops", "conditionals-switch"], - "prerequisites": ["comparison", "conditionals", "arrays"], + "concepts": [ + "while-loops", + "conditionals-switch" + ], + "prerequisites": [ + "comparison", + "conditionals", + "arrays" + ], "status": "beta" }, { "slug": "lucky-numbers", "name": "Lucky Numbers", "uuid": "78bbd7d2-b660-4791-a404-af5bfed31849", - "concepts": ["type-conversion"], + "concepts": [ + "type-conversion" + ], "prerequisites": [ "booleans", "strings", @@ -108,23 +158,40 @@ "slug": "elyses-analytic-enchantments", "name": "Elyses Analytic Enchantments", "uuid": "45d956db-d4ef-4468-b1d3-47021f172c15", - "concepts": ["arrow-functions", "array-analysis"], - "prerequisites": ["arrays", "booleans", "callbacks", "numbers"], + "concepts": [ + "arrow-functions", + "array-analysis" + ], + "prerequisites": [ + "arrays", + "booleans", + "callbacks", + "numbers" + ], "status": "beta" }, { "slug": "elyses-destructured-enchantments", "name": "Elyses Destructured Enchantments", "uuid": "d9b5cd13-2f2b-4034-a571-e66c847ed6f8", - "concepts": ["array-destructuring", "rest-and-spread"], - "prerequisites": ["arrays", "functions", "objects"], + "concepts": [ + "array-destructuring", + "rest-and-spread" + ], + "prerequisites": [ + "arrays", + "functions", + "objects" + ], "status": "beta" }, { "slug": "elyses-looping-enchantments", "name": "Elyses Looping Enchantments", "uuid": "e06f8f70-019f-4cec-924b-3971414e15d9", - "concepts": ["array-loops"], + "concepts": [ + "array-loops" + ], "prerequisites": [ "arrays", "arrow-functions", @@ -146,15 +213,21 @@ "slug": "amusement-park", "name": "Amusement Park", "uuid": "2d40b46b-9e49-431c-913c-81d1f42f74df", - "concepts": ["null-undefined"], - "prerequisites": ["objects"], + "concepts": [ + "null-undefined" + ], + "prerequisites": [ + "objects" + ], "status": "beta" }, { "slug": "pizza-order", "name": "Pizza Order", "uuid": "e9a9fa73-4497-43d5-a4ff-4eb319c98233", - "concepts": ["recursion"], + "concepts": [ + "recursion" + ], "prerequisites": [ "functions", "rest-and-spread", @@ -167,39 +240,61 @@ "slug": "coordinate-transformation", "name": "Coordinate Transformation", "uuid": "5aa39e89-c601-4a66-ab72-5d8512d69e02", - "concepts": ["closures"], - "prerequisites": ["arrays", "functions"], + "concepts": [ + "closures" + ], + "prerequisites": [ + "arrays", + "functions" + ], "status": "beta" }, { "slug": "fruit-picker", "name": "Fruit Picker", "uuid": "a6348db8-cc2b-4c53-9f43-3c23248d66f0", - "concepts": ["callbacks"], - "prerequisites": ["functions", "objects"], + "concepts": [ + "callbacks" + ], + "prerequisites": [ + "functions", + "objects" + ], "status": "beta" }, { "slug": "translation-service", "name": "Translation Service", "uuid": "4a967656-8615-474e-a009-5c0b09f4386f", - "concepts": ["promises"], - "prerequisites": ["callbacks", "arrow-functions", "errors"], + "concepts": [ + "promises" + ], + "prerequisites": [ + "callbacks", + "arrow-functions", + "errors" + ], "status": "beta" }, { "slug": "high-score-board", "name": "High Score Board", "uuid": "431d1f13-d280-4808-bbc6-a72e628c15c2", - "concepts": ["objects"], - "prerequisites": ["for-loops"], + "concepts": [ + "objects" + ], + "prerequisites": [ + "for-loops" + ], "status": "beta" }, { "slug": "ozans-playlist", "name": "Ozan's Playlist", "uuid": "347692fb-7b0f-4ef0-9a02-2192b59bdf5d", - "concepts": ["sets"], + "concepts": [ + "sets" + ], "prerequisites": [ "array-destructuring", "array-loops", @@ -214,23 +309,38 @@ "slug": "lasagna-master", "name": "Lasagna Master", "uuid": "a7e323f1-84d8-43d5-8c26-cc119166b9fd", - "concepts": ["functions"], - "prerequisites": ["objects", "arrays", "null-undefined"], + "concepts": [ + "functions" + ], + "prerequisites": [ + "objects", + "arrays", + "null-undefined" + ], "status": "beta" }, { "slug": "factory-sensors", "name": "Factory Sensors", "uuid": "2ccafa38-2802-44c1-8758-7415edefa909", - "concepts": ["errors", "inheritance"], - "prerequisites": ["classes", "null-undefined", "conditionals"], + "concepts": [ + "errors", + "inheritance" + ], + "prerequisites": [ + "classes", + "null-undefined", + "conditionals" + ], "status": "beta" }, { "slug": "elyses-transformative-enchantments", "name": "Elyses Transformative Enchantments", "uuid": "6e156d67-2bd2-4624-956d-ddcc3795bad5", - "concepts": ["array-transformations"], + "concepts": [ + "array-transformations" + ], "prerequisites": [ "arrow-functions", "numbers", @@ -244,24 +354,44 @@ "slug": "custom-signs", "name": "Custom Signs", "uuid": "02a9c753-614f-4814-a7a8-43c1971d2eb7", - "concepts": ["conditionals-ternary", "template-strings"], - "prerequisites": ["strings", "conditionals", "type-conversion"], + "concepts": [ + "conditionals-ternary", + "template-strings" + ], + "prerequisites": [ + "strings", + "conditionals", + "type-conversion" + ], "status": "beta" }, { "slug": "windowing-system", "name": "Windowing System", "uuid": "d697850e-fd43-408c-a958-835aa8a510f7", - "concepts": ["classes"], - "prerequisites": ["objects", "functions", "conditionals-ternary"], + "concepts": [ + "classes" + ], + "prerequisites": [ + "objects", + "functions", + "conditionals-ternary" + ], "status": "beta" }, { "slug": "regular-chatbot", "name": "Regular Chatbot", "uuid": "dc118a0d-be89-4ea5-a814-e471897d921a", - "concepts": ["regular-expressions"], - "prerequisites": ["arrays", "classes", "objects", "template-strings"], + "concepts": [ + "regular-expressions" + ], + "prerequisites": [ + "arrays", + "classes", + "objects", + "template-strings" + ], "status": "beta" } ], @@ -285,61 +415,101 @@ "name": "Two Fer", "uuid": "7f49e997-4435-4f34-a020-bddc92c838ed", "practices": [], - "prerequisites": ["strings", "functions"], + "prerequisites": [ + "strings", + "functions" + ], "difficulty": 1, - "topics": ["optional_values", "strings", "text_formatting"] + "topics": [ + "optional_values", + "strings", + "text_formatting" + ] }, { "slug": "resistor-color", "name": "Resistor Color", "uuid": "53be6837-c224-45f1-bff3-d7f74d6285ce", "practices": [], - "prerequisites": ["arrays", "array-analysis"], + "prerequisites": [ + "arrays", + "array-analysis" + ], "difficulty": 1, - "topics": ["arrays", "strings"] + "topics": [ + "arrays", + "strings" + ] }, { "slug": "resistor-color-duo", "name": "Resistor Color Duo", "uuid": "de800041-3dcc-41b9-b101-7314ff685c93", "practices": [], - "prerequisites": ["array-analysis"], + "prerequisites": [ + "array-analysis" + ], "difficulty": 2, - "topics": ["strings", "arrays"] + "topics": [ + "strings", + "arrays" + ] }, { "slug": "gigasecond", "name": "Gigasecond", "uuid": "fd7b62d4-266b-4e84-a526-bf3d47901216", "practices": [], - "prerequisites": ["dates", "numbers", "arithmetic-operators"], + "prerequisites": [ + "dates", + "numbers", + "arithmetic-operators" + ], "difficulty": 1, - "topics": ["time"] + "topics": [ + "time" + ] }, { "slug": "rna-transcription", "name": "RNA Transcription", "uuid": "342974d6-9083-4754-a6c5-ed1e19e40ec5", "practices": [], - "prerequisites": ["strings", "array-transformations", "objects"], + "prerequisites": [ + "strings", + "array-transformations", + "objects" + ], "difficulty": 2, - "topics": ["strings", "transforming"] + "topics": [ + "strings", + "transforming" + ] }, { "slug": "space-age", "name": "Space Age", "uuid": "d9d757ed-ebe6-4d4a-aa73-f6834221cd54", "practices": [], - "prerequisites": ["objects", "numbers", "type-conversion"], + "prerequisites": [ + "objects", + "numbers", + "type-conversion" + ], "difficulty": 2, - "topics": ["floating_point_numbers"] + "topics": [ + "floating_point_numbers" + ] }, { "slug": "pangram", "name": "Pangram", "uuid": "da5b2b34-a1a7-4970-81f9-4665d875398b", "practices": [], - "prerequisites": ["strings", "array-analysis"], + "prerequisites": [ + "strings", + "array-analysis" + ], "difficulty": 2, "topics": [ "algorithms", @@ -376,7 +546,11 @@ "name": "Bob", "uuid": "a5bf36f0-5d3c-41d4-8d54-e37e484e59cd", "practices": [], - "prerequisites": ["strings", "conditionals", "regular-expressions"], + "prerequisites": [ + "strings", + "conditionals", + "regular-expressions" + ], "difficulty": 4, "topics": [ "conditionals", @@ -399,14 +573,23 @@ "functions" ], "difficulty": 5, - "topics": ["algorithms", "conditionals", "loops", "lists", "sorting"] + "topics": [ + "algorithms", + "conditionals", + "loops", + "lists", + "sorting" + ] }, { "slug": "pascals-triangle", "name": "Pascal's Triangle", "uuid": "99493160-4673-402f-acda-62db5378148d", "practices": [], - "prerequisites": ["arrays", "for-loops"], + "prerequisites": [ + "arrays", + "for-loops" + ], "difficulty": 4, "topics": [ "conditionals", @@ -421,7 +604,11 @@ "name": "Linked List", "uuid": "ec60a578-8889-46a1-b7b8-306dbd8551d5", "practices": [], - "prerequisites": ["classes", "conditionals", "while-loops"], + "prerequisites": [ + "classes", + "conditionals", + "while-loops" + ], "difficulty": 5, "topics": [ "algorithms", @@ -438,18 +625,36 @@ "name": "Grade School", "uuid": "64637322-33bc-401f-8cec-1f9810a41f75", "practices": [], - "prerequisites": ["classes", "objects", "array-transformations"], + "prerequisites": [ + "classes", + "objects", + "array-transformations" + ], "difficulty": 5, - "topics": ["arrays", "maps", "sorting"] + "topics": [ + "arrays", + "maps", + "sorting" + ] }, { "slug": "list-ops", "name": "List Ops", "uuid": "7d9db056-5398-41b6-af3b-9707f5eb0dbc", "practices": [], - "prerequisites": ["classes", "arrays", "functions", "recursion"], + "prerequisites": [ + "classes", + "arrays", + "functions", + "recursion" + ], "difficulty": 6, - "topics": ["data_structures", "loops", "lists", "recursion"] + "topics": [ + "data_structures", + "loops", + "lists", + "recursion" + ] }, { "slug": "robot-name", @@ -524,7 +729,11 @@ "name": "Secret Handshake", "uuid": "74bbc9e3-edc5-41e0-84d7-5b2d98dd8370", "practices": [], - "prerequisites": ["bit-manipulation", "array-analysis", "errors"], + "prerequisites": [ + "bit-manipulation", + "array-analysis", + "errors" + ], "difficulty": 6, "topics": [ "algorithms", @@ -540,18 +749,31 @@ "name": "Leap", "uuid": "193a0e19-462d-4d26-a117-124f07d5a3d7", "practices": [], - "prerequisites": ["arithmetic-operators", "booleans"], + "prerequisites": [ + "arithmetic-operators", + "booleans" + ], "difficulty": 1, - "topics": ["booleans", "integers", "logic"] + "topics": [ + "booleans", + "integers", + "logic" + ] }, { "slug": "reverse-string", "name": "Reverse String", "uuid": "e84c97eb-dbec-487c-b99f-ae9924e16293", "practices": [], - "prerequisites": ["strings", "array-transformations"], + "prerequisites": [ + "strings", + "array-transformations" + ], "difficulty": 2, - "topics": ["loops", "strings"] + "topics": [ + "loops", + "strings" + ] }, { "slug": "collatz-conjecture", @@ -580,9 +802,19 @@ "name": "Triangle", "uuid": "ed3ca73a-a0f0-46b8-8013-8b6d20758c8f", "practices": [], - "prerequisites": ["numbers", "booleans", "comparison", "classes"], + "prerequisites": [ + "numbers", + "booleans", + "comparison", + "classes" + ], "difficulty": 3, - "topics": ["conditionals", "loops", "exception_handling", "integers"] + "topics": [ + "conditionals", + "loops", + "exception_handling", + "integers" + ] }, { "slug": "clock", @@ -596,14 +828,22 @@ "strings" ], "difficulty": 5, - "topics": ["dates", "globalization", "time"] + "topics": [ + "dates", + "globalization", + "time" + ] }, { "slug": "meetup", "name": "Meetup", "uuid": "98617798-b49d-4d43-9f65-7131ee73d626", "practices": [], - "prerequisites": ["dates", "array-analysis", "conditionals-switch"], + "prerequisites": [ + "dates", + "array-analysis", + "conditionals-switch" + ], "difficulty": 7, "topics": [ "conditionals", @@ -619,27 +859,55 @@ "name": "ETL", "uuid": "db16804b-0f63-445d-8beb-99e0f7218d66", "practices": [], - "prerequisites": ["objects", "array-loops", "arrays", "strings"], + "prerequisites": [ + "objects", + "array-loops", + "arrays", + "strings" + ], "difficulty": 2, - "topics": ["loops", "integers", "maps", "transforming"] + "topics": [ + "loops", + "integers", + "maps", + "transforming" + ] }, { "slug": "hamming", "name": "Hamming", "uuid": "d773c4ef-c09e-40e4-a7fe-01456cb4a12a", "practices": [], - "prerequisites": ["comparison", "errors", "for-loops"], + "prerequisites": [ + "comparison", + "errors", + "for-loops" + ], "difficulty": 2, - "topics": ["conditionals", "loops", "equality", "strings"] + "topics": [ + "conditionals", + "loops", + "equality", + "strings" + ] }, { "slug": "raindrops", "name": "Raindrops", "uuid": "f77ac2d1-cf3a-497d-bf04-b484a5a9cb37", "practices": [], - "prerequisites": ["arithmetic-operators", "strings", "conditionals"], + "prerequisites": [ + "arithmetic-operators", + "strings", + "conditionals" + ], "difficulty": 2, - "topics": ["conditionals", "integers", "strings", "transforming"] + "topics": [ + "conditionals", + "integers", + "strings", + "transforming" + ] }, { "slug": "nucleotide-count", @@ -666,18 +934,37 @@ "name": "Scrabble Score", "uuid": "11771d47-1109-4579-a62b-e0b8e9583485", "practices": [], - "prerequisites": ["strings", "array-transformations"], + "prerequisites": [ + "strings", + "array-transformations" + ], "difficulty": 5, - "topics": ["conditionals", "loops", "maps", "strings"] + "topics": [ + "conditionals", + "loops", + "maps", + "strings" + ] }, { "slug": "allergies", "name": "Allergies", "uuid": "9d33d21c-e695-427f-9f58-dd9498d61318", "practices": [], - "prerequisites": ["classes", "math", "numbers", "for-loops", "arrays"], + "prerequisites": [ + "classes", + "math", + "numbers", + "for-loops", + "arrays" + ], "difficulty": 6, - "topics": ["arrays", "bitwise_operations", "conditionals", "loops"] + "topics": [ + "arrays", + "bitwise_operations", + "conditionals", + "loops" + ] }, { "slug": "word-count", @@ -692,25 +979,45 @@ "objects" ], "difficulty": 4, - "topics": ["loops", "lists", "regular_expressions", "strings"] + "topics": [ + "loops", + "lists", + "regular_expressions", + "strings" + ] }, { "slug": "bank-account", "name": "Bank Account", "uuid": "8beedf70-28b4-4cfb-ab53-309ee6f6aa78", "practices": [], - "prerequisites": ["classes", "conditionals", "numbers"], + "prerequisites": [ + "classes", + "conditionals", + "numbers" + ], "difficulty": 3, - "topics": ["classes", "conditionals"] + "topics": [ + "classes", + "conditionals" + ] }, { "slug": "difference-of-squares", "name": "Difference of Squares", "uuid": "7dfa878c-83a6-48ef-9170-b6633d51d601", "practices": [], - "prerequisites": ["classes", "for-loops"], + "prerequisites": [ + "classes", + "for-loops" + ], "difficulty": 3, - "topics": ["algorithms", "loops", "integers", "math"] + "topics": [ + "algorithms", + "loops", + "integers", + "math" + ] }, { "slug": "perfect-numbers", @@ -725,43 +1032,82 @@ "for-loops" ], "difficulty": 3, - "topics": ["arrays", "conditionals", "loops", "integers", "math"] + "topics": [ + "arrays", + "conditionals", + "loops", + "integers", + "math" + ] }, { "slug": "complex-numbers", "name": "Complex Numbers", "uuid": "ea9a9a3e-ae6a-470d-8bb4-2afead507f24", "practices": [], - "prerequisites": ["classes", "numbers", "math"], + "prerequisites": [ + "classes", + "numbers", + "math" + ], "difficulty": 4, - "topics": ["math"] + "topics": [ + "math" + ] }, { "slug": "luhn", "name": "Luhn", "uuid": "28872cc9-f1ef-487f-9a79-6bf7983148bf", "practices": [], - "prerequisites": ["numbers", "conditionals", "array-transformations"], + "prerequisites": [ + "numbers", + "conditionals", + "array-transformations" + ], "difficulty": 4, - "topics": ["conditionals", "loops", "integers", "strings"] + "topics": [ + "conditionals", + "loops", + "integers", + "strings" + ] }, { "slug": "prime-factors", "name": "Prime Factors", "uuid": "f43cdddf-eea8-4c4a-8359-c69e20ff9661", "practices": [], - "prerequisites": ["while-loops", "conditionals", "arrays"], + "prerequisites": [ + "while-loops", + "conditionals", + "arrays" + ], "difficulty": 4, - "topics": ["algorithms", "conditionals", "loops", "integers", "math"] + "topics": [ + "algorithms", + "conditionals", + "loops", + "integers", + "math" + ] }, { "slug": "grains", "name": "Grains", "uuid": "d003975a-9045-4f03-9ad9-c15db584dc13", "practices": [], - "prerequisites": ["conditionals", "errors", "numbers", "math"], + "prerequisites": [ + "conditionals", + "errors", + "numbers", + "math" + ], "difficulty": 5, - "topics": ["loops", "integers"] + "topics": [ + "loops", + "integers" + ] }, { "slug": "pythagorean-triplet", @@ -777,7 +1123,13 @@ "conditionals" ], "difficulty": 5, - "topics": ["algorithms", "conditionals", "loops", "integers", "math"] + "topics": [ + "algorithms", + "conditionals", + "loops", + "integers", + "math" + ] }, { "slug": "palindrome-products", @@ -816,7 +1168,10 @@ "comparison" ], "difficulty": 1, - "topics": ["filtering", "strings"] + "topics": [ + "filtering", + "strings" + ] }, { "slug": "acronym", @@ -829,7 +1184,12 @@ "array-transformations" ], "difficulty": 2, - "topics": ["loops", "regular_expressions", "strings", "transforming"] + "topics": [ + "loops", + "regular_expressions", + "strings", + "transforming" + ] }, { "slug": "high-scores", @@ -843,16 +1203,25 @@ "classes" ], "difficulty": 2, - "topics": ["arrays"] + "topics": [ + "arrays" + ] }, { "slug": "isogram", "name": "Isogram", "uuid": "3df577af-2854-40ee-b211-9b608dbbad58", "practices": [], - "prerequisites": ["strings", "arrays", "regular-expressions"], + "prerequisites": [ + "strings", + "arrays", + "regular-expressions" + ], "difficulty": 2, - "topics": ["filtering", "strings"] + "topics": [ + "filtering", + "strings" + ] }, { "slug": "matching-brackets", @@ -886,7 +1255,10 @@ "regular-expressions" ], "difficulty": 3, - "topics": ["parsing", "transforming"] + "topics": [ + "parsing", + "transforming" + ] }, { "slug": "scale-generator", @@ -900,7 +1272,12 @@ "array-transformations" ], "difficulty": 3, - "topics": ["loops", "pattern_recognition", "strings", "arrays"] + "topics": [ + "loops", + "pattern_recognition", + "strings", + "arrays" + ] }, { "slug": "series", @@ -916,7 +1293,12 @@ "array-transformations" ], "difficulty": 3, - "topics": ["loops", "exception_handling", "strings", "text_formatting"] + "topics": [ + "loops", + "exception_handling", + "strings", + "text_formatting" + ] }, { "slug": "largest-series-product", @@ -946,7 +1328,12 @@ "name": "Transpose", "uuid": "9c140fb7-cc8b-411b-b613-a0e0081a9c3f", "practices": [], - "prerequisites": ["arrays", "for-loops", "strings", "conditionals"], + "prerequisites": [ + "arrays", + "for-loops", + "strings", + "conditionals" + ], "difficulty": 3, "topics": [ "arrays", @@ -970,7 +1357,11 @@ "template-strings" ], "difficulty": 4, - "topics": ["files", "searching", "text_formatting"] + "topics": [ + "files", + "searching", + "text_formatting" + ] }, { "slug": "rectangles", @@ -979,14 +1370,24 @@ "practices": [], "prerequisites": [], "difficulty": 4, - "topics": ["arrays", "conditionals", "loops", "matrices", "strings"] + "topics": [ + "arrays", + "conditionals", + "loops", + "matrices", + "strings" + ] }, { "slug": "spiral-matrix", "name": "Spiral Matrix", "uuid": "c1abafcc-0d44-4fb5-afae-bff3ce2e1b39", "practices": [], - "prerequisites": ["arrays", "for-loops", "conditionals"], + "prerequisites": [ + "arrays", + "for-loops", + "conditionals" + ], "difficulty": 4, "topics": [ "arrays", @@ -1038,7 +1439,11 @@ "practices": [], "prerequisites": [], "difficulty": 8, - "topics": ["domain_specific_languages", "parsing", "stacks"] + "topics": [ + "domain_specific_languages", + "parsing", + "stacks" + ] }, { "slug": "food-chain", @@ -1047,14 +1452,21 @@ "practices": [], "prerequisites": [], "difficulty": 4, - "topics": ["algorithms", "text_formatting"] + "topics": [ + "algorithms", + "text_formatting" + ] }, { "slug": "house", "name": "House", "uuid": "a8b7187d-12eb-4efc-b966-87823654ccda", "practices": [], - "prerequisites": ["for-loops", "arrays", "strings"], + "prerequisites": [ + "for-loops", + "arrays", + "strings" + ], "difficulty": 4 }, { @@ -1114,7 +1526,12 @@ "name": "Twelve Days", "uuid": "64de1776-d5c6-43fe-9abf-7e3aa08ae342", "practices": [], - "prerequisites": ["arrays", "conditionals", "for-loops", "strings"], + "prerequisites": [ + "arrays", + "conditionals", + "for-loops", + "strings" + ], "difficulty": 4, "topics": [ "conditionals", @@ -1132,7 +1549,11 @@ "practices": [], "prerequisites": [], "difficulty": 6, - "topics": ["promises", "error_handling", "higher_order_functions"] + "topics": [ + "promises", + "error_handling", + "higher_order_functions" + ] }, { "slug": "yacht", @@ -1147,7 +1568,12 @@ "sets" ], "difficulty": 4, - "topics": ["arrays", "conditionals", "filtering", "games"] + "topics": [ + "arrays", + "conditionals", + "filtering", + "games" + ] }, { "slug": "beer-song", @@ -1161,7 +1587,11 @@ "template-strings" ], "difficulty": 5, - "topics": ["conditionals", "loops", "strings"] + "topics": [ + "conditionals", + "loops", + "strings" + ] }, { "slug": "resistor-color-trio", @@ -1176,7 +1606,10 @@ "template-strings" ], "difficulty": 5, - "topics": ["conditionals", "loops"] + "topics": [ + "conditionals", + "loops" + ] }, { "slug": "dominoes", @@ -1192,7 +1625,9 @@ "while-loops" ], "difficulty": 6, - "topics": ["graph_theory"] + "topics": [ + "graph_theory" + ] }, { "slug": "say", @@ -1224,7 +1659,11 @@ "name": "Diamond", "uuid": "6a1eee0e-f8d4-446d-9c52-f31c3700af1b", "practices": [], - "prerequisites": ["arrays", "for-loops", "strings"], + "prerequisites": [ + "arrays", + "for-loops", + "strings" + ], "difficulty": 5, "topics": [ "arrays", @@ -1250,7 +1689,11 @@ "while-loops" ], "difficulty": 5, - "topics": ["algorithms", "floating_point_numbers", "math"] + "topics": [ + "algorithms", + "floating_point_numbers", + "math" + ] }, { "slug": "sublist", @@ -1264,16 +1707,28 @@ "conditionals" ], "difficulty": 4, - "topics": ["arrays", "lists"] + "topics": [ + "arrays", + "lists" + ] }, { "slug": "binary-search-tree", "name": "Binary Search Tree", "uuid": "6c4b4e25-c115-4789-9058-d28ab6ca0d26", "practices": [], - "prerequisites": ["classes", "conditionals", "recursion"], + "prerequisites": [ + "classes", + "conditionals", + "recursion" + ], "difficulty": 6, - "topics": ["algorithms", "conditionals", "loops", "recursion"] + "topics": [ + "algorithms", + "conditionals", + "loops", + "recursion" + ] }, { "slug": "custom-set", @@ -1313,7 +1768,13 @@ "while-loops" ], "difficulty": 7, - "topics": ["algorithms", "arrays", "conditionals", "loops", "recursion"] + "topics": [ + "algorithms", + "arrays", + "conditionals", + "loops", + "recursion" + ] }, { "slug": "circular-buffer", @@ -1342,16 +1803,30 @@ "name": "Simple Linked List", "uuid": "a1591026-2f02-45f9-b189-24b2359eb43f", "practices": [], - "prerequisites": ["arrays", "classes", "conditionals", "for-loops"], + "prerequisites": [ + "arrays", + "classes", + "conditionals", + "for-loops" + ], "difficulty": 8, - "topics": ["arrays", "data_structures", "lists"] + "topics": [ + "arrays", + "data_structures", + "lists" + ] }, { "slug": "word-search", "name": "Word Search", "uuid": "0125f5a7-8883-4553-a6c1-45f19544af5e", "practices": [], - "prerequisites": ["arrays", "array-loops", "classes", "conditionals"], + "prerequisites": [ + "arrays", + "array-loops", + "classes", + "conditionals" + ], "difficulty": 8, "topics": [ "arrays", @@ -1377,7 +1852,10 @@ "rest-and-spread" ], "difficulty": 5, - "topics": ["bitwise_operations", "transforming"] + "topics": [ + "bitwise_operations", + "transforming" + ] }, { "slug": "two-bucket", @@ -1419,7 +1897,10 @@ "rest-and-spread" ], "difficulty": 7, - "topics": ["algorithms", "games"] + "topics": [ + "algorithms", + "games" + ] }, { "slug": "connect", @@ -1487,7 +1968,12 @@ "prerequisites": [], "difficulty": 5, "status": "deprecated", - "topics": ["algorithms", "callbacks", "loops", "lists"] + "topics": [ + "algorithms", + "callbacks", + "loops", + "lists" + ] }, { "slug": "flatten-array", @@ -1496,7 +1982,10 @@ "practices": [], "prerequisites": [], "difficulty": 5, - "topics": ["arrays", "recursion"] + "topics": [ + "arrays", + "recursion" + ] }, { "slug": "nth-prime", @@ -1521,7 +2010,13 @@ "practices": [], "prerequisites": [], "difficulty": 5, - "topics": ["conditionals", "loops", "integers", "math", "recursion"] + "topics": [ + "conditionals", + "loops", + "integers", + "math", + "recursion" + ] }, { "slug": "rotational-cipher", @@ -1530,7 +2025,12 @@ "practices": [], "prerequisites": [], "difficulty": 2, - "topics": ["conditionals", "strings", "text_formatting", "transforming"] + "topics": [ + "conditionals", + "strings", + "text_formatting", + "transforming" + ] }, { "slug": "diffie-hellman", @@ -1555,7 +2055,12 @@ "practices": [], "prerequisites": [], "difficulty": 4, - "topics": ["algorithms", "arrays", "filtering", "math"] + "topics": [ + "algorithms", + "arrays", + "filtering", + "math" + ] }, { "slug": "atbash-cipher", @@ -1612,7 +2117,12 @@ "name": "Kindergarten Garden", "uuid": "13444eff-005a-405e-9737-7b64d99c1a61", "practices": [], - "prerequisites": ["arrays", "classes", "strings", "rest-and-spread"], + "prerequisites": [ + "arrays", + "classes", + "strings", + "rest-and-spread" + ], "difficulty": 7, "topics": [ "arrays", @@ -1629,7 +2139,13 @@ "practices": [], "prerequisites": [], "difficulty": 5, - "topics": ["conditionals", "loops", "integers", "lists", "math"] + "topics": [ + "conditionals", + "loops", + "integers", + "lists", + "math" + ] }, { "slug": "change", @@ -1638,7 +2154,11 @@ "practices": [], "prerequisites": [], "difficulty": 8, - "topics": ["algorithms", "performance", "searching"] + "topics": [ + "algorithms", + "performance", + "searching" + ] }, { "slug": "point-mutations", @@ -1656,7 +2176,12 @@ "practices": [], "prerequisites": [], "difficulty": 1, - "topics": ["algorithms", "conditionals", "loops", "strings"] + "topics": [ + "algorithms", + "conditionals", + "loops", + "strings" + ] }, { "slug": "armstrong-numbers", @@ -1665,7 +2190,10 @@ "practices": [], "prerequisites": [], "difficulty": 2, - "topics": ["algorithms", "math"] + "topics": [ + "algorithms", + "math" + ] }, { "slug": "dnd-character", @@ -1674,7 +2202,10 @@ "practices": [], "prerequisites": [], "difficulty": 2, - "topics": ["classes", "randomness"] + "topics": [ + "classes", + "randomness" + ] }, { "slug": "run-length-encoding", @@ -1774,7 +2305,12 @@ "practices": [], "prerequisites": [], "difficulty": 4, - "topics": ["bitwise_operations", "algorithms", "loops", "math"] + "topics": [ + "bitwise_operations", + "algorithms", + "loops", + "math" + ] }, { "slug": "trinary", @@ -1816,7 +2352,11 @@ "practices": [], "prerequisites": [], "difficulty": 7, - "topics": ["algorithms", "arrays", "games"] + "topics": [ + "algorithms", + "arrays", + "games" + ] }, { "slug": "queen-attack", @@ -1842,7 +2382,11 @@ "practices": [], "prerequisites": [], "difficulty": 8, - "topics": ["algorithms", "events", "reactive_programming"] + "topics": [ + "algorithms", + "events", + "reactive_programming" + ] }, { "slug": "zipper", @@ -1851,43 +2395,80 @@ "practices": [], "prerequisites": [], "difficulty": 8, - "topics": ["recursion", "searching", "trees"] + "topics": [ + "recursion", + "searching", + "trees" + ] }, { "slug": "zebra-puzzle", "name": "Zebra Puzzle", "uuid": "3a34cb49-546f-4aae-b49e-7d5b25db7ebb", "practices": [], - "prerequisites": ["arrays", "classes", "for-loops", "maps"], + "prerequisites": [ + "arrays", + "classes", + "for-loops", + "maps" + ], "difficulty": 7, - "topics": ["algorithms", "logic"] + "topics": [ + "algorithms", + "logic" + ] }, { "slug": "tournament", "name": "Tournament", "uuid": "e5e5363d-4e9a-478f-8b18-e578f3721ac5", "practices": [], - "prerequisites": ["arrays", "strings", "for-loops", "objects"], + "prerequisites": [ + "arrays", + "strings", + "for-loops", + "objects" + ], "difficulty": 3, - "topics": ["parsing", "strings"] + "topics": [ + "parsing", + "strings" + ] }, { "slug": "rail-fence-cipher", "name": "Rail Fence Cipher", "uuid": "5f0352e5-0988-434a-82c7-f6810d41d63a", "practices": [], - "prerequisites": ["arrays", "strings", "for-loops", "conditionals"], + "prerequisites": [ + "arrays", + "strings", + "for-loops", + "conditionals" + ], "difficulty": 3, - "topics": ["parsing", "strings", "iteration"] + "topics": [ + "parsing", + "strings", + "iteration" + ] }, { "slug": "rest-api", "name": "REST API", "uuid": "75b4816d-a5d7-4840-92d6-7249c9e8beeb", "practices": [], - "prerequisites": ["arrays", "classes", "array-loops", "objects"], + "prerequisites": [ + "arrays", + "classes", + "array-loops", + "objects" + ], "difficulty": 6, - "topics": ["algorithms", "logic"] + "topics": [ + "algorithms", + "logic" + ] }, { "slug": "go-counting", @@ -1903,7 +2484,10 @@ "conditionals-switch" ], "difficulty": 5, - "topics": ["algorithms", "logic"] + "topics": [ + "algorithms", + "logic" + ] }, { "slug": "knapsack", @@ -1918,7 +2502,10 @@ "conditionals" ], "difficulty": 5, - "topics": ["algorithms", "logic"] + "topics": [ + "algorithms", + "logic" + ] }, { "slug": "satellite", diff --git a/exercises/practice/pop-count/package.json b/exercises/practice/pop-count/package.json index e40a84455c..3330397e03 100644 --- a/exercises/practice/pop-count/package.json +++ b/exercises/practice/pop-count/package.json @@ -1,5 +1,5 @@ { - "name": "@exercism/javascript-practice-pop-count", + "name": "@exercism/javascript-pop-count", "description": "Exercism practice exercise on pop-count", "author": "Katrina Owen", "contributors": [