Exemple #1
0
def test_a_negated_tag_is_also_interesting(rnd):
    selector = TargetSelector(rnd)
    selector.add(FakeConjectureData(tags=frozenset({0})))
    selector.add(FakeConjectureData(tags=frozenset({0})))
    selector.add(FakeConjectureData(tags=frozenset()))
    _, data = selector.select()
    assert not data.tags
Exemple #2
0
def test_cycles_through_all_tags_in_bounded_time_mixed(rnd, d1, d2):
    selector = TargetSelector(rnd)
    for d in d1:
        selector.add(d)
    check_bounded_cycle(selector)
    for d in d2:
        selector.add(d)
    check_bounded_cycle(selector)
Exemple #3
0
def test_always_starts_with_rare_tags(rnd, n):
    selector = TargetSelector(rnd)
    selector.add(FakeConjectureData(tags=frozenset({0})))
    for _ in hrange(n):
        selector.select()
    selector.add(FakeConjectureData(tags=frozenset({1})))
    _, data = selector.select()
    assert 1 in data.tags
def test_target_selector_will_use_novel_examples_preferentially():
    selector = TargetSelector(random=Random(0), pool_size=3)
    seen = set()

    for i in range(100):
        selector.add(FakeData())
        assert len(selector) == min(i + 1, 3)
        t = selector.select().global_identifier
        assert t not in seen
        seen.add(t)
Exemple #5
0
def test_selects_non_universal_tag(rnd):
    selector = TargetSelector(rnd)
    selector.add(FakeConjectureData({0}))
    selector.add(FakeConjectureData(set()))
    tag1, x = selector.select()
    assert tag1 is not universal
    tag2, y = selector.select()
    assert tag2 is not universal
    assert tag1 != tag2
    assert x != y
def test_target_selector_will_maintain_a_bounded_size_with_scores(pool_size):
    selector = TargetSelector(random=Random(0), pool_size=pool_size)
    selector.add(FakeData())

    for i in range(100):
        selector.add(
            FakeData(target_observations={str(i // 3 == 0): float(i % 30)}))
        assert len(selector) <= pool_size
        for label, pool in selector.scored_examples.items():
            scores = [ex.target_observations[label] for ex in pool]
            assert scores == sorted(scores, reverse=True)

    selector.add(FakeData())
    assert len(selector) <= pool_size
def test_target_selector_will_eventually_reuse_examples():
    selector = TargetSelector(random=Random(0), pool_size=2)
    seen = set()

    selector.add(FakeData())
    selector.add(FakeData())

    for _ in range(2):
        x = selector.select()
        assert x.global_identifier not in seen
        seen.add(x.global_identifier)

    for _ in range(2):
        x = selector.select()
        assert x.global_identifier in seen
def test_target_selector_will_maintain_a_bounded_pool():
    selector = TargetSelector(random=Random(0), pool_size=3)

    for i in range(100):
        selector.add(FakeData())
        assert len(selector) == min(i + 1, 3)
Exemple #9
0
def test_cycles_through_all_tags_in_bounded_time(rnd, datas):
    selector = TargetSelector(rnd)
    for d in datas:
        selector.add(d)
    check_bounded_cycle(selector)
def test_target_selector_can_discard_labels():
    selector = TargetSelector(random=Random(0), pool_size=2)
    for i in range(10):
        selector.add(FakeData(target_observations={str(i): 0.0}))
        assert len(selector) <= 2
 def initialize(self, rnd):
     self.target_selector = TargetSelector(rnd)