Metadata-Version: 2.4
Name: lc3-ensemble-test
Version: 0.1.14
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: parameterized==0.9.0 ; extra == 'std'
Requires-Dist: pytest==8.2.2 ; extra == 'std'
Requires-Dist: pytest-html==4.1.1 ; extra == 'std'
Provides-Extra: std
License-File: LICENSE
Summary: Python backend and autograder library for LC-3 assembly
Author: Henry Bui
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Repository, https://github.com/endorpersand/lc3-ensemble-test

# lc3-ensemble-test: Python backend & autograder for LC-3 assembly

This project is built upon [lc3-ensemble](https://github.com/endorpersand/lc3-ensemble). This module is an autograder library to test programs written in LC-3 assembly. To see the functions and how to implement an autograder, see [`doc/API.md`](https://github.com/endorpersand/lc3-ensemble-test/blob/main/doc/API.md).

## Installation

To install this package, you can use pip:

```zsh
pip install lc3-ensemble-test
```

To install additional packages to help create autograders for GT CS 2110,

```zsh
pip install "lc3-ensemble-test[std]"
```

## Running

### With standard dependencies

There are several ways to display test results using `pytest`'s built-in functionality.

#### Display in command-line

```zsh
pytest 
```

#### Display as HTML

```zsh
pytest --html=report.html --self-contained-html
```

*The `conftest.py` provided in `examples/` will automatically open the generated page in a web browser.*

#### Display as JUnitXML

```zsh
pytest --junitxml=report.xml
```

### Without standard dependencies

If standard dependencies are not included, autograders can still be run with `unittest`.

```zsh
python3 -m unittest <DIR>
```

## Development

### Development Setup

1. Create a Python virtual environment with `python -m venv venv`
2. Activate the environment by running the activate script:
    - Windows: `venv\Scripts\activate`
    - Other: `source venv/bin/activate`
3. Install maturin (`pip install maturin`)
4. Run `maturin develop`
5. Import the `ensemble_test.core` or `ensemble_test.autograder` modules while inside the virtual environment

You can run the autograder tests with the following:

```sh
cd tests
pytest
```

### Development Installation

If installing directly from this repository,

- `pip install .`: Install the barebones autograder
- `pip install ".[std]"`: Install the autograder and additional packages to help create autograders for CS 2110.

