Skip to content

Commit

Permalink
Refactored project & Fixed dataset missing problem
Browse files Browse the repository at this point in the history
  • Loading branch information
abhabongse committed Mar 16, 2022
1 parent 3c0d68d commit 82fe7b6
Show file tree
Hide file tree
Showing 18 changed files with 485 additions and 375 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/project-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,6 @@ jobs:
run: poetry install --no-interaction
- name: Notebook grading
run: |
poetry run ./grade.py exam.ipynb --force-color --width 120
mkdir ${{ runner.temp }}/sandbox
cp exam.ipynb ${{ runner.temp }}/sandbox
poetry run ./grade.py ${{ runner.temp }}/sandbox/exam.ipynb --force-color --width 120
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ venv/
ENV/
env.bak/
venv.bak/
!.env.example

# Spyder project settings
.spyderproject
Expand All @@ -128,6 +129,6 @@ dmypy.json
# Pyre type checker
.pyre/

# All files
# Other files
.idea/
.vscode/
2 changes: 1 addition & 1 deletion DEVELOP.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ we recommend installing it for project development.

## Project Structure

- [`src/nbnursery`](src/nbnursery) Python source code to grading scripts
- [`src/aibuilders_exam`](src/aibuilders_exam) Python source code to grading scripts
- [`exam.ipynb`](exam.ipynb) Jupyter notebook containing exam questions
- [`grade.py`](grade.py) Grading script for [`exam.ipynb`](exam.ipynb)

Expand Down
4 changes: 2 additions & 2 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ export-requirements:
# \___\___/\__,_\___| \__\_\\_,_\__,_|_|_|\__|\_, | |_|\___/\___/_/__/
# |__/

# Run tests against source files (flake8 and pytest)
test: flake8
# Run checks against source files (flake8 and pytest)
check: flake8

# Run flake8 linter against source files
flake8:
Expand Down
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# ข้อสอบคัดเลือกเข้าโครงการ AI Builders ครั้งที่ 2 (2022)

### 📢 ประกาศล่าสุด 📢

[กรุณาอ่านประกาศล่าสุดและข้อมูลที่มีการเปลี่ยนแปลง](https://github.com/ai-builders/entrance-exam-2022/releases)

### ลิงก์ข้อมูลที่เกี่ยวข้อง

- [รายละเอียดของโครงการ AI Builders](https://ai-builders.github.io)
Expand Down Expand Up @@ -76,7 +80,8 @@

### ขั้นตอนที่ 1 / 5: ยอมรับข้อตกลง

โปรดอ่าน[ข้อตกลงและนโยบายเกี่ยวกับข้อสอบ](#ข้อตกลงและนโยบายเกี่ยวกับข้อสอบ)
โปรดอ่าน [ข้อตกลงและนโยบายเกี่ยวกับข้อสอบ](#ข้อตกลงและนโยบายเกี่ยวกับข้อสอบ) และ
[ประกาศล่าสุด](https://github.com/ai-builders/entrance-exam-2022/releases)
เมื่อส่งใบสมัครเข้าร่วมโครงการฯ จะถือว่าผู้สมัครได้อ่านและยอมรับข้อตกลงและเงื่อนไขข้างต้นแล้ว

### ขั้นตอนที่ 2 / 5: สร้าง Repository ใหม่
Expand Down Expand Up @@ -150,7 +155,7 @@
```
5. เปิดใช้งาน Jupyter โดยพิมพ์คำสั่งต่อไปนี้
```shell
$ jupyter lab exam.ipynb
$ jupyter lab exam_solution.ipynb
```
เบราว์เซอร์หน้าต่างใหม่จะเปิดขึ้น พร้อมกับโหลดไฟล์โน้ตบุ๊กที่คุณต้องทำข้อสอบ
ผู้ทำข้อสอบสามารถลงมือทำข้อสอบโดยปฏิบัติตามขั้นตอนที่ระบุไว้ในเอกสารข้อสอบได้
Expand All @@ -174,7 +179,7 @@
**หมายเหตุ:** หากคุณเลือกทำข้อสอบด้วยวิธีการที่ 2 ในขั้นตอนที่ 3/5 แล้วนั้น
คุณสามารถใช้ตัวตรวจภายในเครื่องของคุณได้เช่นกัน โดยรันคำสั่งต่อไปนี้ใน Terminal
```shell
$ ./grade.py exam.ipynb
$ ./grade.py exam_solution.ipynb
```

### ขั้นตอนที่ 5 / 5: ส่งโปรแกรมคำตอบ
Expand Down
223 changes: 129 additions & 94 deletions dev-requirements.txt

Large diffs are not rendered by default.

54 changes: 0 additions & 54 deletions gen_sportsday.py

This file was deleted.

13 changes: 8 additions & 5 deletions grade.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
import pandas as pd
from pytest import approx

from nbnursery.config import ApplicationContext
from nbnursery.helpers import rich_time, validate_pos
from nbnursery.loader import NotebookLoader
from nbnursery.testutils import ModuleItem, Param, TestGroup, TestScenario, TestSuite
from aibuilders_exam.grading.context import ApplicationContext
from aibuilders_exam.grading.engine import ModuleItem, Param, TestGroup, TestScenario, TestSuite
from aibuilders_exam.grading.loader import NotebookLoader
from aibuilders_exam.helpers import rich_time, validate_pos

unit_testing = unittest.TestCase()

Expand Down Expand Up @@ -83,6 +83,9 @@ def program(
mod = nb_loader.load_module(module_name, notebook_file)
except Exception as exc:
ctx.console.print_exception()
if export_json:
with open(export_json, "w") as f:
json.dump(TEST_SUITE.do_skip().serialize(), f, ensure_ascii=False, indent=2)
raise SystemExit(1) from exc

# Execute the entire test suite and print the score summary
Expand Down Expand Up @@ -287,7 +290,7 @@ def test_highjump_averages(
]),
test_filter_matching.data([], "x", 2, []),
]),
TestGroup("2.2 Wordle Matching", 10, [
TestGroup("2.2 Wordle Absence", 10, [
test_filter_absence.data(["hippo", "zebra", "panda", "koala"], "a", ["hippo"]),
test_filter_absence.data(["zebra", "panda", "koala"], "a", []),
test_filter_absence.data(["hippo", "zebra", "panda", "koala"], "x", ["hippo", "zebra", "panda", "koala"]),
Expand Down
Loading

0 comments on commit 82fe7b6

Please sign in to comment.