[Groonga-commit] groonga/grnxx at 96ff581 [master] Add tests for new String. (#75)

Back to archive index

susumu.yata null+****@clear*****
Fri Sep 26 15:14:34 JST 2014


susumu.yata	2014-09-26 15:14:34 +0900 (Fri, 26 Sep 2014)

  New Revision: 96ff581c78dd9d373bb74ae1b8015f0965182540
  https://github.com/groonga/grnxx/commit/96ff581c78dd9d373bb74ae1b8015f0965182540

  Message:
    Add tests for new String. (#75)

  Modified files:
    test/test_string.cpp

  Modified: test/test_string.cpp (+71 -0)
===================================================================
--- test/test_string.cpp    2014-09-26 15:14:22 +0900 (d06333a)
+++ test/test_string.cpp    2014-09-26 15:14:34 +0900 (887897c)
@@ -90,7 +90,78 @@ void test_string_cref() {
   }
 }
 
+void test_string() {
+  constexpr grnxx::Int NUM_STRINGS = 1000;
+
+  grnxx::Error error;
+
+  std::vector<std::string> strings(NUM_STRINGS);
+  std::vector<grnxx::StringCRef> refs(NUM_STRINGS);
+  std::vector<grnxx::String> bodies(NUM_STRINGS);
+  for (grnxx::Int i = 0; i < NUM_STRINGS; ++i) {
+    std::stringstream stream;
+    stream << i;
+    strings[i] = stream.str();
+    refs[i] = grnxx::StringCRef(strings[i].data(), strings[i].size());
+    assert(bodies[i].assign(&error, refs[i]));
+  }
+
+  for (grnxx::Int i = 0; i < NUM_STRINGS; ++i) {
+    assert(bodies[i].size() == static_cast<grnxx::Int>(strings[i].size()));
+    for (grnxx::Int j = 0; j < bodies[i].size(); ++j) {
+      assert(bodies[i][j] == strings[i][j]);
+    }
+
+    for (grnxx::Int j = 0; j < NUM_STRINGS; ++j) {
+      assert((bodies[i] == bodies[j]) == (strings[i] == strings[j]));
+      assert((bodies[i] != bodies[j]) == (strings[i] != strings[j]));
+      assert((bodies[i] < bodies[j]) == (strings[i] < strings[j]));
+      assert((bodies[i] > bodies[j]) == (strings[i] > strings[j]));
+      assert((bodies[i] <= bodies[j]) == (strings[i] <= strings[j]));
+      assert((bodies[i] >= bodies[j]) == (strings[i] >= strings[j]));
+
+      assert((bodies[i] == refs[j]) == (strings[i] == strings[j]));
+      assert((bodies[i] != refs[j]) == (strings[i] != strings[j]));
+      assert((bodies[i] < refs[j]) == (strings[i] < strings[j]));
+      assert((bodies[i] > refs[j]) == (strings[i] > strings[j]));
+      assert((bodies[i] <= refs[j]) == (strings[i] <= strings[j]));
+      assert((bodies[i] >= refs[j]) == (strings[i] >= strings[j]));
+
+      assert((bodies[i] == strings[j].c_str()) == (strings[i] == strings[j]));
+      assert((bodies[i] != strings[j].c_str()) == (strings[i] != strings[j]));
+      assert((bodies[i] < strings[j].c_str()) == (strings[i] < strings[j]));
+      assert((bodies[i] > strings[j].c_str()) == (strings[i] > strings[j]));
+      assert((bodies[i] <= strings[j].c_str()) == (strings[i] <= strings[j]));
+      assert((bodies[i] >= strings[j].c_str()) == (strings[i] >= strings[j]));
+
+      assert((refs[i] == bodies[j]) == (strings[i] == strings[j]));
+      assert((refs[i] != bodies[j]) == (strings[i] != strings[j]));
+      assert((refs[i] < bodies[j]) == (strings[i] < strings[j]));
+      assert((refs[i] > bodies[j]) == (strings[i] > strings[j]));
+      assert((refs[i] <= bodies[j]) == (strings[i] <= strings[j]));
+      assert((refs[i] >= bodies[j]) == (strings[i] >= strings[j]));
+
+      assert((strings[i].c_str() == bodies[j]) == (strings[i] == strings[j]));
+      assert((strings[i].c_str() != bodies[j]) == (strings[i] != strings[j]));
+      assert((strings[i].c_str() < bodies[j]) == (strings[i] < strings[j]));
+      assert((strings[i].c_str() > bodies[j]) == (strings[i] > strings[j]));
+      assert((strings[i].c_str() <= bodies[j]) == (strings[i] <= strings[j]));
+      assert((strings[i].c_str() >= bodies[j]) == (strings[i] >= strings[j]));
+
+      assert(bodies[i].starts_with(bodies[j]) ==
+             string_starts_with(strings[i], strings[j]));
+      assert(bodies[i].starts_with(strings[j].c_str()) ==
+             string_starts_with(strings[i], strings[j]));
+      assert(bodies[i].ends_with(bodies[j]) ==
+             string_ends_with(strings[i], strings[j]));
+      assert(bodies[i].ends_with(strings[j].c_str()) ==
+             string_ends_with(strings[i], strings[j]));
+    }
+  }
+}
+
 int main() {
   test_string_cref();
+  test_string();
   return 0;
 }
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index