コード例 #1
0
ファイル: test_models.py プロジェクト: wesmith/pyphi
def test_partition_normalize():
    assert k_partition().normalize() == models.KPartition(
        models.Part((), (1, )),
        models.Part((0, ), (0, 4)),
        models.Part((2, ), (2, )),
        models.Part((6, ), (5, )),
    )
コード例 #2
0
def test_mice_repr_str():
    mice = models.Mice(models.Mip(
        direction=None, mechanism=(), purview=(),
        unpartitioned_repertoire=None, partitioned_repertoire=None,
        phi=0.0, partition=(models.Part((), ()), models.Part((), ()))))
    print(repr(mice))
    print(str(mice))
コード例 #3
0
def k_partition(node_labels=None):
    return models.KPartition(
        models.Part((0,), (0, 4)),
        models.Part((), (1,)),
        models.Part((6,), (5,)),
        models.Part((2,), (2,)),
        node_labels=node_labels)
コード例 #4
0
ファイル: test_models.py プロジェクト: wesmith/pyphi
def tripartition(node_labels):
    return models.Tripartition(
        models.Part((0, ), (0, 4)),
        models.Part((), (1, )),
        models.Part((2, ), (2, )),
        node_labels=node_labels,
    )
コード例 #5
0
def test_concept_hashing(s):
    mice = models.Mice(models.Mip(
        direction=None, mechanism=(0, 1, 2), purview=(0, 1, 2),
        unpartitioned_repertoire=None, partitioned_repertoire=None,
        phi=0.0, partition=(models.Part((), ()), models.Part((), ()))))
    concept = models.Concept(
        mechanism=(0, 1, 2), cause=mice, effect=mice, subsystem=s, phi=0.0)
    hash(concept)
コード例 #6
0
ファイル: test_models.py プロジェクト: wesmith/pyphi
def test_cuts_can_have_node_labels(node_labels):
    models.NullCut((0, 1), node_labels=node_labels)
    models.Cut((0, ), (1, ), node_labels=node_labels)

    k_partition = models.KPartition(models.Part((0, 1), (0, )),
                                    models.Part((), (1, )),
                                    node_labels=node_labels)
    models.KCut(Direction.CAUSE, k_partition, node_labels=node_labels)
コード例 #7
0
def test_concept_repr_str():
    mice = models.Mice(models.Mip(
        direction=None, mechanism=(), purview=(),
        unpartitioned_repertoire=None, partitioned_repertoire=None,
        phi=0.0, partition=(models.Part((), ()), models.Part((), ()))))
    concept = models.Concept(
        mechanism=(), cause=mice, effect=mice,
        subsystem=None, phi=0.0)
    print(repr(concept))
    print(str(concept))
コード例 #8
0
def test_json_deserialization(s, transition):
    objects = [
        Direction.CAUSE,
        s.network,  # Network
        s,  # Subsystem
        models.Bipartition(models.Part((0, ), ()), models.Part((1, ), (2, 3))),
        models.KPartition(models.Part((0, ), ()), models.Part((1, ), (2, 3))),
        models.Tripartition(models.Part((0, ), ()), models.Part((1, ), (2, 3)),
                            models.Part((3, ), (4, ))),
        models.Cut((0, ), (2, )),
        models.NullCut((0, 1)),
        models.KCut(
            Direction.CAUSE,
            models.KPartition(models.Part((0, ), ()), models.Part((1, ),
                                                                  (2, 3)))),
        s.concept((1, 2)),
        s.concept((1, )),
        compute.ces(s),
        compute.sia(s),
        transition,
        transition.find_actual_cause((0, ), (0, )),
        actual.account(transition),
        actual.sia(transition)
    ]
    for o in objects:
        loaded = jsonify.loads(jsonify.dumps(o))
        assert loaded == o
コード例 #9
0
def test_concept_equality_one_subsystem_is_subset_of_another(s, subsys_n1n2):
    phi = 1.0
    mice = models.Mice(models.Mip(
        direction=None, mechanism=(), purview=(1, 2),
        unpartitioned_repertoire=(), partitioned_repertoire=(),
        phi=0.0, partition=(models.Part((), ()), models.Part((), ()))))
    concept = models.Concept(mechanism=(2,), cause=mice, effect=mice,
                             subsystem=s, phi=phi)
    another = models.Concept(mechanism=(2,), cause=mice, effect=mice,
                             subsystem=subsys_n1n2, phi=phi)
    assert concept == another
