Search in sources :

Example 1 with UnitSubterm

use of nars.subterm.UnitSubterm in project narchy by automenta.

the class AnonTest method testMixedAnonVector.

@Test
public void testMixedAnonVector() {
    Term[] x = { $.varDep(1), $.varIndep(2), $.varQuery(3), Anom.the(4) };
    Random rng = new XoRoShiRo128PlusRandom(1);
    for (int i = 0; i < 4; i++) {
        ArrayUtils.shuffle(x, rng);
        assertEqual(new UnitSubterm(x[0]), new AnonVector(x[0]));
        assertEqual(new TermVector2(x[0], x[1]), new AnonVector(x[0], x[1]));
        assertEqual(new ArrayTermVector(x), new AnonVector(x));
    }
}
Also used : XoRoShiRo128PlusRandom(jcog.math.random.XoRoShiRo128PlusRandom) AnonVector(nars.term.anon.AnonVector) Random(java.util.Random) XoRoShiRo128PlusRandom(jcog.math.random.XoRoShiRo128PlusRandom) UnitSubterm(nars.subterm.UnitSubterm) ArrayTermVector(nars.subterm.ArrayTermVector) TermVector2(nars.subterm.TermVector2) Test(org.junit.jupiter.api.Test)

Example 2 with UnitSubterm

use of nars.subterm.UnitSubterm in project narchy by automenta.

the class TermTest method testHashConsistent.

@Test
public void testHashConsistent() {
    Term x = $.the("z");
    Subterms a = new UnitSubterm(x);
    Subterms b = new ArrayTermVector(x);
    assertEquals(a, b);
    assertEquals(a.hashCode(), b.hashCode());
    assertEquals(a.hashCodeSubterms(), b.hashCodeSubterms());
    assertEquals(a.toString(), b.toString());
}
Also used : Subterms(nars.subterm.Subterms) UnitSubterm(nars.subterm.UnitSubterm) ArrayTermVector(nars.subterm.ArrayTermVector) Test(org.junit.jupiter.api.Test)

Example 3 with UnitSubterm

use of nars.subterm.UnitSubterm in project narchy by automenta.

the class TermTest method testHashDistribution.

@Test
public void testHashDistribution() {
    // one letter apart
    int ah = new UnitSubterm($.the("x")).hashCode();
    int bh = new UnitSubterm($.the("y")).hashCode();
    assertTrue(Math.abs(ah - bh) > 1, ah + " vs " + bh);
}
Also used : UnitSubterm(nars.subterm.UnitSubterm) Test(org.junit.jupiter.api.Test)

Example 4 with UnitSubterm

use of nars.subterm.UnitSubterm in project narchy by automenta.

the class UnitCompoundTest method assertEqual.

static void assertEqual(Op o, Atomic x, Compound u) {
    Compound g = CachedCompound.the(o, new UnitSubterm(x));
    assertEquals(g.hashCode(), u.hashCode());
    assertEquals(g.hashCodeSubterms(), u.hashCodeSubterms());
    assertEquals(u, g);
    assertEquals(g, u);
    assertEquals(0, u.compareTo(g));
    assertEquals(0, g.compareTo(u));
    assertEquals(g.toString(), u.toString());
    assertTrue(Arrays.equals(TermKey.termByVolume(g).array(), TermKey.termByVolume(u).array()));
    assertTrue(Arrays.equals(IO.termToBytes(g), IO.termToBytes(u)));
}
Also used : UnitSubterm(nars.subterm.UnitSubterm) Compound(nars.term.Compound)

Example 5 with UnitSubterm

use of nars.subterm.UnitSubterm in project narchy by automenta.

the class AnonTest method testAnomVector.

@Test
public void testAnomVector() {
    Term[] x = { Anom.the(3), Anom.the(1), Anom.the(2) };
    assertEqual(new UnitSubterm(x[0]), new AnonVector(x[0]));
    assertEqual(new TermVector2(x[0], x[1]), new AnonVector(x[0], x[1]));
    assertEqual(new ArrayTermVector(x), new AnonVector(x));
}
Also used : AnonVector(nars.term.anon.AnonVector) UnitSubterm(nars.subterm.UnitSubterm) ArrayTermVector(nars.subterm.ArrayTermVector) TermVector2(nars.subterm.TermVector2) Test(org.junit.jupiter.api.Test)

Aggregations

UnitSubterm (nars.subterm.UnitSubterm)5 Test (org.junit.jupiter.api.Test)4 ArrayTermVector (nars.subterm.ArrayTermVector)3 TermVector2 (nars.subterm.TermVector2)2 AnonVector (nars.term.anon.AnonVector)2 Random (java.util.Random)1 XoRoShiRo128PlusRandom (jcog.math.random.XoRoShiRo128PlusRandom)1 Subterms (nars.subterm.Subterms)1 Compound (nars.term.Compound)1