/// <summary> /// Исследование создания одномерных сеток /// </summary> private static void GenerateGridTests() { Grid3D grid = new Grid3D(10m, 1m, 0.5m, 10, 5, 5); Console.WriteLine($"Проверка корректности сетки: {grid.GridValidity()}"); var result = grid.InsertLayerX(10m); result = grid.InsertLayerX(0.3m); result = grid.InsertLayerX(0.2m); result = grid.InsertLayerX(0.1m); result = grid.InsertLayerX(9.0m); result = grid.InsertLayerX(1.5m); result = grid.InsertLayerX(4.3m); result = grid.InsertLayerX(9.7m); result = grid.InsertLayerX(9.75m); result = grid.InsertLayerY(0.5m); result = grid.InsertLayerZ(0.43m); Console.WriteLine($"Проверка корректности сетки после вставки слоёв: {grid.GridValidity()}"); ///////////////////////// XmlSerializer formatter = new XmlSerializer(typeof(Grid3D)); using (FileStream fs = new FileStream("grid1D.xml", FileMode.Create)) { formatter.Serialize(fs, grid); Console.WriteLine("Объект сериализован"); } }
/// <summary> /// Тесты алгоритмов вставки слоёв в сетку /// </summary> static void GridInsertionsRandom() { Grid3D grid = new Grid3D(10m, 1m, 0.5m, 100, 100, 100); Console.WriteLine($"Сгенерирована сетка 10*1*0.5 с числом узлов 100, 100, 100"); Console.WriteLine($"Проверка корректности сетки: {grid.GridValidity()}"); // Исследование скорости вставки случайных слоёв Console.WriteLine("Вставка случайных слоёв по оси X"); var r = new Random(DateTime.Now.Millisecond); uint numInsertions = 20000; PerformanceMonitor.Start(); for (uint i = 0; i < numInsertions; i++) { // Генерируем случайную координату для вставки decimal coord = Convert.ToDecimal(r.NextDouble()) * grid.GridSizeX; grid.InsertLayerX(coord); } var res = PerformanceMonitor.Stop(); Console.WriteLine(res.ToString()); Console.WriteLine($"Проверка корректности сетки после вставки слоёв: {grid.GridValidity()}"); // Пересчет индексов grid.CorrectIndexes(); Console.WriteLine($"Проверка корректности сетки после корректировки индексов: {grid.GridValidity()}"); ///////////////////////// XmlSerializer formatter = new XmlSerializer(typeof(Grid3D)); using (FileStream fs = new FileStream("GridInsertionsRandom.xml", FileMode.Create)) { formatter.Serialize(fs, grid); Console.WriteLine("Объект сериализован"); } }