コード例 #1
0
ファイル: ex10.2_str_equal.c プロジェクト: hakrlife/bhuvan
int main(void)
{
    bool eql;
	bool str_eql(const char ar1[], const char ar2[]);
	const char arr1[] = "Test ";
	const char arr2[] = "works.";

    eql = str_eql(arr1,arr2);
    if(eql == true )
        printf(" The arrays arr1 and arr2 is equal \n");
    else
        printf(" The arrays arr1 and arr2 is not equal \n");

    eql = str_eql(arr2,arr2);
    if(eql == true )
        printf(" The arrays arr2 and arr2 is equal \n");
    else
        printf(" The arrays arr2 and arr2 is not equal \n");

    eql = str_eql(arr1,"Test ");
    if(eql == true )
        printf(" The arrays arr1 and \"Test\" is equal \n");
    else
        printf(" The arrays arr1 and \"Test\" is not equal \n");

}
コード例 #2
0
ファイル: test.c プロジェクト: kevinjhanna/gumpdb
static char * test_init_db() {
  person a_person;
  GumpDB db = gmp_init_DB("people.db", 100);

  mu_assert("file name", str_eql(db->file_name, "people.db"));
  mu_assert("size of data", db->size_of_data == 100);
  return 0;
}
コード例 #3
0
ファイル: test.c プロジェクト: kevinjhanna/gumpdb
static char * test_modify() {
  create_file("people_test");

  /* Initialize DB */
  GumpDB db = gmp_init_DB("people_test", sizeof(person));

  person john;
  strcpy(john.first_name, "John");
  strcpy(john.last_name, "Doe");
  john.age = 20;

  int id;
  gmp_store(db, &id, &john);
  gmp_modify(db, id, &modifyPerson);

  person retrieved;
  bool result = gmp_retrieve(db, id, &retrieved);
  mu_assert("retrieve result", result);
  mu_assert("first person name", str_eql(retrieved.first_name, "john"));
  mu_assert("first person last name", str_eql(retrieved.last_name, "Doe"));
  mu_assert("first person age", retrieved.age == 40);

  return 0;
}
コード例 #4
0
ファイル: SLData.cpp プロジェクト: clagv/sl
 size_t Data::idx(const std::string& key, size_t keyCount, bool required) const
 {
     if(key.empty())
         return curIdx(required);
     if(0 == keyCount && !end() && str_eql(key, m_keys[m_pos]))
         return m_pos;
     if(keyCount < m_keyIdx.size())
     {
         KeyIdx ki(key, 0);
         KeyIdxVec::const_iterator it = std::lower_bound(m_keyIdx.begin(), m_keyIdx.end(), ki, key_less);
         size_t keyIdxPos = std::distance(m_keyIdx.begin(), it) + keyCount;
         if(keyIdxPos < m_keyIdx.size() && key_eql(ki, m_keyIdx[keyIdxPos]))
             return m_keyIdx[keyIdxPos].second;
     }
     if(required)
         throw std::exception("sl::Data::idx - key not found");
     return IdxInvalidPos;
 }
