def test_projn_can_specify_its_weight_distribution() -> None: pre = lr.Layer("lr1", size=3) post = lr.Layer("lr2", size=3) projn = pr.Projn("proj", pre, post, sp.ProjnSpec(dist=rn.Scalar(7))) assert (projn.wts == 7).all()
def test_projn_can_flush() -> None: pre = lr.Layer("lr1", size=1) post = lr.Layer("lr2", size=1) projn = pr.Projn("proj", pre, post) projn.flush()
def test_observing_invalid_parts_attr_raises_value_error() -> None: pre = lr.Layer("lr1", size=2) post = lr.Layer("lr2", size=2) projn = pr.Projn("proj", pre, post) with pytest.raises(ValueError): projn.observe_parts_attr("whales")
def test_projn_has_a_receiving_layer() -> None: pre = lr.Layer("lr1", size=1) post = lr.Layer("lr2", size=1) projn = pr.Projn("proj", pre, post) assert projn.post == post
def test_projn_can_learn() -> None: pre = lr.Layer("lr1", size=2) post = lr.Layer("lr2", size=2) projn = pr.Projn("proj", pre, post) projn.learn()
def test_projn_has_a_name() -> None: pre = lr.Layer("lr1", size=1) post = lr.Layer("lr2", size=1) projn = pr.Projn("proj", pre, post) assert projn.name == "proj"
def test_projn_has_a_sending_layer(): pre = lr.Layer("lr1", size=1) post = lr.Layer("lr2", size=1) projn = pr.Projn("proj", pre, post) assert projn.pre == pre