Ejemplo n.º 1
0
def test_loadExerciseDataFrom():
    _data, _tokens = loadExerciseDataFrom(TEST_EXERCISE_DATA_LOAD_FILE_NAME)

    assert len(_data)
    assert len(_tokens)
    assert isinstance(_data, list)
    assert isinstance(_tokens, list)
Ejemplo n.º 2
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 12)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1 = resolvePuzzle01Using(data, tokens)
    answer2, _ = resolvePuzzle02Using(data, tokens)

    print('answer 1: %d' % answer1)
    print('answer 2: %d' % answer2)

    return answer1, answer2
Ejemplo n.º 3
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 11)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1, totalRounds = resolvePuzzle01Using(data, tokens)
    print('answer 1: %d in %d rounds' % (answer1, totalRounds))

    answer2, totalRounds = resolvePuzzle02Using(data, tokens)
    print('answer 2: %d in %d rounds' % (answer2, totalRounds))

    return answer1, answer2
Ejemplo n.º 4
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 18)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1 = resolvePuzzleUsing(data, tokens, False)
    print('answer 1: %d' % answer1)

    answer2 = resolvePuzzleUsing(data, tokens, True)
    print('answer 2: %d' % answer2)

    return answer1, answer2
Ejemplo n.º 5
0
def main(fileName: str = None, unitTest=False):
    fileName = mainStart(fileName, 15)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1 = resolvePuzzle01Using(data, tokens)
    answer2 = -1 if unitTest else resolvePuzzle02Using(data, tokens)

    print('answer 1: %d' % answer1)
    print('answer 2: %d' % answer2)

    return answer1, answer2
Ejemplo n.º 6
0
def main(fileName:str = None):
    fileName = mainStart(fileName, 19)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1, rules, messages = resolvePuzzle01Using(data, tokens)
    print('answer 1: %d' % answer1)

    answer2 = resolvePuzzle02Using(rules, messages)
    print('answer 2: %d' % answer2)

    return answer1, answer2
Ejemplo n.º 7
0
def main(fileName: str = None, fieldSignature='departure', unitTest=False):
    fileName = mainStart(fileName, 16)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1, ticketRanges, ticket, nearby, validTickets, invalidTickets = resolvePuzzle01Using(
        data, tokens)
    print('answer 1: %d' % answer1)
    answer2 = -1 if unitTest else resolvePuzzle02Using(
        ticketRanges, ticket, validTickets, fieldSignature)
    print('answer 2: %d' % answer2)

    return answer1, answer2
Ejemplo n.º 8
0
def main(fileName: str = None, preambleLength=PREAMBLE_LENGTH):
    fileName = mainStart(fileName, 9)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1, \
    data = resolvePuzzle01Using(data, tokens, preambleLength)
    answer2 = resolvePuzzle02Using(data, tokens, preambleLength, answer1)

    print('answer 1: %d' % answer1)
    print('answer 2: %d' % answer2)

    return answer1, answer2
Ejemplo n.º 9
0
def main(fileName:str = None):
    fileName = mainStart(fileName, %d%)

    data, tokens = loadExerciseDataFrom(fileName)
    rawText = loadRawExerciseTextFrom(fileName)
    textRecords = loadExerciseDataAsTextRecordsFrom(fileName)

    # ------------------------------------------
    # Answer 1
    # ------------------------------------------
    answer1 = resolvePuzzle01Using(data, tokens, rawText, textRecords)
    answer2 = resolvePuzzle02Using(data, tokens, rawText, textRecords)

    print('answer 1: %d, answer 2: %d' % (answer1, answer2))

    return answer1, answer2
Ejemplo n.º 10
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 13)

    data, tokens = loadExerciseDataFrom(fileName)

    earliestDeparture = int(data[0])
    busSchedule = [int(busID) for busID in data[1].split(',') if busID != 'x']
    answer1, _ = resolvePuzzle01Using(earliestDeparture, busSchedule)

    busSchedule = [
        int(busID) if busID != 'x' else -1 for busID in data[1].split(',')
    ]
    answer2 = resolvePuzzle02Using(busSchedule)

    print('answer 1: %d' % answer1)
    print('answer 2: %d' % answer2)

    return answer1, answer2
