Search in sources :

Example 1 with LevelBag

use of nars.storage.LevelBag in project opennars by opennars.

the class BagIteratorTest method testBagIterator.

public void testBagIterator(Bag<NullItem, CharSequence> b) {
    b.putIn(new NullItem(0.1f));
    b.putIn(new NullItem(0.2f));
    b.putIn(new NullItem(0.3f));
    b.putIn(new NullItem(0.4f));
    b.putIn(new NullItem(0.5f));
    b.putIn(new NullItem(0.6f));
    b.putIn(new NullItem(0.7f));
    b.putIn(new NullItem(0.8f));
    if (b instanceof LevelBag)
        assert (((LevelBag) b).numEmptyLevels() < L);
    testIterator(b);
    b.clear();
    testIterator(b);
    b.putIn(new NullItem(0.6f));
    testIterator(b);
}
Also used : NullItem(nars.perf.BagPerf.NullItem) LevelBag(nars.storage.LevelBag)

Example 2 with LevelBag

use of nars.storage.LevelBag in project opennars by opennars.

the class BagOperationsTest method testBagSequence.

public static void testBagSequence(Bag b) {
    // different id, different priority
    b.putIn(makeConcept("a", 0.1f));
    b.putIn(makeConcept("b", 0.15f));
    assertEquals(2, b.size());
    b.clear();
    // same priority, different id
    b.putIn(makeConcept("a", 0.1f));
    b.putIn(makeConcept("b", 0.1f));
    assertEquals(2, b.size());
    b.putIn(makeConcept("c", 0.2f));
    assertEquals(2, b.size());
    assertEquals(0.1f, b.getMinPriority(), 0.001f);
    assertEquals(0.2f, b.getMaxPriority(), 0.001f);
    // if (b instanceof GearBag()) return;
    b.putIn(makeConcept("b", 0.4f));
    assertEquals(2, b.size());
    assertEquals(0.2f, b.getMinPriority(), 0.001f);
    assertEquals(0.4f, b.getMaxPriority(), 0.001f);
    Item tb = b.take(new Term("b"));
    assertTrue(tb != null);
    assertEquals(1, b.size());
    assertEquals(0.4f, tb.getPriority(), 0.001f);
    Item tc = b.takeNext();
    assertEquals(0, b.size());
    assertEquals(0.2f, tc.getPriority(), 0.001f);
    assertEquals(null, b.putIn(makeConcept("a", 0.2f)));
    assertEquals(null, b.putIn(makeConcept("b", 0.3f)));
    if (b instanceof LevelBag) {
        // replaces item on level
        assertEquals("a", b.putIn(makeConcept("c", 0.1f)).name().toString());
    }
}
Also used : Item(nars.entity.Item) Term(nars.language.Term) LevelBag(nars.storage.LevelBag)

Example 3 with LevelBag

use of nars.storage.LevelBag in project opennars by opennars.

the class SpatialSamplingVisionChannel method AddToSpatialBag.

public void AddToSpatialBag(Task t) {
    int x = t.getTerm().term_indices[2];
    int y = t.getTerm().term_indices[3];
    if (spatialbag[y][x] == null) {
        spatialbag[y][x] = new LevelBag(100, 100);
    }
    t.incPriority((float) this.topDownPriority(t.getTerm()));
    spatialbag[y][x].putIn(t);
    Position pos = new Position();
    pos.X = x;
    pos.Y = y;
    // another vote for this position
    sampling.add(pos);
}
Also used : LevelBag(nars.storage.LevelBag)

Example 4 with LevelBag

use of nars.storage.LevelBag in project opennars by opennars.

the class BagPerf method testBag.

public void testBag(final boolean arraylist, final int levels, final int capacity, final PortableDouble forgetRate) {
    totalPriority = 0;
    totalMass = 0;
    totalMaxItemsPerLevel = totalMinItemsPerLevel = 0;
    Performance p = new Performance((arraylist ? "DequeArray" : "LinkedList") + "," + levels + "," + capacity, repeats, warmups) {

        @Override
        public void init() {
        }

        @Override
        public void run(boolean warmup) {
            LevelBag<NullItem, CharSequence> b = new LevelBag(levels, capacity) {
            };
            randomBagIO(b, randomAccesses, insertRatio);
            if (!warmup) {
                totalPriority += b.getAveragePriority();
                totalMass += b.getMass();
                totalMinItemsPerLevel += b.getMinItemsPerLevel();
                totalMaxItemsPerLevel += b.getMaxItemsPerLevel();
            }
        }
    }.printCSV(true);
    // items per level min
    // items per lvel max
    // avg prioirty
    // avg norm mass
    // System.out.print((totalMinItemsPerLevel/p.repeats) + ",");
    System.out.print((totalMaxItemsPerLevel / p.repeats) + ",");
    System.out.print(totalPriority / p.repeats + ",");
    System.out.print(totalMass / repeats / levels + ",");
    System.out.println();
}
Also used : LevelBag(nars.storage.LevelBag)

Aggregations

LevelBag (nars.storage.LevelBag)4 Item (nars.entity.Item)1 Term (nars.language.Term)1 NullItem (nars.perf.BagPerf.NullItem)1