예제 #1
0
  void SetCases()
  {
    std::string error;
    Dynamic table = TABLE;
    nkit::TableIndex::Ptr index;
    nkit::TableIndex::ConstIterator it;

    DynamicVector vargs;
    vargs.push_back(Dynamic("NEW"));
    vargs.push_back(Dynamic(0));
    vargs.push_back(Dynamic(true));
    vargs.push_back(Dynamic(0));
    vargs.push_back(Dynamic(0.0));

    COMMON_TABLE_INIT(table);

    index = table.CreateIndex("name,name1", &error);
    NKIT_TEST_ASSERT_WITH_TEXT(index, error);

    NKIT_TEST_ASSERT(table.SetRow(table.height() / 2, vargs));
    DynamicVector::iterator vit = vargs.begin();
    for (size_t col = 0; vit != vargs.end(); ++vit, ++col)
    {
  #if defined(MY_TRACE_)
    print(*vit, "", false);
    std::cout << " <> ";
    print(table.GetCellValue(table.height() / 2, col));
  #endif // MY_TRACE_
      NKIT_TEST_ASSERT(*vit == table.GetCellValue(table.height() / 2, col));
    } // for
    NKIT_TEST_ASSERT(index->GetEqual(Dynamic("NEW"),Dynamic(0)) != index->end());
  }
예제 #2
0
  void TableIteratorCases()
  {
    std::string error;
    Dynamic table = TABLE;
    COMMON_TABLE_INIT(table);
    Dynamic::TableIterator it = table.begin_t();
    Dynamic::TableIterator end = table.end_t();

    for (size_t row = 0; it != end; ++it, ++row)
    {
      for (size_t col = 0; col < table.width(); ++col)
        NKIT_TEST_ASSERT(it[col] == table.GetCellValue(row, col));
    }

    it = table.begin_t();
    for (size_t row = 0; it != end; it++, ++row)
    {
      for (size_t col = 0; col < table.width(); ++col)
        NKIT_TEST_ASSERT(it[col] == table.GetCellValue(row, col));
    }
  }