From 29f1bfa9ae97a379ca94c6a97c75840df7f83a91 Mon Sep 17 00:00:00 2001 From: CtrlAltDelight Date: Tue, 12 Sep 2023 14:01:47 -0400 Subject: [PATCH 1/2] Did it --- .github/workflows/test.yaml | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 769f4de..871b21b 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,2 +1,32 @@ # name: test -# Fill in the necessary code to run the jest test script whenever a pull request is opened or updated \ No newline at end of file +# Fill in the necessary code to run the jest test script whenever a pull request is opened or updated + +name: Node.js CI + +on: + pull_request: + branches: ["main"] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x, 18.x] + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: "npm" + - run: npm ci + - run: npm run build --if-present + - run: npm test + + - uses: actions/upload-artifact@v2 + with: + name: dist-artifact-${{ matrix.node-version }} + path: dist/ From b7437ecf7721310c59d3dfe845cfcd9a059837fa Mon Sep 17 00:00:00 2001 From: CtrlAltDelight Date: Tue, 12 Sep 2023 14:23:45 -0400 Subject: [PATCH 2/2] finished --- src/secret.ts | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/secret.ts b/src/secret.ts index 2a2e1da..3c68548 100644 --- a/src/secret.ts +++ b/src/secret.ts @@ -13,7 +13,7 @@ // 7, 4 -> 3 // All inputs must be >= 1 export function secret_1(_num1: number, _num2: number): number { - return 0; + return _num1 % _num2; } // Implements the following input to output mapping: @@ -23,7 +23,7 @@ export function secret_1(_num1: number, _num2: number): number { // 7, 4 -> 2401 // All inputs must be >= 1 export function secret_2(_num1: number, _num2: number): number { - return 0; + return _num1 ** _num2; } // Implements the following input to output mapping: @@ -33,7 +33,7 @@ export function secret_2(_num1: number, _num2: number): number { // 256 -> 16 // All inputs must be >= 0 export function secret_3(_num1: number): number { - return 0; + return Math.sqrt(_num1); } // Implements the following input to output mapping: @@ -43,7 +43,15 @@ export function secret_3(_num1: number): number { // 7 -> 5040 // All inputs must be >= 0 export function secret_4(_num1: number): number { - return 0; + if (_num1 < 0) { + throw new Error("Factorial is not defined for negative numbers"); + } + + let result = 1; + for (let i = 2; i <= _num1; i++) { + result *= i; + } + return result; } // Implements the following input to output mapping: @@ -53,5 +61,10 @@ export function secret_4(_num1: number): number { // 7 -> 13 // All inputs must be >= 1 export function secret_5(_num1: number): number { - return 0; + let a = 0, + b = 1; + for (let i = 0; i < _num1; i++) { + [a, b] = [b, a + b]; + } + return a; }