public void RandomTest() { const int IterationCount = 10; int iteration = 0; Random random = RandomManager.CreateRandom(SeedVariatorType.CallingMethod); MethodInfo setValueMethodGeneric = typeof(TupleBehaviorTestBase).GetMethod("SetValue", BindingFlags.NonPublic | BindingFlags.Static); IList <TupleDescriptor> descriptorList = new List <TupleDescriptor>(); while (iteration++ < IterationCount) { int fieldCount = random.Next(0, MaxFieldCount); List <Type> fields = new List <Type>(fieldCount); for (int i = 0; i < fieldCount; i++) { fields.Add(fieldTypes[random.Next(0, fieldTypes.Length - 1)]); } TupleDescriptor descriptor = TupleDescriptor.Create(fields); descriptorList.Add(descriptor); } foreach (TupleDescriptor descriptor in descriptorList) { DummyTuple dummyTuple = new DummyTuple(descriptor); ITuple tuple = CreateTestTuple(descriptor); for (int fieldIndex = 0; fieldIndex < tuple.Count / 2; fieldIndex++) { Type type = descriptor[fieldIndex]; MethodInfo setValueMethod = setValueMethodGeneric.MakeGenericMethod(type); setValueMethod.Invoke(null, new object[] { dummyTuple, tuple, fieldIndex, random }); } AssertAreSame(dummyTuple, tuple); } }
public override Xtensive.Tuples.Tuple Clone() { DummyTuple tuple = (DummyTuple)CreateNew(); tuple.values = (object[])values.Clone(); tuple.available = available; return tuple; }
public void EmptyFieldsTest() { var d = TupleDescriptor.Create(Array.Empty <Type>()); var dummyTuple = new DummyTuple(d); var tuple = CreateTestTuple(d); Assert.AreEqual(0, tuple.Count); }
public void EmptyFieldsTest() { List <Type> fields = new List <Type>(); TupleDescriptor descriptor = TupleDescriptor.Create(fields); DummyTuple dummyTuple = new DummyTuple(descriptor); ITuple tuple = CreateTestTuple(descriptor); Assert.AreEqual(0, tuple.Count); }
public void Test() { var types = Enumerable.Range(0, 4).Select(_ => typeof(short)).ToArray(); var d = TupleDescriptor.Create(types); var dummyTuple = new DummyTuple(d); var tuple = CreateTestTuple(d); PopulateData(types, dummyTuple, tuple); AssertAreSame(dummyTuple, tuple); }
public void Test() { IList <Type> types = new List <Type>(); for (int i = 0; i < 4; i++) { types.Add(typeof(short)); } TupleDescriptor descriptor = TupleDescriptor.Create(types); DummyTuple dummyTuple = new DummyTuple(descriptor); ITuple tuple = CreateTestTuple(descriptor); PopulateData(types, dummyTuple, tuple); AssertAreSame(dummyTuple, tuple); }
public void MemoryUsageTest() { const int iterationCount = 1000000; var descriptor = TupleDescriptor.Create(typicalFieldTypes); var tuple = Xtensive.Tuples.Tuple.Create(descriptor); var dummyTuple = new DummyTuple(descriptor); var tuplesList = new List <Xtensive.Tuples.Tuple>(iterationCount); int iteration = 0; using (new Measurement("DummyTuple memory usage", iterationCount)) while (iteration++ <= iterationCount) { tuplesList.Add(dummyTuple.CreateNew()); } tuplesList.Clear(); TestHelper.CollectGarbage(true); iteration = 0; using (new Measurement("Tuple memory usage", iterationCount)) while (iteration++ <= iterationCount) { tuplesList.Add(tuple.CreateNew()); } }