Skip to content

Commit

Permalink
Merge pull request #23 from eedalong/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
eedalong committed Apr 22, 2021
2 parents e988dca + a450795 commit ecfe1ee
Show file tree
Hide file tree
Showing 6 changed files with 219 additions and 41 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#dotnet project files
obj/
*.csproj
.vscode/
.vscode/
bin/
20 changes: 20 additions & 0 deletions client/Test.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using iotdb_client_csharp.client.test;
using System;
namespace iotdb_client_csharp.client
{
public class Test
{
static void Main(){
// Unit Test
UnitTest unit_test = new UnitTest();
unit_test.Test();
// Session Test
SessionTest session_test = new SessionTest();
session_test.Test();

Console.WriteLine("TEST PASSED");

}

}
}
63 changes: 32 additions & 31 deletions client/SessionTest.cs → client/tests/SessionTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
group: root.97209_TEST_CSHARP_CLIENT_GROUP
timeseries: root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE.TEST_CSHARP_CLIENT_TSX;
*/
namespace iotdb_client_csharp.client
namespace iotdb_client_csharp.client.test
{
public class SessionTest
{
Expand Down Expand Up @@ -659,12 +659,16 @@ public class SessionTest
// large data test
value_lst = new List<List<string>>(){};
timestamp_lst = new List<long>(){};

for (int timestamp = 4; timestamp <= fetch_size * 4; timestamp++){
timestamp_lst.Add(timestamp);
value_lst.Add(new List<string>(){"iotdb", true.ToString(), timestamp.ToString()});
}
tablet = new Tablet(device_id, measurement_lst, datatype_lst, value_lst, timestamp_lst);
long start_ms= (DateTime.Now.Ticks / 10000);
status = session.insert_tablet(tablet);
long end_ms = (DateTime.Now.Ticks / 10000);
Console.WriteLine(string.Format("total tablet insert time is {0}", end_ms - start_ms));
res = session.execute_query_statement("select * from root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE");
res.show_table_names();
int res_count = 0;
Expand Down Expand Up @@ -838,6 +842,7 @@ public class SessionTest
session.close();
Console.WriteLine("TestTestInsertTablets Passed!");
}

void TestLargeData(){
var session = new Session(host, port, user, passwd, fetch_size);
session.open(false);
Expand All @@ -858,42 +863,38 @@ public class SessionTest
res.next();
res_count += 1;
}

session.delete_storage_group("root.97209_TEST_CSHARP_CLIENT_GROUP");
System.Diagnostics.Debug.Assert(status == 0);
System.Diagnostics.Debug.Assert(record_inserted_count == res_count);
session.close();
Console.WriteLine("TestTestInsertTablet Passed!");
}
static void Main(){
SessionTest session_test = new SessionTest();

session_test.TestOpen();
session_test.TestClose();
session_test.TestSetAndDeleteStorageGroup();
session_test.TestCreateTimeSeries();
session_test.TestDeleteTimeSeries();
session_test.TestCreateMultiTimeSeries();
session_test.TestDeleteStorageGroups();
session_test.TestGetTimeZone();
session_test.TestInsertStrRecord();
session_test.TestInsertRecord();
session_test.TestTestInsertRecord();
session_test.TestTestInsertRecords();
session_test.TestInsertRecordsOfOneDevice();
session_test.TestCheckTimeSeriesExists();
session_test.TestSetTimeZone();
session_test.TestDeleteData();
session_test.TestNonSql();
session_test.TestSqlQuery();
session_test.TestInsertRecords();
session_test.TestInsertTablet();
session_test.TestTestInsertTablet();
session_test.TestInsertTablets();
session_test.TestTestInsertTablets();
session_test.TestLargeData();
Console.WriteLine("TEST PASSED");

public void Test(){
TestOpen();
TestClose();
TestSetAndDeleteStorageGroup();
TestCreateTimeSeries();
TestDeleteTimeSeries();
TestCreateMultiTimeSeries();
TestDeleteStorageGroups();
TestGetTimeZone();
TestInsertStrRecord();
TestInsertRecord();
TestTestInsertRecord();
TestTestInsertRecords();
TestInsertRecordsOfOneDevice();
TestCheckTimeSeriesExists();
TestSetTimeZone();
TestDeleteData();
TestNonSql();
TestSqlQuery();
TestInsertRecords();
TestInsertTablet();
TestTestInsertTablet();
TestInsertTablets();
TestTestInsertTablets();
TestLargeData();
}
}

Expand Down
98 changes: 98 additions & 0 deletions client/tests/UnitTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
using System.Collections.Generic;
using iotdb_client_csharp.client.utils;
using System;


