def test_bytes(tplaced, tplaced_tracked, all_tilings):

    assert len(tplaced.assumptions) == 0
    remade = Tiling.from_bytes(tplaced.to_bytes())
    assert tplaced != tplaced_tracked

    assert len(tplaced_tracked.assumptions) == 2

    for tiling in all_tilings:
        remade = Tiling.from_bytes(tiling.to_bytes())
        assert remade == tiling
def assert_tiling(
    data,
    expected,
    requirements=[],
    assumptions=[],
    crossing=[],
    label_map={},
    matrix=[],
    verified=None,
):
    assert Tiling.from_bytes(b64decode(data["key"])) == expected
    if verified is None:
        assert data["verified"] is None
    else:
        verification_rule = data["verified"]
        assert verification_rule[
            "class_module"] == "comb_spec_searcher.strategies.rule"
        assert verification_rule["rule_class"] == "VerificationRule"
        assert verification_rule["formal_step"] == verified
    plot = data["plot"]
    assert plot["assumptions"] == assumptions
    assert plot["crossing"] == crossing
    assert plot["requirements"] == requirements
    assert plot["label_map"] == label_map
    assert plot["matrix"] == matrix
 def test_load_verified_tilings(self):
     DatabaseEnumeration.load_verified_tiling()
     assert DatabaseEnumeration.all_verified_tilings
     sample = next(iter(DatabaseEnumeration.all_verified_tilings))
     Tiling.from_bytes(sample)