cleder / pygeoif

Basic implementation of the __geo_interface__ 🌐️
https://pygeoif.readthedocs.io
67 stars 27 forks source link

Add Hypothesis tests for Feature and FeatureCollection #222

Open cleder opened 8 months ago

uchiha-vivek commented 2 months ago

@cleder Sir can you please assign me this issue . I know how to make hypothesis tests .

cleder commented 2 months ago

OK done.

Setting Up Your Environment

Fork the repository and clone your fork to your local machine:

git clone https://github.com/uchiha-vivek/pygeoif.git
cd pygeoif
git checkout develop

Next, set up a virtual environment. This helps to manage dependencies and avoid conflicts:

python3 -m venv .venv
source venv/bin/activate  # On Windows use `venv\Scripts\activate`

Then, install the required packages:

pip install -e ".[dev]"

Install the pre-commit hook with:

pre-commit install

and check the code with:

pre-commit run --all-files

Running the Tests

To run the tests, simply use:

pytest

You can also run the tests with coverage to see which lines are covered by the tests. This is useful for writing new tests to cover any uncovered lines:

pytest  --cov=pygeoif --cov-report=term

To get a report on the individual lines that are not covered, use the --cov-report=term-missing option, or generate an HTML report with --cov-report=html. Some editor extensions can also show the coverage directly in the editor, notably coverage-gutter for VSCode, which needs the output to be in the xml format produced with --cov-report=xml.

Tips

cleder commented 2 months ago

There are already hypothesis strategies in https://github.com/cleder/pygeoif/blob/develop/pygeoif/hypothesis/strategies.py so no need to reinvent the wheel

uchiha-vivek commented 2 months ago

ok sir @cleder , sir can you please brief it more . Like do we need to use all the strategies or some specefic ones

cleder commented 2 months ago

Only those which make sense. Features are used in GeoJson which means you only have to test against epsg4326.

uchiha-vivek commented 2 months ago

Thank you @cleder