namespace iotdb_client_csharp.client.test
{
public class UnitTest
{
public UnitTest(){}
public void Test(){
TestField();
TestRowRecord();
}
public void TestField(){
double double_val_set = 12.3, double_val_get;
int int_val_get;
string str_val_set = "12", str_val_get;
bool bool_val_get, bool_val_set;
float float_val_get;
Int64 long_val_get;


// set double
Field field = new Field(TSDataType.DOUBLE);
field.set(double_val_set);
double_val_get = (double)field.get();
System.Diagnostics.Debug.Assert(double_val_get == double_val_set);
int_val_get = field.get_int();
System.Diagnostics.Debug.Assert(int_val_get == Convert.ToInt32(double_val_set));
str_val_get = field.get_str();
System.Diagnostics.Debug.Assert(str_val_get == double_val_set.ToString());
bool_val_get = field.get_bool();
System.Diagnostics.Debug.Assert(bool_val_get == Convert.ToBoolean(double_val_set));
float_val_get = field.get_float();
System.Diagnostics.Debug.Assert(float_val_get == Convert.ToSingle(double_val_set));
long_val_get = field.get_long();
System.Diagnostics.Debug.Assert(long_val_get == Convert.ToInt64(double_val_set));

// Set Str value
field = new Field(TSDataType.TEXT);
field.set(str_val_set);
double_val_get = field.get_double();
System.Diagnostics.Debug.Assert(double_val_get == double.Parse(str_val_set));
int_val_get = field.get_int();
System.Diagnostics.Debug.Assert(int_val_get == Int32.Parse(str_val_set));
bool_val_get = field.get_bool();
System.Diagnostics.Debug.Assert(bool_val_get);
float_val_get = field.get_float();
System.Diagnostics.Debug.Assert(float_val_get == float.Parse(str_val_set));
long_val_get = field.get_long();
System.Diagnostics.Debug.Assert(long_val_get == Int64.Parse(str_val_set));

// set true
field = new Field(TSDataType.BOOLEAN);
bool_val_set = true;
field.set(bool_val_set);
double_val_get = field.get_double();
System.Diagnostics.Debug.Assert(double_val_get == Convert.ToDouble(bool_val_set));

System.Console.WriteLine("Filed Test Passed!");
}
public void TestRowRecord(){
var save_datetime = DateTime.Now;
TimeSpan ts = save_datetime - DateTime.UnixEpoch;
var row_reord = new RowRecord(Convert.ToInt64(ts.TotalMilliseconds), new List<Field>{});

// test append
row_reord.append(new Field(TSDataType.DOUBLE, 12.3));
row_reord.append(new Field(TSDataType.BOOLEAN, false));
row_reord.append(new Field(TSDataType.FLOAT, 12.3));
row_reord.append(new Field(TSDataType.INT64, 1234));
row_reord.append(new Field(TSDataType.TEXT, "TEST"));

// test indexing
var field_get = row_reord[0];
System.Diagnostics.Debug.Assert(field_get.type == TSDataType.DOUBLE);
System.Diagnostics.Debug.Assert((double)field_get.val == 12.3);

// test indexing
row_reord[0] = new Field(TSDataType.BOOLEAN, true);
field_get = row_reord[0];
System.Diagnostics.Debug.Assert(field_get.type == TSDataType.BOOLEAN);
System.Diagnostics.Debug.Assert((bool)field_get.val == true);

// test datetime
var datetime = row_reord.get_date_time();
Console.WriteLine(datetime.ToString() == save_datetime.ToString());
System.Console.WriteLine("RowRecord Test Passed!");




}


}
}
74 changes: 66 additions & 8 deletions client/utils/Field.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,93 @@ namespace iotdb_client_csharp.client.utils
public class Field
{
// TBD By Zengz
private object val;
public object val;
public TSDataType type{get;set;}
public Field(TSDataType data_type){
this.type = data_type;
}
public Field(TSDataType data_type, object val){
this.type = data_type;
this.val = val;
}
public void set<T>(T value){
val = value;
}
public double get_double(){
return type==TSDataType.TEXT?double.Parse((string)val):(double)val;
switch(type){
case TSDataType.TEXT:
return double.Parse((string)val);
case TSDataType.BOOLEAN:
return (bool)val?1.0:0;
case TSDataType.NONE:
return 0.0;
default:
return Convert.ToDouble(val);

}
}
public Int32 get_int(){
return type==TSDataType.TEXT?Int32.Parse((string)val):(Int32)val;
switch(type){
case TSDataType.TEXT:
return Int32.Parse((string)val);
case TSDataType.BOOLEAN:
return (bool)val?1:0;
case TSDataType.NONE:
return 0;
default:
return Convert.ToInt32(val);
}
}
public Int64 get_long(){
return type==TSDataType.TEXT?Int64.Parse((string)val):(Int64)val;
switch(type){
case TSDataType.TEXT:
return Int64.Parse((string)val);
case TSDataType.BOOLEAN:
return (bool)val?1:0;
case TSDataType.NONE:
return 0;
default:
return Convert.ToInt64(val);
}
}

public float get_float(){
return type==TSDataType.TEXT?float.Parse((string)val):(float)val;
switch(type){
case TSDataType.TEXT:
return float.Parse((string)val);
case TSDataType.BOOLEAN:
return (bool)val?1:0;
case TSDataType.NONE:
return 0;
default:
return Convert.ToSingle(val);
}
}
public bool get_bool(){
switch(type){
case TSDataType.TEXT:
try{
return Convert.ToBoolean((string)val);
}
catch(System.FormatException){
return ((string)val).Length > 0;
}
case TSDataType.NONE:
return false;
default:
return Convert.ToBoolean(val);
}

}
public string get_str(){
return val.ToString();
}
public T get<T>(){
public object get(){
switch(type){
case TSDataType.NONE :
return (T)(object)null;
return null;
default:
return (T)val;
return val;
}
}

Expand Down
2 changes: 1 addition & 1 deletion client/utils/RowRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class RowRecord
get => field_lst[index];
set => field_lst[index] = value;
}
public DateTime TimeStampAsDateTime(){
public DateTime get_date_time(){
return DateTime.UnixEpoch.AddMilliseconds(timestamp);
}
public override string ToString()
Expand Down

0 comments on commit ecfe1ee

Please sign in to comment.