fix: move to python

This commit is contained in:
Tom Hu 2024-03-08 19:49:10 -08:00
parent 0862c08e2f
commit 4bc5ab26c5
No known key found for this signature in database
GPG key ID: 79155678363963D2
9 changed files with 49 additions and 57 deletions

View file

@ -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)

0
demo/__init__.py Normal file
View file

15
demo/calculator.py Normal file
View file

@ -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

View file

@ -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);
});

View file

@ -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;
}
}

31
demo/calculator_test.py Normal file
View file

@ -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'

View file

@ -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);
});

View file

@ -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
}
}

1
demo/requirements.txt Normal file
View file

@ -0,0 +1 @@
pytest-cov