コード例 #10
0
def test_concept_hashing_one_subsystem_is_subset_of_another(s, subsys_n1n2):
    phi = 1.0
    mice = models.Mice(models.Mip(
        direction=None, mechanism=(), purview=(1, 2),
        unpartitioned_repertoire=(), partitioned_repertoire=(),
        phi=0.0, partition=(models.Part((), ()), models.Part((), ()))))
    concept = models.Concept(mechanism=(2,), cause=mice, effect=mice,
                             subsystem=s, phi=phi)
    another = models.Concept(mechanism=(2,), cause=mice, effect=mice,
                             subsystem=subsys_n1n2, phi=phi)
    assert hash(concept) == hash(another)
    assert(len(set([concept, another])) == 1)
コード例 #11
0
def test_concept_equality_repertoires(s):
    phi = 1.0
    mice1 = models.Mice(models.Mip(
        direction=None, mechanism=(), purview=(),
        unpartitioned_repertoire=np.array([1, 2]), partitioned_repertoire=(),
        phi=0.0, partition=(models.Part((), ()), models.Part((), ()))))
    mice2 = models.Mice(models.Mip(
        direction=None, mechanism=(), purview=(),
        unpartitioned_repertoire=np.array([0, 0]), partitioned_repertoire=None,
        phi=0.0, partition=(models.Part((), ()), models.Part((), ()))))
    concept = models.Concept(mechanism=(), cause=mice1, effect=mice2,
                             subsystem=s, phi=phi)
    another = models.Concept(mechanism=(), cause=mice2, effect=mice1,
                             subsystem=s, phi=phi)
    assert concept != another
コード例 #12
0
ファイル: test_actual.py プロジェクト: wesmith/pyphi
def test_ac_ex1_transition(transition):
    """Basic regression test for ac_ex1 example."""

    cause_account = actual.account(transition, Direction.CAUSE)
    assert len(cause_account) == 1
    cria = cause_account[0].ria

    assert cria.mechanism == (0,)
    assert cria.purview == (1,)
    assert cria.direction == Direction.CAUSE
    assert cria.state == (1, 0, 0)
    assert cria.alpha == 0.415037
    assert cria.probability == 0.66666666666666663
    assert cria.partitioned_probability == 0.5
    assert cria.partition == models.Bipartition(
        models.Part((), (1,)), models.Part((0,), ())
    )

    effect_account = actual.account(transition, Direction.EFFECT)
    assert len(effect_account) == 2
    eria0 = effect_account[0].ria
    eria1 = effect_account[1].ria

    assert eria0.mechanism == (1,)
    assert eria0.purview == (0,)
    assert eria0.direction == Direction.EFFECT
    assert eria0.state == (0, 1, 1)
    assert eria0.alpha == 0.415037
    assert eria0.probability == 1.0
    assert eria0.partitioned_probability == 0.75
    assert eria0.partition == models.Bipartition(
        models.Part((), (0,)), models.Part((1,), ())
    )

    assert eria1.mechanism == (2,)
    assert eria1.purview == (0,)
    assert eria1.direction == Direction.EFFECT
    assert eria1.state == (0, 1, 1)
    assert eria1.alpha == 0.415037
    assert eria1.probability == 1.0
    assert eria1.partitioned_probability == 0.75
    assert eria1.partition == models.Bipartition(
        models.Part((), (0,)), models.Part((2,), ())
    )
コード例 #13
0
ファイル: test_models.py プロジェクト: wesmith/pyphi
def bipartition(node_labels):
    return models.Bipartition(models.Part((0, ), (0, 4)),
                              models.Part((), (1, )),
                              node_labels=node_labels)
コード例 #14
0
def k_partition():
    return models.KPartition(models.Part((0, ), (0, 4)), models.Part((),
                                                                     (1, )),
                             models.Part((6, ), (5, )),
                             models.Part((2, ), (2, )))
コード例 #15
0
def tripartition():
    return models.Tripartition(models.Part((0, ), (0, 4)),
                               models.Part((), (1, )), models.Part((2, ),
                                                                   (2, )))
コード例 #16
0
def bipartition():
    return models.Bipartition(models.Part((0, ), (0, 4)), models.Part((),
                                                                      (1, )))