-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Реализована команда прямолинейного равномерного движения без деформации
- Loading branch information
etyumemntcev
committed
Jan 5, 2024
1 parent
bb5709d
commit 1efd4c2
Showing
14 changed files
with
814 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
Функция: Прямолинейное равномерное движение без деформации | ||
|
||
Сценарий: Объект, имеющий мгновенную скорость, перемещается в пространсте | ||
Дано объект находится в точке (12, 5) | ||
И объект имеет мгновенную скорость (-2, 4) | ||
Когда происходит прямолинейное равномерное движение без деформации | ||
Тогда объект перемещается в точку (10, 9) | ||
|
||
Сценарий: Объект, положение в пространстве которого определить невозможно, невозможно переместить | ||
Дано объект, положение в пространстве которого, определить невозможно | ||
Когда происходит прямолинейное равномерное движение без деформации | ||
Тогда операция прерывается выбросом исключения | ||
|
||
Сценарий: Объект, который не имеет мгновенную скорость, невозможно переместить | ||
Дано объект, который не имеет мгновенную скорость | ||
Когда происходит прямолинейное равномерное движение без деформации | ||
Тогда операция прерывается выбросом исключения | ||
|
||
Сценарий: Объект, положение в пространстве измнеить невозможно, невозможно переместить | ||
Дано объект находится в точке (12, 5) | ||
И объект имеет мгновенную скорость (-2, 4) | ||
И объект, положение в пространстке которого изменить нельзя | ||
Когда происходит прямолинейное равномерное движение без деформации | ||
Тогда операция прерывается выбросом исключения |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
Функция: Вектор n-мерного веторного пространства | ||
Для описания атрибутов объекта - положение в пространстве, мгновенная скоровть | ||
используются объекты класса Vector. | ||
|
||
@позитивный | ||
Сценарий: Два веткора можно сложить | ||
Дано двухмерный вектор a с координатами (2, 3) | ||
И двухмерный вектор b с координатами (2, -1) | ||
Когда складываем веторы a и b | ||
Тогда получаем вектор с координатами (4, 2). | ||
|
||
@негативный | ||
Сценарий: Два вектора разной размерности складывать нельзя | ||
Дано двухмерный вектор a с координатами (2, 3) | ||
И трехмерный вектор b с координатами (2, -1, 0) | ||
Когда складываем веторы a и b | ||
Тогда выбрасывается исключение |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
global using FluentAssertions; | ||
global using TechTalk.SpecFlow; | ||
global using Xunit; |
56 changes: 56 additions & 0 deletions
56
...ebattle/game.tests/StepDefinitions/ВекторN_МерногоВеторногоПространстваStepDefinitions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
namespace SpaceBattle.Tests.StepDefinitions | ||
{ | ||
[Binding] | ||
public class ВекторN_МерногоВеторногоПространстваStepDefinitions | ||
{ | ||
Vector a; | ||
Vector b; | ||
Vector result; | ||
Exception _ex; | ||
|
||
|
||
[Given(@"двухмерный вектор a с координатами \((.*), (.*)\)")] | ||
public void GivenВекторAСКоординатами(int x, int y) | ||
{ | ||
a = new Vector(x, y); | ||
} | ||
|
||
[Given(@"двухмерный вектор b с координатами \((.*), (.*)\)")] | ||
public void GivenВекторBСКоординатами(int x, int y) | ||
{ | ||
b = new Vector(x, y); | ||
} | ||
|
||
[Given(@"трехмерный вектор b с координатами \((.*), (.*), (.*)\)")] | ||
public void GivenВекторBСКоординатами(int x, int y, int z) | ||
{ | ||
b = new Vector(x, y, z); | ||
} | ||
|
||
[When(@"складываем веторы a и b")] | ||
public void WhenСкладываемВеторыAИB() | ||
{ | ||
try | ||
{ | ||
result = a + b; | ||
} | ||
catch(Exception ex) | ||
{ | ||
_ex = ex; | ||
} | ||
} | ||
|
||
[Then(@"получаем вектор с координатами \((.*), (.*)\)\.")] | ||
public void ThenПолучаемВекторСКоординатами_(int x, int y) | ||
{ | ||
Assert.Equal(new Vector(x, y), result); | ||
} | ||
|
||
[Then(@"выбрасывается исключение")] | ||
public void ThenВыбрасываетсяИсключение() | ||
{ | ||
Assert.ThrowsAny<Exception>(() => throw _ex); | ||
} | ||
|
||
} | ||
} |
85 changes: 85 additions & 0 deletions
85
...ame.tests/StepDefinitions/ПрямолинейноеРавномерноеДвижениеБезДеформацииStepDefinitions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
using Moq; | ||
using SpaceBattle; | ||
|
||
namespace Spacebattle.tests.StepDefinitions | ||
{ | ||
[Binding] | ||
public class ПрямолинейноеРавномерноеДвижениеБезДеформацииStepDefinitions | ||
{ | ||
Mock<IMovable> _obj = new Mock<IMovable>(); | ||
Exception? _ex = null; | ||
|
||
[Given(@"объект находится в точке \((.*), (.*)\)")] | ||
public void GivenОбъектНаходитсяВТочке(int p0, int p1) | ||
{ | ||
_obj.SetupGet<Vector>( | ||
o => o.Location | ||
) | ||
.Returns(new Vector(p0, p1)) | ||
.Verifiable(); | ||
} | ||
|
||
[Given(@"объект имеет мгновенную скорость \((.*), (.*)\)")] | ||
public void GivenОбъектИмеетМгновеннуюСкорость(int p0, int p1) | ||
{ | ||
_obj.SetupGet<Vector>( | ||
o => o.Velocity | ||
) | ||
.Returns(new Vector(p0, p1)) | ||
.Verifiable(); | ||
} | ||
|
||
[When(@"происходит прямолинейное равномерное движение без деформации")] | ||
public void WhenПроисходитПрямолинейноеРавномерноеДвижениеБезДеформации() | ||
{ | ||
try | ||
{ | ||
new MoveCommand(_obj.Object).Execute(); | ||
} | ||
catch (Exception ex) | ||
{ | ||
_ex = ex; | ||
} | ||
} | ||
|
||
[Then(@"объект перемещается в точку \((.*), (.*)\)")] | ||
public void ThenОбъектПеремещаетсяВТочку(int p0, int p1) | ||
{ | ||
_obj.VerifySet(o => o.Location = new Vector(p0, p1)); | ||
Assert.Null(_ex); | ||
} | ||
|
||
[Given("объект, положение в пространстве которого, определить невозможно")] | ||
public void GivenОбъектПоложениеВПространствеКоторогоОпределитьНевозможно() | ||
{ | ||
_obj.SetupGet<Vector>( | ||
o => o.Location | ||
) | ||
.Throws<Exception>() | ||
.Verifiable(); | ||
} | ||
|
||
|
||
[Given(@"объект, который не имеет мгновенную скорость")] | ||
public void GivenОбъектКоторыйНеИмеетМгновеннуюСкорость() | ||
{ | ||
_obj.SetupGet<Vector>( | ||
o => o.Velocity | ||
) | ||
.Throws<Exception>() | ||
.Verifiable(); | ||
} | ||
|
||
[Given("объект, положение в пространстке которого изменить нельзя")] | ||
public void GivenОбъектПоложениеВПространсткеКоторогоИзменитьНельзя() | ||
{ | ||
_obj.SetupSet(o => o.Location = It.IsAny<Vector>()).Throws<Exception>().Verifiable(); | ||
} | ||
|
||
[Then(@"операция прерывается выбросом исключения")] | ||
public void ThenОперацияПрерываетсяВыбросомИсключения() | ||
{ | ||
Assert.NotNull(_ex); | ||
} | ||
} | ||
} |
Oops, something went wrong.