* Trying to time every solution
* Proposal 2 for timing PE solutions:
- Use pytest fixture along with --capture=no flag to print out the
top DURATIONS slowest solution at the end of the test sessions.
- Remove the print part and try ... except ... block from the test
function.
* Proposal 3 for timing PE solutions:
Completely changed the way I was performing the tests. Instead of
parametrizing the problem numbers and expected output, I will
parametrize the solution file path.
Steps:
- Collect all the solution file paths
- Convert the paths into a Python module
- Call solution on the module
- Assert the answer with the expected results
For assertion, it was needed to convert the JSON list object to
Python dictionary object which required changing the JSON file itself.
* Add type hints for variables
* Fix whitespace in single_qubit_measure
* Removed print error_msgs at the end of test:
This was done only to reduce the message clutter produced by 60
failing tests. As that is fixed, we can produce the traceback in
short form and allow pytest to print the captured error message
output at the end of test.
* Start validate_solutions script for Travis CI
I am separating out the solution testing and doctest as validating
the solutions for the current number of solutions present is
taking 2 minutes to run.
* Fix all errors mentioned in pre-commit run:
- Fix end of file
- Remove trailing whitespace
- Fix files with black
- Fix imports with isort
* Fix errors
* Add file for testing Project Euler solutions
* Remove the importlib import
* Update project_euler/solution_test.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Small tweaks to project_euler/solution_test.py
* Test Project Euler solutions through Travis
* Improved testing for Project Euler solutions:
- Renamed file so that it isn't picked up by pytest
- Fail fast on validating solutions through Travis CI
* Update validate_solutions.py
* Use namedtuple for input parameters and answer
- Remove logging
- Remove unnecessary checks for PROJECT_EULER_PATH as Travis CI
picks up the same path
* Fix flake8 errors: line too long
* Small tweaks to validate_solutions.py
* Add all answers & back to using dictionary
* Using pytest for testing Project Euler solutions
- As we want to fail fast on testing solutions, we need to test using
this script first before we use tests written by the author.
- As pytest stops testing as soon as it receives a traceback, we need to
use pytest-subtests to tell pytest to test all the iterations for the
function with given parameters.
* Print error messages in oneline format
* Separated answers into a separate file:
- Add custom print function to print all the error messages at the
end of all the tests
- Let Travis skip if this failed
Co-authored-by: Christian Clauss <cclauss@me.com>
* Added travis notifications only on fail
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* .travis.yml: Revert to using autoblack
Our autoblack GitHub Action will get us to black compliance without forcing each contributor to learn about, install, and use psf/black on every pull request.
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Tighten up psf/black and flake8
* Fix some tests
* Fix some E741
* Fix some E741
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Travis CI: Strict flake8
Turn the screws all the way down.
* updating DIRECTORY.md
* Switch from flake8 --select to --ignore
* Quotes
* IGNORE=E123,E203,E265,E266,E302,E401,E402,E712,E731,E741,E743,F811,F841,W291,W293,W503
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Travis CI: Upgrade to Python 3.8
* updating DIRECTORY.md
* Tensorflow is not yet compatible with Python 3.8
* Disable k_means_clustering_tensorflow.py
* updating DIRECTORY.md
* Disable gan.py
* updating DIRECTORY.md
* Disable input_data.py
* updating DIRECTORY.md
* pip install a current version of six
* Travis CI: Don’t allow bare exceptions
* fixup! Format Python code with psf/black push
* except IOError:
* except IOError:
* Update hamming_code.py
* IndexError
* Get rid of the nonsense logic
Co-authored-by: John Law <johnlaw.po@gmail.com>
* travis test
* travis pull ID test
* get pr branch test
* retry pr build
* test pushing back - probable git error for origin 'not found'
* github auth?
* add .sh
* chmod
* add index update for permission fix
* run sh for script
* add all
* add pull directory
* fetch pr branch
* swap placement of adding commits
* rotate
* quit trying to update Travis
* formatting leftovers
* Travis CI: Write & print DIRECTORY.md on one line
* Implementation of Hardy Ramanujan Algorithm
* added docstrings
* added doctests
* Run Python black on the code
* Travis CI: Upgrade to Python 3.8
* Revert to Python 3.7
* added sample file to transfer
* split client and server into separate files
* client and server now work in python2
* server works on python3
* client works on python3
* allow configurable ONE_CONNECTION_ONLY for testing server
* allow testing of ftp server + client
* use f-strings
* removed single letter vars
* fixed bad quote marks
* clearer file handler names
* 'with open() as' syntax
* unicode and emojis in the test data
* s -> sock
* consistent comment spacing
* remove closing formalities
* swap in and out_file
* f-string
* if __name__ == '__main__':
* Added doctest and more explanation about Dijkstra execution.
* tests were not passing with python2 due to missing __init__.py file at number_theory folder
* Removed the dot at the beginning of the imported modules names because 'python3 -m doctest -v data_structures/hashing/*.py' and 'python3 -m doctest -v data_structures/stacks/*.py' were failing not finding hash_table.py and stack.py modules.
* Moved global code to main scope and added doctest for project euler problems 1 to 14.
* Added test case for negative input.
* Changed N variable to do not use end of line scape because in case there is a space after it the script will break making it much more error prone.
* Added problems description and doctests to the ones that were missing. Limited line length to 79 and executed python black over all scripts.
* Changed the way files are loaded to support pytest call.
* Added __init__.py to problems to make them modules and allow pytest execution.
* Added project_euler folder to test units execution
* Changed 'os.path.split(os.path.realpath(__file__))' to 'os.path.dirname()'
* Added Burrows-Wheeler transform algorithm.
* Added changes suggested by cclauss
* Fixes for issue 'Fix the LGTM issues #1024'.
* Added doctest for different parameter types and negative values.
* Fixed doctest issue added at last commit.
* Commented doctest that were causing slowness at Travis.
* Added comment with the reason for some doctest commented.
* pytest --ignore
* Added doctest and more explanation about Dijkstra execution.
* tests were not passing with python2 due to missing __init__.py file at number_theory folder
* Removed the dot at the beginning of the imported modules names because 'python3 -m doctest -v data_structures/hashing/*.py' and 'python3 -m doctest -v data_structures/stacks/*.py' were failing not finding hash_table.py and stack.py modules.
* Moved global code to main scope and added doctest for project euler problems 1 to 14.
* Added test case for negative input.
* Changed N variable to do not use end of line scape because in case there is a space after it the script will break making it much more error prone.
* Added problems description and doctests to the ones that were missing. Limited line length to 79 and executed python black over all scripts.
* Changed the way files are loaded to support pytest call.
* Added __init__.py to problems to make them modules and allow pytest execution.
* Added project_euler folder to test units execution
* Changed 'os.path.split(os.path.realpath(__file__))' to 'os.path.dirname()'
* Added print function into matrix_multiplication_addition.py and removed blank space in data_structures/binary tree directory
* Removed .vs/ folder per #893
* Rename matrix_multiplication_addition.py to matrix_operation.py
* Moved and renamed ~script.py to scripts/build_directory_md.py
Updated DIRECTORY.MD file
* Modified .travis.yml per suggestion in #1013
* Fixed typo per suggestions in #1013
* Pytest the entire repo
* Do each directory for now...
* YAML files hate tabs
* Add more requirements
* pip install opencv-python
* Comment out FTP
* Add pandas and sklearn to requirements
* Comment out FTP, graphs, machine_learning, maths, neural_network, project_euler
* Update .travis.yml
* Comment out Data structures
* if __name__ == "__main__":
* pytest --ignore=
* pytest .
* Update .travis.yml
* pytest . --doctest-modules --ignore=${IGNORE}
* Ignore --ignore because it just hangs
* Travis CI: Add more flake8 tests
* Use ==/!= to compare str, bytes, and int literals
./project_euler/problem_17/sol1.py:25:7: F632 use ==/!= to compare str, bytes, and int literals
if i%100 is not 0:
^
* Use ==/!= to compare str, bytes, and int literals
* Update sol1.py
The owner of the this repo would need to go to https://travis-ci.org/profile and flip the repository switch __on__ to enable free automated flake8 testing of each pull request. Flake8 will find bugs and code smells.