diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 769f4de..5f60a5e 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,2 +1,26 @@ # 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: test +on: + pull_request: + branches: [ main ] + +jobs: + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Use node 18.x + uses: actions/setup-node@v2 + with: + node-version: 18.X + + - name: Install dependencies + run: npm ci + + - name: Run Jest Tests + run: npm test \ No newline at end of file diff --git a/src/secret.ts b/src/secret.ts index 2a2e1da..ed71e15 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 Math.pow(_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,11 @@ export function secret_3(_num1: number): number { // 7 -> 5040 // All inputs must be >= 0 export function secret_4(_num1: number): number { - return 0; + let fact: number = 1; + for(let i: number = 1; i <= _num1; i++) { + fact = fact * i; + } + return fact; } // Implements the following input to output mapping: @@ -53,5 +57,20 @@ export function secret_4(_num1: number): number { // 7 -> 13 // All inputs must be >= 1 export function secret_5(_num1: number): number { - return 0; + if (_num1 <= 0) { + return 0; + } else if (_num1 === 1) { + return 1; + } else { + let fib1: number = 0; + let fib2: number = 1; + let result: number = 0; + + for (let i: number = 2; i <= _num1; i++) { + result = fib1 + fib2; + fib1 = fib2; + fib2 = result; + } + return result; + } }