/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package automenta.netention;
import automenta.netention.impl.MemorySelf;
import automenta.netention.linker.hueristic.DefaultHeuristicLinker;
import automenta.netention.value.integer.IntProp;
import automenta.netention.value.integer.IntegerEquals;
import automenta.netention.value.integer.IntegerIs;
import automenta.netention.value.string.StringProp;
import junit.framework.TestCase;
/**
*
* @author seh
*/
public class TestMemorySelf extends TestCase {
public void testMemorySelf() {
Self s = new MemorySelf("me", "Me");
//add properties
{
Property prop1 = new StringProp("prop1", "String Property");
s.addProperty(prop1);
Property prop2 = new IntProp("prop2", "Integer Property");
s.addProperty(prop2);
}
//add patterns
{
Pattern p1 = new Pattern("pat1");
p1.properties.put("prop1", 1.0);
s.addPattern(p1);
Pattern p2 = new Pattern("pat2");
p2.properties.put("prop2", 0.7);
s.addPattern(p2);
}
Detail ma = new Detail("a", Mode.Real, "pat1", "pat2");
s.addDetail(ma);
Detail mb = new Detail("b", Mode.Imaginary, "pat1");
s.addDetail(mb);
//add details
{
assertEquals(2, s.getAvailableProperties(ma, "pat1", "pat2").size());
ma.add("prop1", new IntegerIs(0));
//now that a property is added, it should be one less available
assertEquals(1, s.getAvailableProperties(ma, "pat1", "pat2").size());
mb.add("prop1", new IntegerEquals(0));
}
//test linker
{
s.link(new DefaultHeuristicLinker(s));
// SimpleDynamicDirectedGraph<Node, Link> g = s.getGraph();
// assertEquals(2, g.getNodes().size());
// assertEquals(1, g.getEdges().size());
}
}
}