Ejemplo n.º 11
0
def main(fileName: str = None, unitTest=False):
    fileName = mainStart(fileName, 17)
    shape = 15 if unitTest else 20

    data, tokens = loadExerciseDataFrom(fileName)

    # ------------------------------------------
    # Answer 1
    # ------------------------------------------
    answer1 = resolvePuzzle01Using(data, tokens, 6, 3, shape)
    print('answer 1: %d' % answer1)

    # ------------------------------------------
    # Answer 2
    # ------------------------------------------
    answer2 = resolvePuzzle02Using(data, tokens, unitTest)
    print('answer 2: %d' % answer2)

    return answer1, answer2
Ejemplo n.º 12
0
##..#.....
#...##..#.
####.#...#
##.##.###.
##...#.###
.#.#.#..##
..#....#..
###...#.#.
..###..###
"""

TEST_DAY_20_IMGTILES_FILE_NAME = 'resources/test/day_20_imgtiles-test-data.txt'

# +++ tests +++

_data, _tokens = loadExerciseDataFrom(TEST_DAY_20_IMGTILES_FILE_NAME)

_rawText = loadRawExerciseTextFrom(TEST_DAY_20_IMGTILES_FILE_NAME)

_textRecords = loadExerciseDataAsTextRecordsFrom(
    TEST_DAY_20_IMGTILES_FILE_NAME)


def test__edgesOf():
    tile = SAMPLE_TILE.split(':\n')[1]
    northEdge = bitarray('0011010010')
    westEdge = bitarray('0111110010')

    edges = _edgesOf(tile)

    assert northEdge == edges.north
Ejemplo n.º 13
0
from aoc.%t% import main
from aoc.%t% import resolvePuzzle01Using
from aoc.%t% import resolvePuzzle02Using
from util import loadExerciseDataAsTextRecordsFrom
from util import loadExerciseDataFrom
from util import loadRawExerciseTextFrom


# +++ constants +++

TEST_%T%_FILE_NAME = 'resources/test/%t%-test-data.txt'


# +++ tests +++

_data, _tokens = loadExerciseDataFrom(TEST_%T%_FILE_NAME)

_rawText = loadRawExerciseTextFrom(TEST_%T%_FILE_NAME)

_textRecords = loadExerciseDataAsTextRecordsFrom(TEST_%T%_FILE_NAME)


def test_resolvePuzzle01Using():
    answer = resolvePuzzle01Using(_data, _tokens, _rawText, _textRecords)

    assert answer == -1


def test_resolvePuzzle02Using():
    answer = resolvePuzzle02Using(_data, _tokens, _rawText, _textRecords)
Ejemplo n.º 14
0
from aoc.day_21_allergen import resolvePuzzle01Using
from aoc.day_21_allergen import resolvePuzzle02Using
from aoc.day_21_allergen import _extractFoodItemFrom
from aoc.day_21_allergen import _classifyByPotentialAllergen

from util import loadExerciseDataAsTextRecordsFrom
from util import loadExerciseDataFrom
from util import loadRawExerciseTextFrom

# +++ constants +++

TEST_DAY_21_ALLERGEN_FILE_NAME = 'resources/test/day_21_allergen-test-data.txt'

# +++ tests +++

_data, _tokens = loadExerciseDataFrom(TEST_DAY_21_ALLERGEN_FILE_NAME)

_rawText = loadRawExerciseTextFrom(TEST_DAY_21_ALLERGEN_FILE_NAME)

_textRecords = loadExerciseDataAsTextRecordsFrom(
    TEST_DAY_21_ALLERGEN_FILE_NAME)


def test__extractFoodItemFrom():
    foodItem = _extractFoodItemFrom('sqjhc fvjkl (contains soy')
    assert 'fvjkl' in foodItem.ingredients
    assert 'soy' in foodItem.allergens

    foodItem = _extractFoodItemFrom(
        'mxmxvkd kfcds sqjhc nhms (contains dairy, fish)')
    assert 'mxmxvkd' in foodItem.ingredients