예제 #1
0
        public void testNoRows()
        {
            HGridBuilder b = new HGridBuilder();

            b.Meta.add("dis", "Title");
            b.addCol("a").add("dis", "Alpha");
            b.addCol("b");
            HGrid g = b.toGrid();

            // meta
            Assert.AreEqual(g.meta.size(), 1);
            Assert.IsTrue(g.meta.get("dis").hequals(HStr.make("Title")));

            // cols
            HCol c;

            Assert.AreEqual(g.numCols, 2);
            c = verifyCol(g, 0, "a");
            Assert.AreEqual(c.dis(), "Alpha");
            Assert.AreEqual(c.meta.size(), 1);
            Assert.IsTrue(c.meta.get("dis").hequals(HStr.make("Alpha")));

            // rows
            Assert.AreEqual(g.numRows, 0);
            Assert.AreEqual(g.isEmpty(), true);

            // iterator
            verifyGridIterator(g);
        }
예제 #2
0
        public void testSimple()
        {
            HGridBuilder b = new HGridBuilder();

            b.addCol("id");
            b.addCol("dis");
            b.addCol("area");
            b.addRow(new HVal[] { HRef.make("a"), HStr.make("Alpha"), HNum.make(1200) });
            b.addRow(new HVal[] { HRef.make("b"), null, HNum.make(1400) });

            // meta
            HGrid g = b.toGrid();

            Assert.AreEqual(g.meta.size(), 0);

            // cols
            //HCol c;
            Assert.AreEqual(g.numCols, 3);
            verifyCol(g, 0, "id");
            verifyCol(g, 1, "dis");
            verifyCol(g, 2, "area");

            // rows
            Assert.AreEqual(g.numRows, 2);
            Assert.IsFalse(g.isEmpty());
            HRow r;

            r = g.row(0);
            Assert.IsTrue(r.get("id").hequals(HRef.make("a")));
            Assert.IsTrue(r.get("dis").hequals(HStr.make("Alpha")));
            Assert.IsTrue(r.get("area").hequals(HNum.make(1200)));
            r = g.row(1);
            Assert.IsTrue(r.get("id").hequals(HRef.make("b")));
            Assert.IsNull(r.get("dis", false));
            Assert.IsTrue(r.get("area").hequals(HNum.make(1400)));
            try { r.get("dis"); Assert.Fail(); } catch (UnknownNameException) { Assert.IsTrue(true); }
            Assert.IsNull(r.get("fooBar", false));
            try { r.get("fooBar"); Assert.Fail(); } catch (UnknownNameException) { Assert.IsTrue(true); }

            // HRow no-nulls
            HRow it = g.row(0);

            Assert.IsFalse(it.Size > 3);
            verifyRowIterator(it, 0, "id", HRef.make("a"));
            verifyRowIterator(it, 1, "dis", HStr.make("Alpha"));
            verifyRowIterator(it, 2, "area", HNum.make(1200));


            // HRow with nulls
            it = g.row(1);
            Assert.IsFalse(it.Size > 3);
            verifyRowIterator(it, 0, "id", HRef.make("b"));
            verifyRowIterator(it, 2, "area", HNum.make(1400));

            // iterating
            verifyGridIterator(g);
        }
예제 #3
0
        //////////////////////////////////////////////////////////////////////////
        // Reads
        //////////////////////////////////////////////////////////////////////////

        protected override HDict onReadById(HRef id)
        {
            HGrid res = readByIds(new HRef[] { id }, false);

            if (res.isEmpty())
            {
                return(null);
            }
            HDict rec = res.row(0);

            if (rec.missing("id"))
            {
                return(null);
            }
            return(rec);
        }