Добавлены тесты.
This commit is contained in:
parent
269eeaea99
commit
9fed8d43c4
12
RouteGuide/RouteGuide/FormMain.Designer.cs
generated
12
RouteGuide/RouteGuide/FormMain.Designer.cs
generated
@ -33,6 +33,7 @@
|
|||||||
this.транспортToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.транспортToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.остановкиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.остановкиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.маршрутыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.маршрутыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.тестыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuStrip.SuspendLayout();
|
this.menuStrip.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
@ -43,7 +44,8 @@
|
|||||||
this.типыТранспортаToolStripMenuItem,
|
this.типыТранспортаToolStripMenuItem,
|
||||||
this.транспортToolStripMenuItem,
|
this.транспортToolStripMenuItem,
|
||||||
this.остановкиToolStripMenuItem,
|
this.остановкиToolStripMenuItem,
|
||||||
this.маршрутыToolStripMenuItem});
|
this.маршрутыToolStripMenuItem,
|
||||||
|
this.тестыToolStripMenuItem});
|
||||||
this.menuStrip.Location = new System.Drawing.Point(0, 0);
|
this.menuStrip.Location = new System.Drawing.Point(0, 0);
|
||||||
this.menuStrip.Name = "menuStrip";
|
this.menuStrip.Name = "menuStrip";
|
||||||
this.menuStrip.Size = new System.Drawing.Size(800, 33);
|
this.menuStrip.Size = new System.Drawing.Size(800, 33);
|
||||||
@ -78,6 +80,13 @@
|
|||||||
this.маршрутыToolStripMenuItem.Text = "Маршруты";
|
this.маршрутыToolStripMenuItem.Text = "Маршруты";
|
||||||
this.маршрутыToolStripMenuItem.Click += new System.EventHandler(this.МаршрутыToolStripMenuItem_Click);
|
this.маршрутыToolStripMenuItem.Click += new System.EventHandler(this.МаршрутыToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// тестыToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.тестыToolStripMenuItem.Name = "тестыToolStripMenuItem";
|
||||||
|
this.тестыToolStripMenuItem.Size = new System.Drawing.Size(74, 29);
|
||||||
|
this.тестыToolStripMenuItem.Text = "Тесты";
|
||||||
|
this.тестыToolStripMenuItem.Click += new System.EventHandler(this.ТестыToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// FormMain
|
// FormMain
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F);
|
||||||
@ -101,5 +110,6 @@
|
|||||||
private ToolStripMenuItem транспортToolStripMenuItem;
|
private ToolStripMenuItem транспортToolStripMenuItem;
|
||||||
private ToolStripMenuItem остановкиToolStripMenuItem;
|
private ToolStripMenuItem остановкиToolStripMenuItem;
|
||||||
private ToolStripMenuItem маршрутыToolStripMenuItem;
|
private ToolStripMenuItem маршрутыToolStripMenuItem;
|
||||||
|
private ToolStripMenuItem тестыToolStripMenuItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -51,5 +51,15 @@ namespace RouteGuide
|
|||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ÒåñòûToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormTests));
|
||||||
|
|
||||||
|
if (service is FormTests form)
|
||||||
|
{
|
||||||
|
form.ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
166
RouteGuide/RouteGuide/FormTests.Designer.cs
generated
Normal file
166
RouteGuide/RouteGuide/FormTests.Designer.cs
generated
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
namespace RouteGuide
|
||||||
|
{
|
||||||
|
partial class FormTests
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.numericUpDownInsert = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.numericUpDownRead = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.textBoxInsertTime = new System.Windows.Forms.TextBox();
|
||||||
|
this.buttonInsertTest = new System.Windows.Forms.Button();
|
||||||
|
this.buttonReadTest = new System.Windows.Forms.Button();
|
||||||
|
this.label7 = new System.Windows.Forms.Label();
|
||||||
|
this.textBoxReadTime = new System.Windows.Forms.TextBox();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDownInsert)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRead)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(165, 25);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Кол-во элементов:";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(12, 67);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(139, 25);
|
||||||
|
this.label2.TabIndex = 1;
|
||||||
|
this.label2.Text = "Время запроса:";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(321, 9);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(165, 25);
|
||||||
|
this.label3.TabIndex = 2;
|
||||||
|
this.label3.Text = "Кол-во элементов:";
|
||||||
|
//
|
||||||
|
// numericUpDownInsert
|
||||||
|
//
|
||||||
|
this.numericUpDownInsert.Location = new System.Drawing.Point(183, 7);
|
||||||
|
this.numericUpDownInsert.Name = "numericUpDownInsert";
|
||||||
|
this.numericUpDownInsert.Size = new System.Drawing.Size(119, 31);
|
||||||
|
this.numericUpDownInsert.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// numericUpDownRead
|
||||||
|
//
|
||||||
|
this.numericUpDownRead.Location = new System.Drawing.Point(492, 7);
|
||||||
|
this.numericUpDownRead.Name = "numericUpDownRead";
|
||||||
|
this.numericUpDownRead.Size = new System.Drawing.Size(119, 31);
|
||||||
|
this.numericUpDownRead.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// textBoxInsertTime
|
||||||
|
//
|
||||||
|
this.textBoxInsertTime.Location = new System.Drawing.Point(183, 64);
|
||||||
|
this.textBoxInsertTime.Name = "textBoxInsertTime";
|
||||||
|
this.textBoxInsertTime.Size = new System.Drawing.Size(119, 31);
|
||||||
|
this.textBoxInsertTime.TabIndex = 10;
|
||||||
|
//
|
||||||
|
// buttonInsertTest
|
||||||
|
//
|
||||||
|
this.buttonInsertTest.Location = new System.Drawing.Point(96, 127);
|
||||||
|
this.buttonInsertTest.Name = "buttonInsertTest";
|
||||||
|
this.buttonInsertTest.Size = new System.Drawing.Size(112, 34);
|
||||||
|
this.buttonInsertTest.TabIndex = 12;
|
||||||
|
this.buttonInsertTest.Text = "INSERT";
|
||||||
|
this.buttonInsertTest.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonInsertTest.Click += new System.EventHandler(this.ButtonInsertTest_Click);
|
||||||
|
//
|
||||||
|
// buttonReadTest
|
||||||
|
//
|
||||||
|
this.buttonReadTest.Location = new System.Drawing.Point(422, 127);
|
||||||
|
this.buttonReadTest.Name = "buttonReadTest";
|
||||||
|
this.buttonReadTest.Size = new System.Drawing.Size(112, 34);
|
||||||
|
this.buttonReadTest.TabIndex = 13;
|
||||||
|
this.buttonReadTest.Text = "READ";
|
||||||
|
this.buttonReadTest.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonReadTest.Click += new System.EventHandler(this.ButtonReadTest_Click);
|
||||||
|
//
|
||||||
|
// label7
|
||||||
|
//
|
||||||
|
this.label7.AutoSize = true;
|
||||||
|
this.label7.Location = new System.Drawing.Point(321, 67);
|
||||||
|
this.label7.Name = "label7";
|
||||||
|
this.label7.Size = new System.Drawing.Size(139, 25);
|
||||||
|
this.label7.TabIndex = 15;
|
||||||
|
this.label7.Text = "Время запроса:";
|
||||||
|
//
|
||||||
|
// textBoxReadTime
|
||||||
|
//
|
||||||
|
this.textBoxReadTime.Location = new System.Drawing.Point(492, 64);
|
||||||
|
this.textBoxReadTime.Name = "textBoxReadTime";
|
||||||
|
this.textBoxReadTime.Size = new System.Drawing.Size(119, 31);
|
||||||
|
this.textBoxReadTime.TabIndex = 16;
|
||||||
|
//
|
||||||
|
// FormTests
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(626, 187);
|
||||||
|
this.Controls.Add(this.textBoxReadTime);
|
||||||
|
this.Controls.Add(this.label7);
|
||||||
|
this.Controls.Add(this.buttonReadTest);
|
||||||
|
this.Controls.Add(this.buttonInsertTest);
|
||||||
|
this.Controls.Add(this.textBoxInsertTime);
|
||||||
|
this.Controls.Add(this.numericUpDownRead);
|
||||||
|
this.Controls.Add(this.numericUpDownInsert);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "FormTests";
|
||||||
|
this.Text = "Тесты";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDownInsert)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRead)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Label label1;
|
||||||
|
private Label label2;
|
||||||
|
private Label label3;
|
||||||
|
private NumericUpDown numericUpDownInsert;
|
||||||
|
private NumericUpDown numericUpDownRead;
|
||||||
|
private TextBox textBoxInsertTime;
|
||||||
|
private Button buttonInsertTest;
|
||||||
|
private Button buttonReadTest;
|
||||||
|
private Label label7;
|
||||||
|
private TextBox textBoxReadTime;
|
||||||
|
}
|
||||||
|
}
|
57
RouteGuide/RouteGuide/FormTests.cs
Normal file
57
RouteGuide/RouteGuide/FormTests.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
using RouteGuideContracts.BusinessLogicContracts;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace RouteGuide
|
||||||
|
{
|
||||||
|
public partial class FormTests : Form
|
||||||
|
{
|
||||||
|
private readonly IRouteLogic _routeLogic;
|
||||||
|
|
||||||
|
public FormTests(IRouteLogic routeLogic)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
_routeLogic = routeLogic;
|
||||||
|
numericUpDownInsert.Minimum = 0;
|
||||||
|
numericUpDownInsert.Maximum = 1000;
|
||||||
|
numericUpDownRead.Minimum = 0;
|
||||||
|
numericUpDownRead.Maximum = 1000;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonInsertTest_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var result = _routeLogic.TestInsertList(Convert.ToInt32(numericUpDownInsert.Value));
|
||||||
|
|
||||||
|
textBoxInsertTime.Text = result;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonReadTest_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var result = _routeLogic.TestReadList(Convert.ToInt32(numericUpDownRead.Value));
|
||||||
|
textBoxReadTime.Text = result;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
60
RouteGuide/RouteGuide/FormTests.resx
Normal file
60
RouteGuide/RouteGuide/FormTests.resx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
@ -54,7 +54,7 @@ namespace RouteGuide
|
|||||||
services.AddTransient<FormRoutes>();
|
services.AddTransient<FormRoutes>();
|
||||||
services.AddTransient<FormRoute>();
|
services.AddTransient<FormRoute>();
|
||||||
services.AddTransient<FormRouteStop>();
|
services.AddTransient<FormRouteStop>();
|
||||||
//services.AddTransient<FormTests>();
|
services.AddTransient<FormTests>();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,5 +110,15 @@ namespace RouteGuideBusinessLogic.BusinessLogic
|
|||||||
throw new InvalidOperationException("Route с таким названием уже есть");
|
throw new InvalidOperationException("Route с таким названием уже есть");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string TestInsertList(int num)
|
||||||
|
{
|
||||||
|
return _routeStorage.TestInsertList(num);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TestReadList(int num)
|
||||||
|
{
|
||||||
|
return _routeStorage.TestReadList(num);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,5 +18,8 @@ namespace RouteGuideContracts.BusinessLogicContracts
|
|||||||
bool Create(RouteBindingModel model);
|
bool Create(RouteBindingModel model);
|
||||||
bool Update(RouteBindingModel model);
|
bool Update(RouteBindingModel model);
|
||||||
bool Delete(RouteBindingModel model);
|
bool Delete(RouteBindingModel model);
|
||||||
|
|
||||||
|
string TestInsertList(int num);
|
||||||
|
string TestReadList(int num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,8 @@ namespace RouteGuideContracts.StoragesModels
|
|||||||
RouteViewModel? Insert(RouteBindingModel model);
|
RouteViewModel? Insert(RouteBindingModel model);
|
||||||
RouteViewModel? Update(RouteBindingModel model);
|
RouteViewModel? Update(RouteBindingModel model);
|
||||||
RouteViewModel? Delete(RouteBindingModel model);
|
RouteViewModel? Delete(RouteBindingModel model);
|
||||||
|
|
||||||
|
string TestInsertList(int num);
|
||||||
|
string TestReadList(int num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,5 +108,78 @@ namespace RouteGuideDatabaseImplements.Implements
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string TestInsertList(int num)
|
||||||
|
{
|
||||||
|
var context = new RouteGuideDatabase();
|
||||||
|
Stopwatch stopwatch = new();
|
||||||
|
Random rnd = new Random();
|
||||||
|
long[] res = new long[num * 2];
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 0; i < num; ++i)
|
||||||
|
{
|
||||||
|
int rndId = rnd.Next();
|
||||||
|
var model = new StopBindingModel
|
||||||
|
{
|
||||||
|
Id = rndId,
|
||||||
|
Name = "Остановка " + rndId.ToString(),
|
||||||
|
};
|
||||||
|
context.Stops.Add(Stop.Create(model));
|
||||||
|
stopwatch.Start();
|
||||||
|
context.SaveChanges();
|
||||||
|
stopwatch.Stop();
|
||||||
|
res[i] = stopwatch.ElapsedMilliseconds;
|
||||||
|
}
|
||||||
|
List<StopViewModel> _stops = context.Stops.Select(x => x.GetViewModel).ToList();
|
||||||
|
|
||||||
|
for (int i = 0; i < num; ++i)
|
||||||
|
{
|
||||||
|
int rndId = rnd.Next();
|
||||||
|
var model = new RouteBindingModel
|
||||||
|
{
|
||||||
|
Id = rndId,
|
||||||
|
Name = "Maршрут №" + rndId.ToString(),
|
||||||
|
};
|
||||||
|
context.Routes.Add(Route.Create(context, model));
|
||||||
|
stopwatch.Start();
|
||||||
|
context.SaveChanges();
|
||||||
|
stopwatch.Stop();
|
||||||
|
res[i] = stopwatch.ElapsedMilliseconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
long sum = 0;
|
||||||
|
for (int i = 0; i < num; i++)
|
||||||
|
{
|
||||||
|
sum += res[i];
|
||||||
|
}
|
||||||
|
int result = Convert.ToInt32(sum / num);
|
||||||
|
return result.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TestReadList(int num)
|
||||||
|
{
|
||||||
|
var context = new RouteGuideDatabase();
|
||||||
|
Stopwatch stopwatch = new();
|
||||||
|
|
||||||
|
long[] res = new long[num];
|
||||||
|
|
||||||
|
for (int i = 0; i < num; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
stopwatch.Start();
|
||||||
|
List<RouteViewModel> list = context.Routes.Include(x => x.Stops).ThenInclude(x => x.Stop).ToList().Select(x => x.GetViewModel).ToList();
|
||||||
|
stopwatch.Stop();
|
||||||
|
res[i] = stopwatch.ElapsedMilliseconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
long sum = 0;
|
||||||
|
for (int i = 0; i < num; i++)
|
||||||
|
{
|
||||||
|
sum += res[i];
|
||||||
|
}
|
||||||
|
int result = Convert.ToInt32(sum / num);
|
||||||
|
return result.ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user