Ejemplo n.º 1
0
def test_calc_value():
    expect = 1588
    inp, conv_form = get_data("test_input")

    for i in range(10):
        inp = iterate(inp, conv_form)
    assert calc_value(inp) == expect
Ejemplo n.º 2
0
def test_solve(nstep, inp):
    # expect = 2188189693529

    val = solve(*get_data("test_input"), nstep)
    expect = count(inp)

    assert val == expect
Ejemplo n.º 3
0
def test_iterate():
    expect = [
        "NNCB", "NCNBCHB", "NBCCNBBBCBHCB", "NBBBCNCCNBBNBNBBCHBHHBCHB",
        "NBBNBNBBCCNBCNCCNBBNBBNBBBNBBNBBCBHCBHHNHCBBCBHCB"
    ]

    inp, conv_form = get_data("test_input")
    assert expect[0] == inp, f"failed at step {i}, "
    for i, expect_val in enumerate(expect[1:]):
        inp = iterate(inp, conv_form)
        assert expect_val == inp, f"failed at step {i}, "
Ejemplo n.º 4
0
import requests
from bs4 import BeautifulSoup, Tag

from database import Event, base, session

from parslets import calendar_page
from part1 import get_data, links

calendar_page()
get_data(links)
Ejemplo n.º 5
0
def run():
    vals = get_data("input")
    sync_time = simulate(vals, nstep=1000, visualize=True, find_sync=True)
    print(sync_time)
Ejemplo n.º 6
0
import numpy as np

from part1 import get_data, simulate

expect = get_data("n2")
vals, _ = simulate(get_data("test_input2"), nstep=2)

print("HEU:")
print(expect)
print(vals)
print(expect == vals)
Ejemplo n.º 7
0
    pair_counts = count_pairs(inp)
    letter_counts = count(inp)

    print(pair_counts)
    for i in range(nstep):
        pair_counts, letter_counts = iterate(pair_counts, letter_counts,
                                             out_pairs, conv_form)

    most = max(letter_counts.values())
    least = min(letter_counts.values())
    return most - least


def iterate(pair_counts, letter_counts, out_pairs, conv_form):
    next_counts = copy(pair_counts)
    print("iterate")
    for k, v in pair_counts.items():
        out_letter = conv_form[k]
        letter_counts[out_letter] += v
        a, b = out_pairs[k]
        print(k, v, a, b)
        next_counts[k] -= v
        next_counts[a] += v
        next_counts[b] += v
    print(next_counts)
    return next_counts, letter_counts


if __name__ == '__main__':
    print(solve(*get_data("input"), nstep=40))