コード例 #5
0
ファイル: test.c プロジェクト: kevinjhanna/gumpdb
static char * test_retrieve() {
  create_file("people_test");

  /* Initialize DB */
  GumpDB db = gmp_init_DB("people_test", sizeof(person));

  /* Let's create three different records and store them in our DB*/
  person john;
  strcpy(john.first_name, "John");
  strcpy(john.last_name, "Doe");
  john.age = 39;

  person jane;
  strcpy(jane.first_name, "Jane");
  strcpy(jane.last_name, "Black");
  jane.age = 41;

  person paul;
  strcpy(paul.first_name, "Paul");
  strcpy(paul.last_name, "McGregor");
  paul.age = 40;

  gmp_store(db, NULL,  &john); /* id = 0 */
  gmp_store(db, NULL, &jane); /* id = 1 */
  gmp_store(db, NULL, &paul); /* id = 2 */

  /* Now let's fetch them by id */

  person retrieved;
  bool result = gmp_retrieve(db, 0, &retrieved);
  mu_assert("retrieve result", result);
  mu_assert("first person name", str_eql(retrieved.first_name, "John"));
  mu_assert("first person last name", str_eql(retrieved.last_name, "Doe"));
  mu_assert("first person age", retrieved.age == 39);

  /* Skip to the last record */
  result = gmp_retrieve(db, 2, &retrieved);
  mu_assert("retrieve result", result);
  mu_assert("last person name", str_eql(retrieved.first_name, "Paul"));
  mu_assert("last person last name", str_eql(retrieved.last_name, "McGregor"));
  mu_assert("last person age", retrieved.age == 40);

  /* And back to the second record */
  result = gmp_retrieve(db, 1, &retrieved);
  mu_assert("retrieve result", result);
  mu_assert("second person name", str_eql(retrieved.first_name, "Jane"));
  mu_assert("second person last name", str_eql(retrieved.last_name, "Black"));
  mu_assert("second person age", retrieved.age == 41);

  return 0;
}
コード例 #6
0
ファイル: test.c プロジェクト: kevinjhanna/gumpdb
static char * test_delete() {
  create_file("people_test");

  /* Initialize DB */
  GumpDB db = gmp_init_DB("people_test", sizeof(person));

  person john;
  strcpy(john.first_name, "John");

  gmp_store(db, NULL, &john);

  /* Let's make sure we can fetch it id */
  person retrieved;
  bool result = gmp_retrieve(db, 0, &retrieved);
  mu_assert("retrieve result", result);
  mu_assert("first person name", str_eql(retrieved.first_name, "John"));

  /* Now we delete the record in the DB */
  result = gmp_delete(db, 0);
  mu_assert("delete record with id = 0", result);

  /* We shouldn't be able to retrieve the result now */
  person not_retrieved;
  result = gmp_retrieve(db, 0, &not_retrieved);
  mu_assert("don't retrieve result", !result);

  /* We shouldn't be able to delete a deleted record */
  result = gmp_delete(db, 0);
  mu_assert("don't delete record with id = 0", !result);

  /* Neither a non existent record */
  result = gmp_delete(db, 1);
  mu_assert("don't delete record with id = 1", !result);

  return 0;
}
コード例 #7
0
ファイル: test.c プロジェクト: kevinjhanna/gumpdb
static char * test_list() {
  create_file("people_test");

  /* Initialize DB */
  GumpDB db = gmp_init_DB("people_test", sizeof(person));

  /* Let's create three different records and store them in our DB*/
  person john;
  strcpy(john.first_name, "John");
  strcpy(john.last_name, "Doe");
  john.age = 39;

  person jane;
  strcpy(jane.first_name, "Jane");
  strcpy(jane.last_name, "Black");
  jane.age = 41;

  person paul;
  strcpy(paul.first_name, "Paul");
  strcpy(paul.last_name, "McGregor");
  paul.age = 40;

  gmp_store(db, NULL, &john);
  gmp_store(db, NULL, &jane);
  gmp_store(db, NULL, &paul);

  int count;
  bool result;

  GumpDBRecord ** list;

  result = gmp_list(db, &list, &count);
  mu_assert("retrieve result", result);
  mu_assert("count == 3", count == 3);

  /* This is how it would look like to fetch each an attribute */
  mu_assert("first person name", str_eql(((person *)
          (list[0]->record))->first_name, "John"));

  /* Lucky to us,  we have defined the get(id, attr) macro */
  mu_assert("first person last name", str_eql(get(0, last_name), "Doe"));
  mu_assert("first person age", get(0, age) == 39);

  mu_assert("first person id == 0", list[0]->id == 0);

  /* Skip to the last record (third) */
  mu_assert("last person name", str_eql(get(2, first_name), "Paul"));
  mu_assert("last person last name", str_eql(get(2, last_name), "McGregor"));
  mu_assert("last person age", get(2, age) == 40);

  mu_assert("first person id == 2", list[2]->id == 2);

  /* And back to the second record */
  mu_assert("second person name", str_eql(get(1, first_name), "Jane"));
  mu_assert("second person last name", str_eql(get(1, last_name), "Black"));
  mu_assert("second person age", get(1, age) == 41);

  mu_assert("first person id == 1", list[1]->id == 1);

  /* So far, so good. But what happens when we delete a record?  */
  result = gmp_delete(db, 1);
  mu_assert("delete record with id = 1", result);

  result = gmp_list(db, &list, &count);
  mu_assert("retrieve result", result);
  mu_assert("count == 2", count == 2);

  mu_assert("first person name", str_eql(get(0, first_name), "John"));
  mu_assert("first person last name", str_eql(get(0, last_name), "Doe"));
  mu_assert("first person age", get(0, age) == 39);

  mu_assert("first person id == 0", list[0]->id == 0);

  /* Now the last record, list[1],  has id = 2 */
  mu_assert("first person id == 2", list[1]->id == 2);

  mu_assert("last person name", str_eql(get(1, first_name), "Paul"));
  mu_assert("last person last name", str_eql(get(1, last_name), "McGregor"));
  mu_assert("last person age", get(1, age) == 40);

  return 0;
}