parent
557bd57c75
commit
76be6a9d24
@ -0,0 +1,160 @@ |
|||||||
|
# Byte-compiled / optimized / DLL files |
||||||
|
__pycache__/ |
||||||
|
*.py[cod] |
||||||
|
*$py.class |
||||||
|
|
||||||
|
# C extensions |
||||||
|
*.so |
||||||
|
|
||||||
|
# Distribution / packaging |
||||||
|
.Python |
||||||
|
build/ |
||||||
|
develop-eggs/ |
||||||
|
dist/ |
||||||
|
downloads/ |
||||||
|
eggs/ |
||||||
|
.eggs/ |
||||||
|
lib/ |
||||||
|
lib64/ |
||||||
|
parts/ |
||||||
|
sdist/ |
||||||
|
var/ |
||||||
|
wheels/ |
||||||
|
share/python-wheels/ |
||||||
|
*.egg-info/ |
||||||
|
.installed.cfg |
||||||
|
*.egg |
||||||
|
MANIFEST |
||||||
|
|
||||||
|
# PyInstaller |
||||||
|
# Usually these files are written by a python script from a template |
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it. |
||||||
|
*.manifest |
||||||
|
*.spec |
||||||
|
|
||||||
|
# Installer logs |
||||||
|
pip-log.txt |
||||||
|
pip-delete-this-directory.txt |
||||||
|
|
||||||
|
# Unit test / coverage reports |
||||||
|
htmlcov/ |
||||||
|
.tox/ |
||||||
|
.nox/ |
||||||
|
.coverage |
||||||
|
.coverage.* |
||||||
|
.cache |
||||||
|
nosetests.xml |
||||||
|
coverage.xml |
||||||
|
*.cover |
||||||
|
*.py,cover |
||||||
|
.hypothesis/ |
||||||
|
.pytest_cache/ |
||||||
|
cover/ |
||||||
|
|
||||||
|
# Translations |
||||||
|
*.mo |
||||||
|
*.pot |
||||||
|
|
||||||
|
# Django stuff: |
||||||
|
*.log |
||||||
|
local_settings.py |
||||||
|
db.sqlite3 |
||||||
|
db.sqlite3-journal |
||||||
|
|
||||||
|
# Flask stuff: |
||||||
|
instance/ |
||||||
|
.webassets-cache |
||||||
|
|
||||||
|
# Scrapy stuff: |
||||||
|
.scrapy |
||||||
|
|
||||||
|
# Sphinx documentation |
||||||
|
docs/_build/ |
||||||
|
|
||||||
|
# PyBuilder |
||||||
|
.pybuilder/ |
||||||
|
target/ |
||||||
|
|
||||||
|
# Jupyter Notebook |
||||||
|
.ipynb_checkpoints |
||||||
|
|
||||||
|
# IPython |
||||||
|
profile_default/ |
||||||
|
ipython_config.py |
||||||
|
|
||||||
|
# pyenv |
||||||
|
# For a library or package, you might want to ignore these files since the code is |
||||||
|
# intended to run in multiple environments; otherwise, check them in: |
||||||
|
# .python-version |
||||||
|
|
||||||
|
# pipenv |
||||||
|
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. |
||||||
|
# However, in case of collaboration, if having platform-specific dependencies or dependencies |
||||||
|
# having no cross-platform support, pipenv may install dependencies that don't work, or not |
||||||
|
# install all needed dependencies. |
||||||
|
#Pipfile.lock |
||||||
|
|
||||||
|
# poetry |
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. |
||||||
|
# This is especially recommended for binary packages to ensure reproducibility, and is more |
||||||
|
# commonly ignored for libraries. |
||||||
|
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control |
||||||
|
#poetry.lock |
||||||
|
|
||||||
|
# pdm |
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. |
||||||
|
#pdm.lock |
||||||
|
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it |
||||||
|
# in version control. |
||||||
|
# https://pdm.fming.dev/#use-with-ide |
||||||
|
.pdm.toml |
||||||
|
|
||||||
|
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm |
||||||
|
__pypackages__/ |
||||||
|
|
||||||
|
# Celery stuff |
||||||
|
celerybeat-schedule |
||||||
|
celerybeat.pid |
||||||
|
|
||||||
|
# SageMath parsed files |
||||||
|
*.sage.py |
||||||
|
|
||||||
|
# Environments |
||||||
|
.env |
||||||
|
.venv |
||||||
|
env/ |
||||||
|
venv/ |
||||||
|
ENV/ |
||||||
|
env.bak/ |
||||||
|
venv.bak/ |
||||||
|
|
||||||
|
# Spyder project settings |
||||||
|
.spyderproject |
||||||
|
.spyproject |
||||||
|
|
||||||
|
# Rope project settings |
||||||
|
.ropeproject |
||||||
|
|
||||||
|
# mkdocs documentation |
||||||
|
/site |
||||||
|
|
||||||
|
# mypy |
||||||
|
.mypy_cache/ |
||||||
|
.dmypy.json |
||||||
|
dmypy.json |
||||||
|
|
||||||
|
# Pyre type checker |
||||||
|
.pyre/ |
||||||
|
|
||||||
|
# pytype static type analyzer |
||||||
|
.pytype/ |
||||||
|
|
||||||
|
# Cython debug symbols |
||||||
|
cython_debug/ |
||||||
|
|
||||||
|
# PyCharm |
||||||
|
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can |
||||||
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore |
||||||
|
# and can be added to the global gitignore or merged into this file. For a more nuclear |
||||||
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder. |
||||||
|
#.idea/ |
||||||
@ -0,0 +1,3 @@ |
|||||||
|
{ |
||||||
|
"python.formatting.provider": "black" |
||||||
|
} |
||||||
@ -0,0 +1,13 @@ |
|||||||
|
[[source]] |
||||||
|
url = "https://pypi.org/simple" |
||||||
|
verify_ssl = true |
||||||
|
name = "pypi" |
||||||
|
|
||||||
|
[packages] |
||||||
|
pytest = "*" |
||||||
|
black = "*" |
||||||
|
|
||||||
|
[dev-packages] |
||||||
|
|
||||||
|
[requires] |
||||||
|
python_version = "3.9" |
||||||
@ -0,0 +1,167 @@ |
|||||||
|
{ |
||||||
|
"_meta": { |
||||||
|
"hash": { |
||||||
|
"sha256": "dd7064c5d3500819936bb144acb79666f7fe518572640b830be8dd2ccdae55b5" |
||||||
|
}, |
||||||
|
"pipfile-spec": 6, |
||||||
|
"requires": { |
||||||
|
"python_version": "3.9" |
||||||
|
}, |
||||||
|
"sources": [ |
||||||
|
{ |
||||||
|
"name": "pypi", |
||||||
|
"url": "https://pypi.org/simple", |
||||||
|
"verify_ssl": true |
||||||
|
} |
||||||
|
] |
||||||
|
}, |
||||||
|
"default": { |
||||||
|
"atomicwrites": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197", |
||||||
|
"sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a" |
||||||
|
], |
||||||
|
"markers": "sys_platform == 'win32'", |
||||||
|
"version": "==1.4.0" |
||||||
|
}, |
||||||
|
"attrs": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4", |
||||||
|
"sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" |
||||||
|
], |
||||||
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", |
||||||
|
"version": "==21.4.0" |
||||||
|
}, |
||||||
|
"black": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b", |
||||||
|
"sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176", |
||||||
|
"sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09", |
||||||
|
"sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a", |
||||||
|
"sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015", |
||||||
|
"sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79", |
||||||
|
"sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb", |
||||||
|
"sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20", |
||||||
|
"sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464", |
||||||
|
"sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968", |
||||||
|
"sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82", |
||||||
|
"sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21", |
||||||
|
"sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0", |
||||||
|
"sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265", |
||||||
|
"sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b", |
||||||
|
"sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a", |
||||||
|
"sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72", |
||||||
|
"sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce", |
||||||
|
"sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0", |
||||||
|
"sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a", |
||||||
|
"sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163", |
||||||
|
"sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad", |
||||||
|
"sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d" |
||||||
|
], |
||||||
|
"index": "pypi", |
||||||
|
"version": "==22.3.0" |
||||||
|
}, |
||||||
|
"click": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:24e1a4a9ec5bf6299411369b208c1df2188d9eb8d916302fe6bf03faed227f1e", |
||||||
|
"sha256:479707fe14d9ec9a0757618b7a100a0ae4c4e236fac5b7f80ca68028141a1a72" |
||||||
|
], |
||||||
|
"markers": "python_version >= '3.7'", |
||||||
|
"version": "==8.1.2" |
||||||
|
}, |
||||||
|
"colorama": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b", |
||||||
|
"sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2" |
||||||
|
], |
||||||
|
"markers": "sys_platform == 'win32'", |
||||||
|
"version": "==0.4.4" |
||||||
|
}, |
||||||
|
"iniconfig": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", |
||||||
|
"sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" |
||||||
|
], |
||||||
|
"version": "==1.1.1" |
||||||
|
}, |
||||||
|
"mypy-extensions": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", |
||||||
|
"sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" |
||||||
|
], |
||||||
|
"version": "==0.4.3" |
||||||
|
}, |
||||||
|
"packaging": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", |
||||||
|
"sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" |
||||||
|
], |
||||||
|
"markers": "python_version >= '3.6'", |
||||||
|
"version": "==21.3" |
||||||
|
}, |
||||||
|
"pathspec": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", |
||||||
|
"sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" |
||||||
|
], |
||||||
|
"version": "==0.9.0" |
||||||
|
}, |
||||||
|
"platformdirs": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788", |
||||||
|
"sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19" |
||||||
|
], |
||||||
|
"markers": "python_version >= '3.7'", |
||||||
|
"version": "==2.5.2" |
||||||
|
}, |
||||||
|
"pluggy": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", |
||||||
|
"sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" |
||||||
|
], |
||||||
|
"markers": "python_version >= '3.6'", |
||||||
|
"version": "==1.0.0" |
||||||
|
}, |
||||||
|
"py": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", |
||||||
|
"sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378" |
||||||
|
], |
||||||
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", |
||||||
|
"version": "==1.11.0" |
||||||
|
}, |
||||||
|
"pyparsing": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:7bf433498c016c4314268d95df76c81b842a4cb2b276fa3312cfb1e1d85f6954", |
||||||
|
"sha256:ef7b523f6356f763771559412c0d7134753f037822dad1b16945b7b846f7ad06" |
||||||
|
], |
||||||
|
"markers": "python_full_version >= '3.6.8'", |
||||||
|
"version": "==3.0.8" |
||||||
|
}, |
||||||
|
"pytest": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:841132caef6b1ad17a9afde46dc4f6cfa59a05f9555aae5151f73bdf2820ca63", |
||||||
|
"sha256:92f723789a8fdd7180b6b06483874feca4c48a5c76968e03bb3e7f806a1869ea" |
||||||
|
], |
||||||
|
"index": "pypi", |
||||||
|
"version": "==7.1.1" |
||||||
|
}, |
||||||
|
"tomli": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", |
||||||
|
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" |
||||||
|
], |
||||||
|
"markers": "python_version >= '3.7'", |
||||||
|
"version": "==2.0.1" |
||||||
|
}, |
||||||
|
"typing-extensions": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708", |
||||||
|
"sha256:f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376" |
||||||
|
], |
||||||
|
"markers": "python_version < '3.10'", |
||||||
|
"version": "==4.2.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"develop": {} |
||||||
|
} |
||||||
@ -0,0 +1,6 @@ |
|||||||
|
from days import * |
||||||
|
import pytest |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
pytest.main() |
||||||
@ -0,0 +1 @@ |
|||||||
|
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
1721 |
||||||
|
979 |
||||||
|
366 |
||||||
|
299 |
||||||
|
675 |
||||||
|
1456 |
||||||
@ -0,0 +1,22 @@ |
|||||||
|
import os |
||||||
|
import itertools |
||||||
|
|
||||||
|
inputfile = os.path.join(os.path.dirname(__file__), "input/day01_input") |
||||||
|
with open(inputfile) as file: |
||||||
|
lines = [int(line.strip()) for line in file] |
||||||
|
|
||||||
|
|
||||||
|
def test_day1a(): |
||||||
|
list_permutations = itertools.combinations(lines, 2) |
||||||
|
for (a, b) in list_permutations: |
||||||
|
if a + b == 2020: |
||||||
|
result = a * b |
||||||
|
assert result == 514579 |
||||||
|
|
||||||
|
|
||||||
|
def test_day1b(): |
||||||
|
list_permutations = itertools.combinations(lines, 3) |
||||||
|
for (a, b, c) in list_permutations: |
||||||
|
if a + b + c == 2020: |
||||||
|
result = a * b * c |
||||||
|
assert result == 241861950 |
||||||
@ -0,0 +1 @@ |
|||||||
|
[pytest] |
||||||
Loading…
Reference in new issue