Skip to content

Commit ecfe1ee

Browse files
authored
Merge pull request #23 from eedalong/develop
Develop
2 parents e988dca + a450795 commit ecfe1ee

File tree

6 files changed

+219
-41
lines changed

6 files changed

+219
-41
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#dotnet project files
22
obj/
33
*.csproj
4-
.vscode/
4+
.vscode/
5+
bin/

client/Test.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using iotdb_client_csharp.client.test;
2+
using System;
3+
namespace iotdb_client_csharp.client
4+
{
5+
public class Test
6+
{
7+
static void Main(){
8+
// Unit Test
9+
UnitTest unit_test = new UnitTest();
10+
unit_test.Test();
11+
// Session Test
12+
SessionTest session_test = new SessionTest();
13+
session_test.Test();
14+
15+
Console.WriteLine("TEST PASSED");
16+
17+
}
18+
19+
}
20+
}

client/SessionTest.cs renamed to client/tests/SessionTest.cs

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
group: root.97209_TEST_CSHARP_CLIENT_GROUP
88
timeseries: root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE.TEST_CSHARP_CLIENT_TSX;
99
*/
10-
namespace iotdb_client_csharp.client
10+
namespace iotdb_client_csharp.client.test
1111
{
1212
public class SessionTest
1313
{
@@ -659,12 +659,16 @@ public void TestInsertTablet(){
659659
// large data test
660660
value_lst = new List<List<string>>(){};
661661
timestamp_lst = new List<long>(){};
662+
662663
for (int timestamp = 4; timestamp <= fetch_size * 4; timestamp++){
663664
timestamp_lst.Add(timestamp);
664665
value_lst.Add(new List<string>(){"iotdb", true.ToString(), timestamp.ToString()});
665666
}
666667
tablet = new Tablet(device_id, measurement_lst, datatype_lst, value_lst, timestamp_lst);
668+
long start_ms= (DateTime.Now.Ticks / 10000);
667669
status = session.insert_tablet(tablet);
670+
long end_ms = (DateTime.Now.Ticks / 10000);
671+
Console.WriteLine(string.Format("total tablet insert time is {0}", end_ms - start_ms));
668672
res = session.execute_query_statement("select * from root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE");
669673
res.show_table_names();
670674
int res_count = 0;
@@ -838,6 +842,7 @@ public void TestTestInsertTablets(){
838842
session.close();
839843
Console.WriteLine("TestTestInsertTablets Passed!");
840844
}
845+
841846
void TestLargeData(){
842847
var session = new Session(host, port, user, passwd, fetch_size);
843848
session.open(false);
@@ -858,42 +863,38 @@ void TestLargeData(){
858863
res.next();
859864
res_count += 1;
860865
}
861-
866+
862867
session.delete_storage_group("root.97209_TEST_CSHARP_CLIENT_GROUP");
863868
System.Diagnostics.Debug.Assert(status == 0);
864869
System.Diagnostics.Debug.Assert(record_inserted_count == res_count);
865870
session.close();
866871
Console.WriteLine("TestTestInsertTablet Passed!");
867872
}
868-
static void Main(){
869-
SessionTest session_test = new SessionTest();
870-
871-
session_test.TestOpen();
872-
session_test.TestClose();
873-
session_test.TestSetAndDeleteStorageGroup();
874-
session_test.TestCreateTimeSeries();
875-
session_test.TestDeleteTimeSeries();
876-
session_test.TestCreateMultiTimeSeries();
877-
session_test.TestDeleteStorageGroups();
878-
session_test.TestGetTimeZone();
879-
session_test.TestInsertStrRecord();
880-
session_test.TestInsertRecord();
881-
session_test.TestTestInsertRecord();
882-
session_test.TestTestInsertRecords();
883-
session_test.TestInsertRecordsOfOneDevice();
884-
session_test.TestCheckTimeSeriesExists();
885-
session_test.TestSetTimeZone();
886-
session_test.TestDeleteData();
887-
session_test.TestNonSql();
888-
session_test.TestSqlQuery();
889-
session_test.TestInsertRecords();
890-
session_test.TestInsertTablet();
891-
session_test.TestTestInsertTablet();
892-
session_test.TestInsertTablets();
893-
session_test.TestTestInsertTablets();
894-
session_test.TestLargeData();
895-
Console.WriteLine("TEST PASSED");
896-
873+
public void Test(){
874+
TestOpen();
875+
TestClose();
876+
TestSetAndDeleteStorageGroup();
877+
TestCreateTimeSeries();
878+
TestDeleteTimeSeries();
879+
TestCreateMultiTimeSeries();
880+
TestDeleteStorageGroups();
881+
TestGetTimeZone();
882+
TestInsertStrRecord();
883+
TestInsertRecord();
884+
TestTestInsertRecord();
885+
TestTestInsertRecords();
886+
TestInsertRecordsOfOneDevice();
887+
TestCheckTimeSeriesExists();
888+
TestSetTimeZone();
889+
TestDeleteData();
890+
TestNonSql();
891+
TestSqlQuery();
892+
TestInsertRecords();
893+
TestInsertTablet();
894+
TestTestInsertTablet();
895+
TestInsertTablets();
896+
TestTestInsertTablets();
897+
TestLargeData();
897898
}
898899
}
899900

client/tests/UnitTest.cs

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
using System.Collections.Generic;
2+
using iotdb_client_csharp.client.utils;
3+
using System;
4+
5+
6+
namespace iotdb_client_csharp.client.test
7+
{
8+
public class UnitTest
9+
{
10+
public UnitTest(){}
11+
public void Test(){
12+
TestField();
13+
TestRowRecord();
14+
}
15+
public void TestField(){
16+
double double_val_set = 12.3, double_val_get;
17+
int int_val_get;
18+
string str_val_set = "12", str_val_get;
19+
bool bool_val_get, bool_val_set;
20+
float float_val_get;
21+
Int64 long_val_get;
22+
23+
24+
// set double
25+
Field field = new Field(TSDataType.DOUBLE);
26+
field.set(double_val_set);
27+
double_val_get = (double)field.get();
28+
System.Diagnostics.Debug.Assert(double_val_get == double_val_set);
29+
int_val_get = field.get_int();
30+
System.Diagnostics.Debug.Assert(int_val_get == Convert.ToInt32(double_val_set));
31+
str_val_get = field.get_str();
32+
System.Diagnostics.Debug.Assert(str_val_get == double_val_set.ToString());
33+
bool_val_get = field.get_bool();
34+
System.Diagnostics.Debug.Assert(bool_val_get == Convert.ToBoolean(double_val_set));
35+
float_val_get = field.get_float();
36+
System.Diagnostics.Debug.Assert(float_val_get == Convert.ToSingle(double_val_set));
37+
long_val_get = field.get_long();
38+
System.Diagnostics.Debug.Assert(long_val_get == Convert.ToInt64(double_val_set));
39+
40+
// Set Str value
41+
field = new Field(TSDataType.TEXT);
42+
field.set(str_val_set);
43+
double_val_get = field.get_double();
44+
System.Diagnostics.Debug.Assert(double_val_get == double.Parse(str_val_set));
45+
int_val_get = field.get_int();
46+
System.Diagnostics.Debug.Assert(int_val_get == Int32.Parse(str_val_set));
47+
bool_val_get = field.get_bool();
48+
System.Diagnostics.Debug.Assert(bool_val_get);
49+
float_val_get = field.get_float();
50+
System.Diagnostics.Debug.Assert(float_val_get == float.Parse(str_val_set));
51+
long_val_get = field.get_long();
52+
System.Diagnostics.Debug.Assert(long_val_get == Int64.Parse(str_val_set));
53+
54+
// set true
55+
field = new Field(TSDataType.BOOLEAN);
56+
bool_val_set = true;
57+
field.set(bool_val_set);
58+
double_val_get = field.get_double();
59+
System.Diagnostics.Debug.Assert(double_val_get == Convert.ToDouble(bool_val_set));
60+
61+
System.Console.WriteLine("Filed Test Passed!");
62+
}
63+
public void TestRowRecord(){
64+
var save_datetime = DateTime.Now;
65+
TimeSpan ts = save_datetime - DateTime.UnixEpoch;
66+
var row_reord = new RowRecord(Convert.ToInt64(ts.TotalMilliseconds), new List<Field>{});
67+
68+
// test append
69+
row_reord.append(new Field(TSDataType.DOUBLE, 12.3));
70+
row_reord.append(new Field(TSDataType.BOOLEAN, false));
71+
row_reord.append(new Field(TSDataType.FLOAT, 12.3));
72+
row_reord.append(new Field(TSDataType.INT64, 1234));
73+
row_reord.append(new Field(TSDataType.TEXT, "TEST"));
74+
75+
// test indexing
76+
var field_get = row_reord[0];
77+
System.Diagnostics.Debug.Assert(field_get.type == TSDataType.DOUBLE);
78+
System.Diagnostics.Debug.Assert((double)field_get.val == 12.3);
79+
80+
// test indexing
81+
row_reord[0] = new Field(TSDataType.BOOLEAN, true);
82+
field_get = row_reord[0];
83+
System.Diagnostics.Debug.Assert(field_get.type == TSDataType.BOOLEAN);
84+
System.Diagnostics.Debug.Assert((bool)field_get.val == true);
85+
86+
// test datetime
87+
var datetime = row_reord.get_date_time();
88+
Console.WriteLine(datetime.ToString() == save_datetime.ToString());
89+
System.Console.WriteLine("RowRecord Test Passed!");
90+
91+
92+
93+
94+
}
95+
96+
97+
}
98+
}

client/utils/Field.cs

Lines changed: 66 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,93 @@ namespace iotdb_client_csharp.client.utils
66
public class Field
77
{
88
// TBD By Zengz
9-
private object val;
9+
public object val;
1010
public TSDataType type{get;set;}
1111
public Field(TSDataType data_type){
1212
this.type = data_type;
1313
}
14+
public Field(TSDataType data_type, object val){
15+
this.type = data_type;
16+
this.val = val;
17+
}
1418
public void set<T>(T value){
1519
val = value;
1620
}
1721
public double get_double(){
18-
return type==TSDataType.TEXT?double.Parse((string)val):(double)val;
22+
switch(type){
23+
case TSDataType.TEXT:
24+
return double.Parse((string)val);
25+
case TSDataType.BOOLEAN:
26+
return (bool)val?1.0:0;
27+
case TSDataType.NONE:
28+
return 0.0;
29+
default:
30+
return Convert.ToDouble(val);
31+
32+
}
1933
}
2034
public Int32 get_int(){
21-
return type==TSDataType.TEXT?Int32.Parse((string)val):(Int32)val;
35+
switch(type){
36+
case TSDataType.TEXT:
37+
return Int32.Parse((string)val);
38+
case TSDataType.BOOLEAN:
39+
return (bool)val?1:0;
40+
case TSDataType.NONE:
41+
return 0;
42+
default:
43+
return Convert.ToInt32(val);
44+
}
2245
}
2346
public Int64 get_long(){
24-
return type==TSDataType.TEXT?Int64.Parse((string)val):(Int64)val;
47+
switch(type){
48+
case TSDataType.TEXT:
49+
return Int64.Parse((string)val);
50+
case TSDataType.BOOLEAN:
51+
return (bool)val?1:0;
52+
case TSDataType.NONE:
53+
return 0;
54+
default:
55+
return Convert.ToInt64(val);
56+
}
2557
}
58+
2659
public float get_float(){
27-
return type==TSDataType.TEXT?float.Parse((string)val):(float)val;
60+
switch(type){
61+
case TSDataType.TEXT:
62+
return float.Parse((string)val);
63+
case TSDataType.BOOLEAN:
64+
return (bool)val?1:0;
65+
case TSDataType.NONE:
66+
return 0;
67+
default:
68+
return Convert.ToSingle(val);
69+
}
70+
}
71+
public bool get_bool(){
72+
switch(type){
73+
case TSDataType.TEXT:
74+
try{
75+
return Convert.ToBoolean((string)val);
76+
}
77+
catch(System.FormatException){
78+
return ((string)val).Length > 0;
79+
}
80+
case TSDataType.NONE:
81+
return false;
82+
default:
83+
return Convert.ToBoolean(val);
84+
}
85+
2886
}
2987
public string get_str(){
3088
return val.ToString();
3189
}
32-
public T get<T>(){
90+
public object get(){
3391
switch(type){
3492
case TSDataType.NONE :
35-
return (T)(object)null;
93+
return null;
3694
default:
37-
return (T)val;
95+
return val;
3896
}
3997
}
4098

client/utils/RowRecord.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public Field this[int index]{
2525
get => field_lst[index];
2626
set => field_lst[index] = value;
2727
}
28-
public DateTime TimeStampAsDateTime(){
28+
public DateTime get_date_time(){
2929
return DateTime.UnixEpoch.AddMilliseconds(timestamp);
3030
}
3131
public override string ToString()

0 commit comments

Comments
 (0)