def test_snapshot_mini_taxa(capsys):
    taxonomy = Taxonomy()
    acc = {}
    programs = labelled_programs(Path("examples/mini/programs"))
    for program in programs:
        taxa = taxonomy.to_taxa(program.labels)
        acc[program.name] = {
            name: " ".join(map(couple_to_string, sorted(set(spans)))) for (name, spans) in taxa
        }
    result = json.dumps(acc, indent=2)
    make_snapshot(Path("examples/mini/taxa.json"), result, capsys)
Esempio n. 2
0
def test_snapshot_simple_taxons(capsys):
    taxonomy = Taxonomy()
    acc = {}
    labeller = ProgramLabeller()
    labeller.label_programs(Path("tests/data/simple"))
    for program in labeller.programs:
        taxons = taxonomy.to_taxons(program.labels)
        acc[program.name] = {
            name: " ".join(map(couple_to_string, sorted(set(spans)))) for (name, spans) in taxons
        }
    result = json.dumps(acc, indent=2)
    make_snapshot(Path("tests/snapshots/simple_taxons.json"), result, capsys)
Esempio n. 3
0
import json
from collections import Counter as c
from pathlib import Path

import pytest

from make_snapshot import make_snapshot

import context
from paroxython.goodies import couple_to_string
from paroxython.label_programs import labelled_programs
from paroxython.map_taxonomy import Taxonomy, deduplicated_taxa, is_literal
from paroxython.user_types import Label, Program, Span

t = Taxonomy(Path("examples/mini/taxonomy.tsv"))
S = lambda i, j: Span(i, j)  # shortcut for Span(i, j)


def test_initial_values():
    print(t.literal_labels)
    assert t.literal_labels == {
        "literal:Set":
        ["call/subroutine/builtin/casting/set", "type/non_sequence/set"],
        "if": ["flow/conditional"],
        "if_else": ["flow/conditional/else"],
        "free_call:list": ["type/sequence/list"],
        "member_call_method:difference_update": ["type/non_sequence/set"],
    }
    print(t.compiled_labels)
    assert t.compiled_labels[0][1] == "call/subroutine/builtin/casting/\\1"
    assert t.compiled_labels[1][1] == "condition/inequality"
Esempio n. 4
0
import json
from collections import Counter as C
from pathlib import Path

import pytest

import context
from make_snapshot import make_snapshot
from paroxython.goodies import couple_to_string
from paroxython.label_programs import ProgramLabeller
from paroxython.map_taxonomy import Taxonomy
from paroxython.user_types import Label, Program, Span

t = Taxonomy(Path("tests/data/dummy/taxonomy.tsv"))
S = lambda i, j: Span(i, j)  # shortcut for Span(i, j)


def test_initial_values():
    print(t.literal_label_names)
    assert t.literal_label_names == {
        "literal:Set": ["call/function/builtin/casting/set", "type/non_sequence/set"],
        "if": ["flow/conditional"],
        "if_else": ["flow/conditional/else"],
        "free_call:list": ["type/sequence/list"],
        "member_call:difference_update": ["type/non_sequence/set"],
    }
    print(t.compiled_label_names)
    assert t.compiled_label_names[0][1] == "call/function/builtin/casting/\\1"
    assert t.compiled_label_names[1][1] == "test/inequality"