void verifyGridEq(HGrid grid, HDict meta, Object[] cols, HVal[][] rows) { // meta Assert.IsTrue(grid.meta.hequals(meta)); // cols Assert.AreEqual(grid.numCols, cols.Length / 2); for (int i = 0; i < grid.numCols; ++i) { Assert.AreEqual(grid.col(i).Name, cols[i * 2 + 0]); Assert.IsTrue(grid.col(i).meta.hequals(cols[i * 2 + 1])); } // rows Assert.AreEqual(grid.numRows, rows.Length); for (int ri = 0; ri < rows.Length; ++ri) { HVal[] expected = rows[ri]; HRow actual = grid.row(ri); for (int ci = 0; ci < expected.Length; ++ci) { Assert.AreEqual(expected[ci], actual.get(grid.col(ci).Name, false)); } } }
public void testBasics() { HRow row = BuildRows( new[] { "id", "site", "geoAddr", "area", "date", "null" }, new HVal[] { HRef.make("aaaa-bbbb"), HMarker.VAL, HStr.make("Richmond, Va"), HNum.make(1200, "ft"), HDate.make(2000, 12, 3), null }) .First(); // size Assert.AreEqual(row.size(), 6); Assert.IsFalse(row.isEmpty()); // configured tags Assert.IsTrue(row.get("id").hequals(HRef.make("aaaa-bbbb"))); Assert.IsTrue(row.get("site").hequals(HMarker.VAL)); Assert.IsTrue(row.get("geoAddr").hequals(HStr.make("Richmond, Va"))); Assert.IsTrue(row.get("area").hequals(HNum.make(1200, "ft"))); Assert.IsTrue(row.get("date").hequals(HDate.make(2000, 12, 3))); Assert.AreEqual(row.get("null", false), null); try { row.get("null"); Assert.Fail(); } catch (HaystackUnknownNameException) { Assert.IsTrue(true); } // missing tag Assert.IsFalse(row.has("foo")); Assert.IsTrue(row.missing("foo")); Assert.IsNull(row.get("foo", false)); try { row.get("foo"); Assert.Fail(); } catch (HaystackUnknownNameException) { Assert.IsTrue(true); } try { row.get("foo", true); Assert.Fail(); } catch (HaystackUnknownNameException) { Assert.IsTrue(true); } }
void verifyRowIterator(HRow it, int iIndex, string name, HVal val) { Assert.IsTrue(it.Size > iIndex); string strKeyValue = it.getKeyAt(iIndex, false); Assert.AreEqual(strKeyValue, name); Assert.IsTrue(it.get(strKeyValue, false).hequals(val)); }
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); }
private void writeRow(HGrid grid, HRow row) { for (int i = 0; i < grid.numCols; ++i) { HVal val = row.get(grid.col(i), false); if (i > 0) { m_swOut.Write(m_cDelimiter); } writeCell(valToString(val)); } }
public void testIsTagName() { Assert.IsFalse(HRow.isTagName("")); Assert.IsFalse(HRow.isTagName("A")); Assert.IsFalse(HRow.isTagName(" ")); Assert.IsTrue(HRow.isTagName("a")); Assert.IsTrue(HRow.isTagName("a_B_19")); Assert.IsFalse(HRow.isTagName("a b")); Assert.IsFalse(HRow.isTagName("a\u0128")); Assert.IsFalse(HRow.isTagName("a\u0129x")); Assert.IsFalse(HRow.isTagName("a\uabcdx")); Assert.IsTrue(HRow.isTagName("^tag")); }
public void testEmpty() { // Instance Empty HRow row = BuildRows(Array.Empty <string>(), Array.Empty <HVal>()).First(); Assert.AreEqual(row, HRow.Empty); // size Assert.AreEqual(row.size(), 0); Assert.IsTrue(row.isEmpty()); // missing tag Assert.IsFalse(row.has("foo")); Assert.IsTrue(row.missing("foo")); Assert.IsNull(row.get("foo", false)); }
private void writeRow(HGrid grid, HRow row) { for (int i = 0; i < grid.numCols; ++i) { HVal val = row.get(grid.col(i), false); if (i > 0) { m_swOut.Write(','); } if (val == null) { if (i == 0) { m_swOut.Write('N'); } } else { m_swOut.Write(val.toZinc()); } } flush(); }
public void testCheckedExplicitMissing() { HRow row = BuildRows(Array.Empty <string>(), Array.Empty <HVal>()).First(); row.get("foo", true); }