示例#1
0
        public void TestFileRead1()
        {
            string path = Environment.CurrentDirectory + "/config-1.csv";

            if (!File.Exists(path))
            {
                throw new Exception("file not found");
            }
            CsvConfigReader reader = new CsvConfigReader();

            reader.ReadFile(path);

            CsvValue value = reader[1]["key12"].Value;

            string[] stringArray = value;
            Assert.AreEqual(5, stringArray.Length);
            Assert.AreEqual("hello,001", stringArray[0]);
            Assert.AreEqual("hello,002", stringArray[1]);
            Assert.AreEqual("hello,003", stringArray[2]);
            Assert.AreEqual("hello,004", stringArray[3]);
            Assert.AreEqual("hello,005", stringArray[4]);
            bool[] boolArray = reader[1]["key9"].Value;
            foreach (bool b in boolArray)
            {
                Assert.IsTrue(b);
            }
        }
示例#2
0
        public void TestConstrcutorString()
        {
            string   src   = "hello";
            CsvValue value = new CsvValue(CsvValueType.String, src);
            string   v     = value;

            Assert.AreEqual(src, v);
        }
示例#3
0
        public void TestConstrcutorInt()
        {
            string   src   = "";
            CsvValue value = new CsvValue(CsvValueType.Int, src);
            int      v     = value;

            Assert.AreEqual(0, v);
            src   = "1234";
            value = new CsvValue(CsvValueType.Int, src);
            v     = value;
            Assert.AreEqual(1234, v);
        }
示例#4
0
        public void TestStringArray()
        {
            string[] array = new string[] { "a", "b", "c", "d", "e" };
            CsvValue value = array;

            Assert.AreEqual(CsvValueType.ArrayString, value.Type);
            string[] result = value;
            Assert.AreEqual(5, result.Length);
            for (int i = 0; i < array.Length; i++)
            {
                Assert.AreEqual(array[i], result[i]);
            }
        }
示例#5
0
        public void TestFloatArray()
        {
            float[]  array = { 1.1f, 1.2f, 1.3f, 1.4f, 1.5f };
            CsvValue value = array;

            Assert.AreEqual(CsvValueType.ArrayFloat, value.Type);
            float[] result = value;
            Assert.AreEqual(5, result.Length);
            for (int i = 0; i < array.Length; i++)
            {
                AssertAreEqual(array[i], result[i]);
            }
        }
示例#6
0
        public void TestIntArray()
        {
            int[]    array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            CsvValue value = array;

            Assert.AreEqual(CsvValueType.ArrayInt, value.Type);
            int[] result = value;
            Assert.AreEqual(10, result.Length);
            for (int i = 0; i < array.Length; i++)
            {
                Assert.AreEqual(array[i], result[i]);
            }
        }
示例#7
0
        public void TestBoolArray()
        {
            bool[]   array = new bool[] { true, false, true, false };//count = 4
            CsvValue value = array;

            Assert.AreEqual(CsvValueType.ArrayBool, value.Type);
            bool[] result = value;
            Assert.AreEqual(4, result.Length);
            for (int i = 0; i < array.Length; i++)
            {
                Assert.AreEqual(array[i], result[i]);
            }
        }
示例#8
0
 public CsvSerializer()
 {
     this.PropertyValueConverters = typeof(T).GetProperties().Select(x =>
     {
         if (x.PropertyType == typeof(DateTime))
         {
             return(Tuple.Create(x, (Func <Object, string>)(o => CsvValue.FromDate((DateTime)o))));
         }
         else if (x.PropertyType == typeof(DateTime?))
         {
             return(Tuple.Create(x, (Func <Object, string>)(o => CsvValue.FromNullableDate((DateTime?)o))));
         }
         else
         {
             return(Tuple.Create(x, (Func <Object, string>)CsvValue.From));
         }
     }).ToList();
 }
        public void Test3()
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("KI,B,I,L,F,D,S"); //7types
            sb.AppendLine("key1,key2,key3,key4,key5,key6,key7");
            sb.AppendLine("1, true, 101, 1001,1.1, 2.1, \"v1,v1;v1,v1\"");
            sb.AppendLine("2,false, 102, 1002,1.2, 2.2, \"v2,v2;v2,v2\"");

            CsvConfigReader reader = new CsvConfigReader();

            reader.Read(new StringReader(sb.ToString()));
            CsvConfig config   = reader[1];
            CsvValue  value    = config["key7"].Value;
            string    strValue = value;

            Console.WriteLine(strValue);
        }
示例#10
0
        public void TestEquals()
        {
            CsvValue[] array = new CsvValue[]
            {
                100,
                100L,
                100f,
                100d
            };
            for (int i = 0; i < array.Length; i++)
            {
                for (int j = 0; j < array.Length; j++)
                {
                    AssertAreEqual(array[i], array[j]);
                }
            }

            AssertAreEqual(true, true);
            AssertAreEqual("hello", "hello");
        }
示例#11
0
        public void TestConstrcutorArray()
        {
            string   src   = "1;2;3;4;5";
            CsvValue value = new CsvValue(CsvValueType.ArrayInt, src);

            int[] intArray = value;
            Assert.AreEqual(5, intArray.Length);

            Assert.AreEqual(1, intArray[0]);
            Assert.AreEqual(2, intArray[1]);
            Assert.AreEqual(3, intArray[2]);
            Assert.AreEqual(4, intArray[3]);
            Assert.AreEqual(5, intArray[4]);

            src   = "str0;str1;str2;str3;str4";
            value = new CsvValue(CsvValueType.ArrayString, src);
            string[] strArray = value;
            for (int i = 0; i < 5; i++)
            {
                Assert.AreEqual("str" + i, strArray[i]);
            }
        }
示例#12
0
        public void TestImplicit()
        {
            int      oriInt    = 100;
            CsvValue v         = oriInt;
            int      resultInt = v;

            Assert.AreEqual(oriInt, resultInt);

            long oriLong = 10000000000000L;

            v = oriLong;
            long resultLong = v;

            Assert.AreEqual(oriLong, resultLong);

            bool oriBool = true;

            v = oriBool;
            bool resultBool = v;

            Assert.AreEqual(oriBool, resultBool);

            float oriF = 0.2f;

            v = oriF;
            float resultF = v;

            Assert.AreEqual(oriF, resultF);

            double oriD = 0.001d;

            v = oriD;
            double resultD = v;

            Assert.AreEqual(oriD, resultD);
        }
示例#13
0
        public void AssertAreEqual(CsvValue v1, CsvValue v2)
        {
            bool equal = v1.Equals(v2);

            Assert.True(equal);
        }