[Groonga-commit] groonga/grnxx at 15c34d1 [master] Add tests for unary operators.

Back to archive index

susumu.yata null+****@clear*****
Wed Jul 30 16:59:14 JST 2014


susumu.yata	2014-07-30 16:59:14 +0900 (Wed, 30 Jul 2014)

  New Revision: 15c34d1791b3629679cd9c09fa2736919b77da00
  https://github.com/groonga/grnxx/commit/15c34d1791b3629679cd9c09fa2736919b77da00

  Message:
    Add tests for unary operators.

  Modified files:
    test/test_grnxx.cpp

  Modified: test/test_grnxx.cpp (+71 -0)
===================================================================
--- test/test_grnxx.cpp    2014-07-30 16:57:14 +0900 (3dee464)
+++ test/test_grnxx.cpp    2014-07-30 16:59:14 +0900 (88dd0d8)
@@ -613,6 +613,77 @@ void test_expression() {
   assert(cursor);
   assert(cursor->read_all(&error, &record_set) == 2);
 
+  // 符号(+)を試す.
+  assert(builder->push_column(&error, "IntColumn"));
+  assert(builder->push_operator(&error, grnxx::POSITIVE_OPERATOR));
+  assert(builder->push_datum(&error, grnxx::Int(123)));
+  assert(builder->push_operator(&error, grnxx::EQUAL_OPERATOR));
+  expression = builder->release(&error);
+  assert(expression);
+
+  // フィルタとして使ったときの結果を確認する.
+  assert(expression->filter(&error, &record_set));
+  assert(record_set.size() == 1);
+  assert(record_set.get(0).row_id == 1);
+
+  record_set.clear();
+  cursor = table->create_cursor(&error);
+  assert(cursor);
+  assert(cursor->read_all(&error, &record_set) == 2);
+
+  // 符号(-)を試す.
+  assert(builder->push_column(&error, "IntColumn"));
+  assert(builder->push_operator(&error, grnxx::NEGATIVE_OPERATOR));
+  assert(builder->push_datum(&error, grnxx::Int(-456)));
+  assert(builder->push_operator(&error, grnxx::EQUAL_OPERATOR));
+  expression = builder->release(&error);
+  assert(expression);
+
+  // フィルタとして使ったときの結果を確認する.
+  assert(expression->filter(&error, &record_set));
+  assert(record_set.size() == 1);
+  assert(record_set.get(0).row_id == 2);
+
+  record_set.clear();
+  cursor = table->create_cursor(&error);
+  assert(cursor);
+  assert(cursor->read_all(&error, &record_set) == 2);
+
+  // 型変換(整数)を試す.
+  assert(builder->push_column(&error, "FloatColumn"));
+  assert(builder->push_operator(&error, grnxx::TO_INT_OPERATOR));
+  assert(builder->push_datum(&error, grnxx::Int(0)));
+  assert(builder->push_operator(&error, grnxx::EQUAL_OPERATOR));
+  expression = builder->release(&error);
+  assert(expression);
+
+  // フィルタとして使ったときの結果を確認する.
+  assert(expression->filter(&error, &record_set));
+  assert(record_set.size() == 2);
+
+  record_set.clear();
+  cursor = table->create_cursor(&error);
+  assert(cursor);
+  assert(cursor->read_all(&error, &record_set) == 2);
+
+  // 型変換(浮動小数点数)を試す.
+  assert(builder->push_column(&error, "IntColumn"));
+  assert(builder->push_operator(&error, grnxx::TO_FLOAT_OPERATOR));
+  assert(builder->push_datum(&error, grnxx::Float(300.0)));
+  assert(builder->push_operator(&error, grnxx::LESS_OPERATOR));
+  expression = builder->release(&error);
+  assert(expression);
+
+  // フィルタとして使ったときの結果を確認する.
+  assert(expression->filter(&error, &record_set));
+  assert(record_set.size() == 1);
+  assert(record_set.get(0).row_id == 1);
+
+  record_set.clear();
+  cursor = table->create_cursor(&error);
+  assert(cursor);
+  assert(cursor->read_all(&error, &record_set) == 2);
+
   // ビット論理積を試す.
   assert(builder->push_column(&error, "IntColumn"));
   assert(builder->push_datum(&error, grnxx::Int(255)));
-------------- next part --------------
HTML����������������������������...
Download 



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