From 4bc5ab26c52cc68e310307a40fb65805dcdad112 Mon Sep 17 00:00:00 2001 From: Tom Hu Date: Fri, 8 Mar 2024 19:49:10 -0800 Subject: [PATCH] fix: move to python --- .github/workflows/main.yml | 6 ++---- demo/__init__.py | 0 demo/calculator.py | 15 ++++++++++++++ demo/calculator/calculator.test.ts | 11 ---------- demo/calculator/calculator.ts | 10 ---------- demo/calculator_test.py | 31 +++++++++++++++++++++++++++++ demo/coverage-test/coverage.test.ts | 11 ---------- demo/coverage-test/coverage.ts | 21 ------------------- demo/requirements.txt | 1 + 9 files changed, 49 insertions(+), 57 deletions(-) create mode 100644 demo/__init__.py create mode 100644 demo/calculator.py delete mode 100644 demo/calculator/calculator.test.ts delete mode 100644 demo/calculator/calculator.ts create mode 100644 demo/calculator_test.py delete mode 100644 demo/coverage-test/coverage.test.ts delete mode 100644 demo/coverage-test/coverage.ts create mode 100644 demo/requirements.txt diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b0e041c..b13c129 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,11 +11,9 @@ jobs: - name: Checkout uses: actions/checkout@v4.1.1 - name: Install dependencies - run: npm install - - name: Lint - run: npm run lint + run: pip install -r demo/requirements.txt - name: Run tests and collect coverage - run: npm run test + run: pytest --cov demo - name: ls run: ls -al dist/ - name: Upload coverage to Codecov (script) diff --git a/demo/__init__.py b/demo/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/demo/calculator.py b/demo/calculator.py new file mode 100644 index 0000000..8a976b2 --- /dev/null +++ b/demo/calculator.py @@ -0,0 +1,15 @@ +class Calculator: + + def add(x, y): + return x + y + + def subtract(x, y): + return x - y + + def multiply(x, y): + return x * y + + def divide(x, y): + if y == 0: + return 'Cannot divide by 0' + return x * 1.0 / y diff --git a/demo/calculator/calculator.test.ts b/demo/calculator/calculator.test.ts deleted file mode 100644 index 60a3cd1..0000000 --- a/demo/calculator/calculator.test.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Calculator from './calculator'; - -test('adds 2 + 3 to equal 5', () => { - const calc = new Calculator(); - expect(calc.add(2, 3)).toBe(5); -}); - -test('subtracts 2 - 3 to equal -1', () => { - const calc = new Calculator(); - expect(calc.subtract(2, 3)).toBe(-1); -}); diff --git a/demo/calculator/calculator.ts b/demo/calculator/calculator.ts deleted file mode 100644 index 6b7c042..0000000 --- a/demo/calculator/calculator.ts +++ /dev/null @@ -1,10 +0,0 @@ -export default class Calculator { - - add(x : number, y : number) : number { - return x + y; - } - - subtract(x: number, y: number) : number { - return x - y; - } -} diff --git a/demo/calculator_test.py b/demo/calculator_test.py new file mode 100644 index 0000000..1e2eb04 --- /dev/null +++ b/demo/calculator_test.py @@ -0,0 +1,31 @@ +3from .calculator import Calculator + + +def test_add(): + assert Calculator.add(1, 2) == 3.0 + assert Calculator.add(1.0, 2.0) == 3.0 + assert Calculator.add(0, 2.0) == 2.0 + assert Calculator.add(2.0, 0) == 2.0 + assert Calculator.add(-4, 2.0) == -2.0 + +def test_subtract(): + assert Calculator.subtract(1, 2) == -1.0 + assert Calculator.subtract(2, 1) == 1.0 + assert Calculator.subtract(1.0, 2.0) == -1.0 + assert Calculator.subtract(0, 2.0) == -2.0 + assert Calculator.subtract(2.0, 0.0) == 2.0 + assert Calculator.subtract(-4, 2.0) == -6.0 + +def test_multiply(): + assert Calculator.multiply(1, 2) == 2.0 + assert Calculator.multiply(1.0, 2.0) == 2.0 + assert Calculator.multiply(0, 2.0) == 0.0 + assert Calculator.multiply(2.0, 0.0) == 0.0 + assert Calculator.multiply(-4, 2.0) == -8.0 + +def test_divide(): + # assert Calculator.divide(1, 2) == 0.5 + assert Calculator.divide(1.0, 2.0) == 0.5 + assert Calculator.divide(0, 2.0) == 0 + assert Calculator.divide(-4, 2.0) == -2.0 + # assert Calculator.divide(2.0, 0.0) == 'Cannot divide by 0' diff --git a/demo/coverage-test/coverage.test.ts b/demo/coverage-test/coverage.test.ts deleted file mode 100644 index 6755539..0000000 --- a/demo/coverage-test/coverage.test.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Coverage from './coverage'; - -test('test uncovered if', () => { - const coverageObj = new Coverage(); - expect(coverageObj.uncovered_if()).toEqual(false); -}); - -test('fully covered', () => { - const coverageObj = new Coverage(); - expect(coverageObj.fully_covered()).toEqual(true); -}); diff --git a/demo/coverage-test/coverage.ts b/demo/coverage-test/coverage.ts deleted file mode 100644 index f6d7bb7..0000000 --- a/demo/coverage-test/coverage.ts +++ /dev/null @@ -1,21 +0,0 @@ -export default class Coverage { - - //This function is tested and part of it is uncovered - uncovered_if = (a = true) => { - if (a == true) { - return false - } else { - return true - } - } - - //This function will be fully covered - fully_covered = () => { - return true - } - - //This function will not be tested by unit tests - uncovered = () => { - return true - } -} diff --git a/demo/requirements.txt b/demo/requirements.txt new file mode 100644 index 0000000..c75c448 --- /dev/null +++ b/demo/requirements.txt @@ -0,0 +1 @@ +pytest-cov