added templates and day 1's input and example1.
This commit is contained in:
parent
e8deae0a61
commit
7fd7d753bb
13
Pipfile
Normal file
13
Pipfile
Normal file
|
@ -0,0 +1,13 @@
|
|||
[[source]]
|
||||
url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[packages]
|
||||
parse = "*"
|
||||
pytest = "*"
|
||||
|
||||
[dev-packages]
|
||||
|
||||
[requires]
|
||||
python_version = "3.9"
|
91
Pipfile.lock
generated
Normal file
91
Pipfile.lock
generated
Normal file
|
@ -0,0 +1,91 @@
|
|||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "0f2e2e1eec7667a0a76ab90193491e106610a921be445eef118b5d170f2d175e"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
"python_version": "3.9"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"attrs": {
|
||||
"hashes": [
|
||||
"sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6",
|
||||
"sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==22.1.0"
|
||||
},
|
||||
"iniconfig": {
|
||||
"hashes": [
|
||||
"sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3",
|
||||
"sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"
|
||||
],
|
||||
"version": "==1.1.1"
|
||||
},
|
||||
"packaging": {
|
||||
"hashes": [
|
||||
"sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
|
||||
"sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==21.3"
|
||||
},
|
||||
"parse": {
|
||||
"hashes": [
|
||||
"sha256:9ff82852bcb65d139813e2a5197627a94966245c897796760a3a2a8eb66f020b"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.19.0"
|
||||
},
|
||||
"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:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb",
|
||||
"sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"
|
||||
],
|
||||
"markers": "python_full_version >= '3.6.8'",
|
||||
"version": "==3.0.9"
|
||||
},
|
||||
"pytest": {
|
||||
"hashes": [
|
||||
"sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c",
|
||||
"sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==7.1.2"
|
||||
},
|
||||
"tomli": {
|
||||
"hashes": [
|
||||
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
||||
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.0.1"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
}
|
6
day1/example1
Normal file
6
day1/example1
Normal file
|
@ -0,0 +1,6 @@
|
|||
1721
|
||||
979
|
||||
366
|
||||
299
|
||||
675
|
||||
1456
|
200
day1/input
Normal file
200
day1/input
Normal file
|
@ -0,0 +1,200 @@
|
|||
1772
|
||||
1065
|
||||
1827
|
||||
1671
|
||||
1181
|
||||
1915
|
||||
1657
|
||||
1632
|
||||
1053
|
||||
1546
|
||||
1039
|
||||
1388
|
||||
1698
|
||||
1174
|
||||
1275
|
||||
1250
|
||||
1988
|
||||
1078
|
||||
1075
|
||||
1958
|
||||
1617
|
||||
1387
|
||||
1543
|
||||
1965
|
||||
1867
|
||||
1771
|
||||
1755
|
||||
1331
|
||||
1677
|
||||
1935
|
||||
1488
|
||||
911
|
||||
1001
|
||||
1516
|
||||
1949
|
||||
1626
|
||||
1083
|
||||
1402
|
||||
1223
|
||||
1179
|
||||
2001
|
||||
1790
|
||||
1551
|
||||
1117
|
||||
1990
|
||||
1968
|
||||
1532
|
||||
1999
|
||||
1175
|
||||
1126
|
||||
1869
|
||||
1666
|
||||
1753
|
||||
513
|
||||
1349
|
||||
1139
|
||||
1941
|
||||
1823
|
||||
1647
|
||||
1835
|
||||
1943
|
||||
1459
|
||||
1833
|
||||
1398
|
||||
1877
|
||||
1625
|
||||
1749
|
||||
1631
|
||||
1864
|
||||
1826
|
||||
1499
|
||||
1336
|
||||
1264
|
||||
1091
|
||||
1558
|
||||
1321
|
||||
1754
|
||||
1729
|
||||
1585
|
||||
1740
|
||||
1767
|
||||
1774
|
||||
1164
|
||||
1318
|
||||
1930
|
||||
1236
|
||||
1995
|
||||
1611
|
||||
1319
|
||||
1361
|
||||
1119
|
||||
1563
|
||||
1578
|
||||
1047
|
||||
1797
|
||||
1787
|
||||
1038
|
||||
1921
|
||||
1656
|
||||
1898
|
||||
1828
|
||||
1727
|
||||
1825
|
||||
2010
|
||||
536
|
||||
1395
|
||||
1865
|
||||
1882
|
||||
1638
|
||||
1954
|
||||
1565
|
||||
1296
|
||||
1723
|
||||
1187
|
||||
60
|
||||
1130
|
||||
1102
|
||||
1963
|
||||
1048
|
||||
1493
|
||||
1795
|
||||
472
|
||||
1496
|
||||
1278
|
||||
1444
|
||||
1889
|
||||
860
|
||||
1975
|
||||
1961
|
||||
1070
|
||||
1570
|
||||
1495
|
||||
1644
|
||||
1881
|
||||
1293
|
||||
1090
|
||||
1906
|
||||
1385
|
||||
1549
|
||||
1143
|
||||
1195
|
||||
2004
|
||||
1397
|
||||
1032
|
||||
1681
|
||||
2000
|
||||
1574
|
||||
1400
|
||||
1911
|
||||
1868
|
||||
1917
|
||||
1872
|
||||
1696
|
||||
1086
|
||||
1291
|
||||
1761
|
||||
1703
|
||||
1202
|
||||
1486
|
||||
1705
|
||||
1924
|
||||
1186
|
||||
1676
|
||||
1615
|
||||
1951
|
||||
1556
|
||||
1604
|
||||
1534
|
||||
2002
|
||||
1334
|
||||
1109
|
||||
1108
|
||||
1713
|
||||
1422
|
||||
1909
|
||||
1418
|
||||
1592
|
||||
1887
|
||||
1037
|
||||
1568
|
||||
1914
|
||||
1780
|
||||
1929
|
||||
1973
|
||||
1684
|
||||
1581
|
||||
1148
|
||||
1931
|
||||
1619
|
||||
1082
|
||||
1166
|
||||
1913
|
||||
1312
|
||||
1330
|
||||
1540
|
||||
1841
|
||||
1977
|
||||
1769
|
||||
1691
|
||||
1821
|
29
template.py
Normal file
29
template.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
# aoc_template.py
|
||||
|
||||
import pathlib
|
||||
import sys
|
||||
import parse
|
||||
|
||||
def parse(puzzle_input):
|
||||
"""Parse input"""
|
||||
|
||||
def part1(data):
|
||||
"""Solve part 1"""
|
||||
|
||||
def part2(data):
|
||||
"""Solve part 2"""
|
||||
|
||||
def solve(puzzle_input):
|
||||
"""Solve the puzzle for the given input"""
|
||||
data = parse(puzzle_input)
|
||||
solution1 = part1(data)
|
||||
solution2 = part2(data)
|
||||
|
||||
return solution1, solution2
|
||||
|
||||
if __name__ == "__main__":
|
||||
for path in sys.argv[1:]:
|
||||
print(f"{path}:")
|
||||
puzzle_input = pathlib.Path(path).read_text().strip()
|
||||
solutions = solve(puzzle_input)
|
||||
print("\n".join(str(solution) for solution in solutions))
|
32
test_template.py
Normal file
32
test_template.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
|
||||
import pathlib
|
||||
import pytest
|
||||
import template as aoc
|
||||
|
||||
PUZZLE_DIR = pathlib.Path(__file__).parent
|
||||
|
||||
#these test fixtures setup the test, mainly by reading the filename into a string in this simple case.
|
||||
@pytest.fixture
|
||||
def example1():
|
||||
puzzle_input = (PUZZLE_DIR / "example1").read_text().strip()
|
||||
return aoc.parse(puzzle_input)
|
||||
|
||||
@pytest.fixture
|
||||
def example2():
|
||||
puzzle_input = (PUZZLE_DIR / "example2").read_text().strip()
|
||||
return aoc.parse(puzzle_input)
|
||||
|
||||
@pytest.mark.skip(reason="Not implemented")
|
||||
def test_parse_example1(example1):
|
||||
"""Test that input is parsed properly"""
|
||||
assert example1 == ...
|
||||
|
||||
@pytest.mark.skip(reason="Not implemented")
|
||||
def test_part1_example1(example1):
|
||||
"""Test part 1 on example input"""
|
||||
assert aoc.part1(example1) == ...
|
||||
|
||||
@pytest.mark.skip(reason="Not implemented")
|
||||
def test_part2_example2(example2):
|
||||
"""Test part 2 on example input"""
|
||||
assert aoc.part2(example2) == ...
|
Loading…
Reference in a new issue