Przeglądaj źródła

cleanup, reformatting

Richard Köhl 3 lat temu
rodzic
commit
ca64745a4c
6 zmienionych plików z 157 dodań i 118 usunięć
  1. 2 0
      .editorconfig
  2. 0 12
      .eslintignore
  3. 0 23
      .eslintrc
  4. 3 0
      .vscode/settings.json
  5. 152 15
      src/prime.class.test.ts
  6. 0 68
      tsconfig.json

+ 2 - 0
.editorconfig

@@ -8,3 +8,5 @@ insert_final_newline = true
 charset = utf-8
 indent_style = space
 indent_size = 2
+quote_type = single
+max_line_length = 180

+ 0 - 12
.eslintignore

@@ -1,12 +0,0 @@
-!.meta
-
-# Protected or generated
-.git
-.vscode
-
-# When using npm
-node_modules/*
-
-# Configuration files
-babel.config.js
-jest.config.js

+ 0 - 23
.eslintrc

@@ -1,23 +0,0 @@
-{
-  "root": true,
-  "parser": "@typescript-eslint/parser",
-  "parserOptions": {
-    "project": "./tsconfig.json",
-    "ecmaFeatures": {
-      "jsx": true
-    },
-    "ecmaVersion": 2020,
-    "sourceType": "module"
-  },
-  "extends": "@exercism/eslint-config-typescript",
-  "env": {
-    "jest": true
-  },
-  "overrides": [
-    {
-      "files": [".meta/proof.ci.ts", ".meta/exemplar.ts", "*.test.ts"],
-      "excludedFiles": ["custom.test.ts"],
-      "extends": "@exercism/eslint-config-typescript/maintainers"
-    }
-  ]
-}

+ 3 - 0
.vscode/settings.json

@@ -0,0 +1,3 @@
+{
+  "deno.unstable": true
+}

+ 152 - 15
src/prime.class.test.ts

@@ -1,23 +1,26 @@
-import { assert, assertEquals } from "https://deno.land/std@0.161.0/testing/asserts.ts";
+import {
+  assert,
+  assertEquals,
+} from "https://deno.land/std@0.161.0/testing/asserts.ts";
 import { Prime } from "./prime.class.ts";
 
-Deno.test('Prime class', async (t) => {
-  await t.step('static method isPrime()', async (t) => {
-    await t.step('validate prime numbers', () => {
+Deno.test("Prime class", async (t) => {
+  await t.step("static method isPrime()", async (t) => {
+    await t.step("validate prime numbers", () => {
       [2, 3, 5, 7, 11, 13].forEach((number) => {
         assert(Prime.isPrime(number), `${number} is a prime`);
       });
     });
 
-    await t.step('validate non-prime numbers', () => {
+    await t.step("validate non-prime numbers", () => {
       [1, 4, 6, 8, 9, 10, 15].forEach((number) => {
         assert(!Prime.isPrime(number), `${number} is NOT a prime`);
       });
     });
   });
 
-  await t.step('static method factors()', async (t) => {
-    await t.step('returns the list of prime factors', () => {
+  await t.step("static method factors()", async (t) => {
+    await t.step("returns the list of prime factors", () => {
       assertEquals(Prime.factors(13), [13]);
       assertEquals(Prime.factors(625), [5, 5, 5, 5]);
       assertEquals(Prime.factors(901255), [5, 17, 23, 461]);
@@ -25,28 +28,162 @@ Deno.test('Prime class', async (t) => {
     });
   });
 
-  await t.step('static method isGood()', async (t) => {
-    await t.step('validate good prime numbers (the deep version)', () => {
-      [5, 11, 17, 29, 37, 41, 53, 59, 67, 71, 97, 101, 127, 149, 179, 191, 223, 227, 251, 257, 269, 307, 311, 331, 347, 419, 431, 541, 557, 563, 569, 587, 593, 599, 641, 727, 733, 739, 809, 821, 853, 929, 937, 967].forEach((number) => {
+  await t.step("static method isGood()", async (t) => {
+    await t.step("validate good prime numbers (the deep version)", () => {
+      [
+        5,
+        11,
+        17,
+        29,
+        37,
+        41,
+        53,
+        59,
+        67,
+        71,
+        97,
+        101,
+        127,
+        149,
+        179,
+        191,
+        223,
+        227,
+        251,
+        257,
+        269,
+        307,
+        311,
+        331,
+        347,
+        419,
+        431,
+        541,
+        557,
+        563,
+        569,
+        587,
+        593,
+        599,
+        641,
+        727,
+        733,
+        739,
+        809,
+        821,
+        853,
+        929,
+        937,
+        967,
+      ].forEach((number) => {
         assert(Prime.isGood(number), `${number} is a good prime`);
       });
     });
 
-    await t.step('validate non-prime numbers', () => {
+    await t.step("validate non-prime numbers", () => {
       [1, 4, 6, 8, 9, 10, 15, 79, 137].forEach((number) => {
         assert(!Prime.isGood(number), `${number} is NOT a good prime`);
       });
     });
   });
 
-  await t.step('static method isGoodWeak()', async (t) => {
-    await t.step('validate good prime numbers (the weak version)', () => {
-      [5, 11, 17, 29, 37, 41, 53, 59, 67, 71, 79, 97, 101, 107, 127, 137, 149, 157, 163, 173, 179, 191, 197, 211, 223, 227, 239, 251, 257, 263, 269, 277, 281, 307, 311, 331, 347, 367, 373, 379, 397, 419, 431, 439, 457, 461, 479, 487, 499, 521, 541, 557, 563, 569, 587, 593, 599, 607, 613, 617, 631, 641, 653, 659, 673, 701, 719, 727, 733, 739, 751, 757, 769, 787, 809, 821, 827, 853, 857, 877, 881, 907, 929, 937, 947, 967, 977, 991].forEach((number) => {
+  await t.step("static method isGoodWeak()", async (t) => {
+    await t.step("validate good prime numbers (the weak version)", () => {
+      [
+        5,
+        11,
+        17,
+        29,
+        37,
+        41,
+        53,
+        59,
+        67,
+        71,
+        79,
+        97,
+        101,
+        107,
+        127,
+        137,
+        149,
+        157,
+        163,
+        173,
+        179,
+        191,
+        197,
+        211,
+        223,
+        227,
+        239,
+        251,
+        257,
+        263,
+        269,
+        277,
+        281,
+        307,
+        311,
+        331,
+        347,
+        367,
+        373,
+        379,
+        397,
+        419,
+        431,
+        439,
+        457,
+        461,
+        479,
+        487,
+        499,
+        521,
+        541,
+        557,
+        563,
+        569,
+        587,
+        593,
+        599,
+        607,
+        613,
+        617,
+        631,
+        641,
+        653,
+        659,
+        673,
+        701,
+        719,
+        727,
+        733,
+        739,
+        751,
+        757,
+        769,
+        787,
+        809,
+        821,
+        827,
+        853,
+        857,
+        877,
+        881,
+        907,
+        929,
+        937,
+        947,
+        967,
+        977,
+        991,
+      ].forEach((number) => {
         assert(Prime.isGoodWeak(number), `${number} is a weak good prime`);
       });
     });
 
-    await t.step('validate non-prime numbers', () => {
+    await t.step("validate non-prime numbers", () => {
       [1, 4, 6, 8, 9, 10, 15, 978, 999, 1000].forEach((number) => {
         assert(!Prime.isGood(number), `${number} is NOT a weak good prime`);
       });

+ 0 - 68
tsconfig.json

@@ -1,68 +0,0 @@
-{
-  "compilerOptions": {
-    /* Basic Options */
-    "target": "esnext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */,
-    "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
-    "lib": [
-      "esnext",
-      "es2016",
-      "es2017"
-    ] /* Specify library files to be included in the compilation. */,
-    // "allowJs": true,                       /* Allow javascript files to be compiled. */
-    // "checkJs": true,                       /* Report errors in .js files. */
-    // "jsx": "preserve",                     /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
-    // "declaration": true,                   /* Generates corresponding '.d.ts' file. */
-    // "declarationMap": true,                /* Generates a sourcemap for each corresponding '.d.ts' file. */
-    // "sourceMap": true,                        /* Generates corresponding '.map' file. */
-    // "outFile": "./",                       /* Concatenate and emit output to single file. */
-    // "outDir": "./build",                      /* Redirect output structure to the directory. */
-    // "rootDirs": ["./"],                    /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
-    // "composite": true,                     /* Enable project compilation */
-    // "removeComments": true,                /* Do not emit comments to output. */
-    "noEmit": true /* Do not emit outputs. */,
-    // "importHelpers": true,                 /* Import emit helpers from 'tslib'. */
-    // "downlevelIteration": true,            /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
-    "isolatedModules": true /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */,
-    // "noEmitOnError": true,                    /* Do not emit outputs when compilation fails. */
-
-    /* Strict Type-Checking Options */
-    "strict": true /* Enable all strict type-checking options. */,
-    // "noImplicitAny": true,                 /* Raise error on expressions and declarations with an implied 'any' type. */
-    // "strictNullChecks": true,              /* Enable strict null checks. */
-    // "strictFunctionTypes": true,           /* Enable strict checking of function types. */
-    // "strictBindCallApply": true,           /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
-    // "strictPropertyInitialization": true,  /* Enable strict checking of property initialization in classes. */
-    // "noImplicitThis": true,                /* Raise error on 'this' expressions with an implied 'any' type. */
-    // "alwaysStrict": true,                  /* Parse in strict mode and emit "use strict" for each source file. */
-
-    /* Additional Checks */
-    // "noUnusedLocals": true,                /* Report errors on unused locals. */
-    "noUnusedParameters": true /* Report errors on unused parameters. */,
-    // "noImplicitReturns": true,             /* Report error when not all code paths in function return a value. */
-    // "noFallthroughCasesInSwitch": true,    /* Report errors for fallthrough cases in switch statement. */
-
-    /* Module Resolution Options */
-    "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
-    // "baseUrl": "./",                       /* Base directory to resolve non-absolute module names. */
-    // "paths": { "~src/*": ["./src/*"] },                           /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
-    // "rootDirs": [],                        /* List of root folders whose combined content represents the structure of the project at runtime. */
-    // "typeRoots": [],                       /* List of folders to include type definitions from. */
-    // "types": [],                           /* Type declaration files to be included in compilation. */
-    "allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */,
-    "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
-    // "preserveSymlinks": true,              /* Do not resolve the real path of symlinks. */
-
-    /* Source Map Options */
-    // "sourceRoot": "",                      /* Specify the location where debugger should locate TypeScript files instead of source locations. */
-    // "mapRoot": "",                         /* Specify the location where debugger should locate map files instead of generated locations. */
-    // "inlineSourceMap": true,               /* Emit a single file with source maps instead of having a separate file. */
-    // "inlineSources": true,                 /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
-
-    /* Experimental Options */
-    // "experimentalDecorators": true,        /* Enables experimental support for ES7 decorators. */
-    // "emitDecoratorMetadata": true,         /* Enables experimental support for emitting type metadata for decorators. */
-  },
-  "compileOnSave": true,
-  "include": ["src/*", ".meta/*"],
-  "exclude": ["node_modules"]
-}