Skip to content

Commit 14d9a28

Browse files
checkRelations
1 parent ff8703c commit 14d9a28

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

src/main/java/network/aika/neuron/activation/Linker.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,13 +169,19 @@ protected void link(Synapse s, Activation iAct, Activation oAct) {
169169

170170
private boolean checkRelations(Synapse s, Activation iAct, Activation oAct) {
171171
for(Map.Entry<Integer, Relation> me: s.relations.entrySet()) {
172+
Integer relSynId = me.getKey();
172173
Relation rel = me.getValue();
173-
if(me.getKey() == Synapse.OUTPUT) {
174+
if(relSynId == Synapse.OUTPUT) {
174175
if (!rel.test(iAct, oAct)) {
175176
return false;
176177
}
178+
} else {
179+
Synapse relSyn = oAct.getNeuron().getSynapseById(relSynId);
180+
if(relSyn!= null && oAct.getInputLinksBySynapse(false, relSyn)
181+
.anyMatch(l -> !rel.test(iAct, l.input))) {
182+
return false;
183+
}
177184
}
178-
// TODO: other relations
179185
}
180186

181187
return true;

src/test/java/network/aika/network/PositionRelationTest.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,15 +273,24 @@ public void testOptionalRelation() {
273273
new Relation.Builder()
274274
.setFrom(0)
275275
.setTo(1)
276-
.setRelation(new MultiRelation(new Equals(END, BEGIN, true, true), new LessThan(BEGIN, BEGIN, false, false, false, Integer.MAX_VALUE))),
276+
.setRelation(new MultiRelation(
277+
new Equals(END, BEGIN, true, true),
278+
new LessThan(BEGIN, BEGIN, false, false, false, Integer.MAX_VALUE)
279+
)),
277280
new Relation.Builder()
278281
.setFrom(1)
279282
.setTo(1)
280-
.setRelation(new MultiRelation(new Equals(END, BEGIN, true, true), new LessThan(BEGIN, BEGIN, false, false, false, Integer.MAX_VALUE))),
283+
.setRelation(new MultiRelation(
284+
new Equals(END, BEGIN, true, true),
285+
new LessThan(BEGIN, BEGIN, false, false, false, Integer.MAX_VALUE)
286+
)),
281287
new Relation.Builder()
282288
.setFrom(1)
283289
.setTo(2)
284-
.setRelation(new MultiRelation(new Equals(END, BEGIN, true, true), new LessThan(BEGIN, BEGIN, false, false, false, Integer.MAX_VALUE))),
290+
.setRelation(new MultiRelation(
291+
new Equals(END, BEGIN, true, true),
292+
new LessThan(BEGIN, BEGIN, false, false, false, Integer.MAX_VALUE)
293+
)),
285294
new Relation.Builder()
286295
.setFrom(0)
287296
.setTo(OUTPUT)

0 commit comments

Comments
 (0)