diff --git a/MathCore.TestsExtensions.sln b/MathCore.TestsExtensions.sln
index 39a844d..f0361b7 100644
--- a/MathCore.TestsExtensions.sln
+++ b/MathCore.TestsExtensions.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 18
-VisualStudioVersion = 18.0.11205.157 d18.0
+VisualStudioVersion = 18.0.11205.157
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MathCore.TestsExtensions", "MathCore.TestsExtensions\MathCore.TestsExtensions.csproj", "{0F039156-E6CB-4EFB-A863-13A1AC2DD4AE}"
EndProject
@@ -10,6 +10,7 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Service", ".Service", "{29B29638-89EC-4383-B587-AE8C981DED4F}"
ProjectSection(SolutionItems) = preProject
.github\copilot-instructions.md = .github\copilot-instructions.md
+ README.md = README.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{D6A23A02-D860-4101-AB7B-0C7FB57331CB}"
diff --git a/MathCore.TestsExtensions/MathCore.TestsExtensions.csproj b/MathCore.TestsExtensions/MathCore.TestsExtensions.csproj
index f7dfde7..a3f3226 100644
--- a/MathCore.TestsExtensions/MathCore.TestsExtensions.csproj
+++ b/MathCore.TestsExtensions/MathCore.TestsExtensions.csproj
@@ -9,7 +9,7 @@
- 1.0.0
+ 1.0.0.1
Актуализация пакета и зависимостей, поддержка netstandard2.0
diff --git a/MathCore.TestsExtensions/readme.md b/MathCore.TestsExtensions/readme.md
index b88caae..37d6ff1 100644
--- a/MathCore.TestsExtensions/readme.md
+++ b/MathCore.TestsExtensions/readme.md
@@ -1,20 +1,20 @@
-# MathCore.TestsExtensions
+# MathCore.TestsExtensions
- MSTest, fluent- :
+Расширения для MSTest, добавляющие удобный fluent-интерфейс к стандартным ассертам через точки расширения:
- `Assert.That`
- `CollectionAssert.That`
- `StringAssert.That`
- API: , , , .
+Пакет помогает писать выразительные и компактные проверки со связным API: проверка значений, коллекций, перечислений, строк и исключений с наглядными сообщениями об ошибках.
-##
+## Установка
-- : .NET Standard 2.0
-- : MSTest.TestFramework >= 4.0.2
+- Платформа: .NET Standard 2.0
+- Зависимость: MSTest.TestFramework >= 4.0.2
-NuGet-: MathCore.TestsExtensions
+NuGet-пакет: MathCore.TestsExtensions
-##
+## Быстрый старт
```csharp
using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -36,24 +36,24 @@ public class SampleTests
}
```
-## fluent-
+## Точки расширения и fluent-интерфейс
- `That` :
-- `Assert.That` (`Value`), / (`Method`), (`Enumerable`) (`Collection`)
-- `CollectionAssert.That` (`Collection`)
-- `StringAssert.That` `Value(string)`
+Пакет добавляет расширение `That` к стандартным ассертам:
+- `Assert.That` — проверки значений (`Value`), функций/действий (`Method`), перечислений (`Enumerable`) и коллекций (`Collection`)
+- `CollectionAssert.That` — проверки коллекций (`Collection`)
+- `StringAssert.That` — проверки строк через `Value(string)`
- : , -. `And => Assert.That`, .
+Базовый паттерн использования: начать с нужной «точки», получить «чекер» и вызывать цепочкой методы-проверки. Для удобства большинство чекеров имеют свойство `And => Assert.That`, позволяя продолжать цепочку с новой проверки.
-### : Assert.That
+### Примеры: Assert.That
- :
+Проверка значения и сравнение с точностью:
```csharp
Assert.That.Value(1.1).LessOrEqualsThan(1.0, 0.1);
Assert.That.Value(10).GreaterThan(5);
```
- :
+Проверка исключений:
```csharp
Assert.That.Method(() => throw new InvalidOperationException())
.Throw();
@@ -62,7 +62,7 @@ Assert.That.Method(() => 1 / 0)
.Throw();
```
- (`IEnumerable`):
+Перечисления (`IEnumerable`):
```csharp
IEnumerable actual = new[] { "file3.txt", "file4.txt", "file5.txt", "file6.txt" };
IEnumerable expected = new[] { "file3.txt", "file4.txt", "file5.txt", "file6.txt" };
@@ -71,9 +71,9 @@ Assert.That.Enumerable(actual).IsEqualTo(expected);
Assert.That.Enumerable(actual).Contains(s => s.EndsWith(".txt"));
```
-### : CollectionAssert.That
+### Примеры: CollectionAssert.That
- `ICollection` :
+Проверки для `ICollection` и массивов:
```csharp
var items = new[] { 1, 3, 5, 7 };
@@ -86,7 +86,7 @@ var expected = new[] { 1, 3, 5, 7 };
CollectionAssert.That.Collection(items).IsEqualTo(expected);
```
- double:
+Покрытие сценариев с точностью для double:
```csharp
double[] actual = { 1.0, 2.0, 3.000000001 };
double[] expected = { 1.0, 2.0, 3.0 };
@@ -94,9 +94,9 @@ double[] expected = { 1.0, 2.0, 3.0 };
Assert.That.Collection(actual).IsEqualTo(expected, 1e-8);
```
-### : StringAssert.That
+### Примеры: StringAssert.That
- `ValueChecker`:
+Строковые проверки через `ValueChecker`:
```csharp
StringAssert.That.Value("Hello, World!")
.StartWith("Hello")
@@ -105,9 +105,9 @@ StringAssert.That.Value("Hello, World!")
.Matches(@"^Hello,\sWorld!$");
```
-## : /
+## Дополнительно: работа с элементами перечислений/коллекций
- :
+Позиционные проверки и сводные метрики:
```csharp
var xs = Enumerable.Range(0, 10).ToArray();
@@ -121,10 +121,10 @@ Assert.That.Enumerable(xs)
.Average(x => x).IsEqual(4.5);
```
-##
+## Сообщения об ошибках
- : ( ), `Expected` `Actual` `Exception.Data`.
+Чекеры формируют понятные сообщения: при неравенстве указываются индексы элементов и сводки по расхождениям (включая относительную ошибку для числовых типов), а также прикладываются `Expected` и `Actual` в `Exception.Data`.
-##
+## Лицензия
MIT