Skip to content

Commit 9af197f

Browse files
committed
Initial commit
0 parents  commit 9af197f

44 files changed

Lines changed: 3052 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
ci:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Install uv
20+
uses: astral-sh/setup-uv@v7
21+
22+
- name: Install just
23+
uses: extractions/setup-just@v2
24+
25+
- name: Set VCPKG_ROOT
26+
run: echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> "$GITHUB_ENV"
27+
28+
- name: Install dependencies
29+
run: just install
30+
31+
- name: C++ format check
32+
run: just cpp-format-check
33+
34+
- name: Python format check
35+
run: just py-format-check
36+
37+
- name: Python lint check
38+
run: just py-lint-check
39+
40+
- name: Python type check
41+
run: just py-typecheck
42+
43+
- name: C++ build (debug)
44+
run: just cpp-build-debug
45+
46+
- name: C++ build (release)
47+
run: just cpp-build-release
48+
49+
- name: C++ tests with coverage (debug)
50+
run: just cpp-test-coverage
51+
52+
- name: Python tests with coverage
53+
run: just py-test-coverage

.vscode/extensions.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"recommendations": [
3+
"charliermarsh.ruff",
4+
"matepek.vscode-catch2-test-adapter",
5+
"ms-python.python",
6+
"ms-vscode.cmake-tools",
7+
"ms-vscode.cpptools"
8+
]
9+
}

.vscode/settings.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"[cpp]": {
3+
"editor.formatOnSave": true,
4+
"editor.defaultFormatter": "ms-vscode.cpptools"
5+
},
6+
"C_Cpp.clang_format_path": "${workspaceFolder}/python/.venv/bin/clang-format",
7+
"C_Cpp.clang_format_style": "file:${workspaceFolder}/cpp/.clang-format",
8+
"cmake.sourceDirectory": "${workspaceFolder}/cpp",
9+
"cmake.cmakePath": "${workspaceFolder}/python/.venv/bin/cmake",
10+
"cmake.useCMakePresets": "always",
11+
"cmake.ctest.testExplorerIntegrationEnabled": false,
12+
"testMate.cpp.test.advancedExecutables": [
13+
{
14+
"pattern": "cpp/build/{debug,release}/**/*_tests",
15+
"name": "[${relDirpath[2:3]}] ${filename}"
16+
}
17+
],
18+
"python.defaultInterpreterPath": "${workspaceFolder}/python/.venv/bin/python",
19+
"python.testing.pytestEnabled": true,
20+
"python.testing.unittestEnabled": false,
21+
"python.testing.cwd": "${workspaceFolder}/python",
22+
"python.testing.pytestArgs": [],
23+
"[python]": {
24+
"editor.formatOnSave": true,
25+
"editor.defaultFormatter": "charliermarsh.ruff",
26+
"editor.codeActionsOnSave": {
27+
"source.organizeImports.ruff": "explicit"
28+
}
29+
},
30+
"ruff.path": ["${workspaceFolder}/python/.venv/bin/ruff"],
31+
"ruff.configuration": "${workspaceFolder}/python/ruff.toml"
32+
}

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 sreea05
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)