void swap_parts(int* a, int* b , int k)
{
for (int f = 0; f<k; ++f)
std::swap(*a++, *b++);
}
void shift_left(int* a, int n, int k)
{
if (k == 0 || k >= n) return;
const int left = k;
const int right = n - k;
if (left < right)
{
int* right_part = a + (n - left);
swap_parts(a, right_part, left);
shift_left(a, n - left, left);
}
else
{
int* middle_part = a + right;
int* right_part = a + (n - right);
swap_parts(a, right_part, right);
shift_left(middle_part, n - right, left - right);
}
}
Вот, скажем, в одном цехе имеется оборудование, которое должно иметь на одном-единственном сетевом интерфейсе пять разных сетевых адресов (причём два из них, оба /28, вообще зашиты статически, и обслуживают взаимодействие с другими агрегатами комплекса), и обязательно из разных подсетей - это обязательное требование, явно описанное в документации на оборудование. Причём tagged оно не понимает от слова "совсем". Мне что, отдельный маршрутизатор туда ставить, чтобы разогнать подсети по разным VLAN? Да шло бы оно лесом.
IUserService<UserT>
. Скорее всего тебе подойдёт IUserService<out UserT>
. [Theory]
[MemberData(nameof(RatingRecordRepositoryTestData.GetAllMethod_TestData), MemberType = typeof(RatingRecordRepositoryTestData))]
public void Should_ReturnConcreteRatingRecords_When_ConveyingConcreteDifficulty
(DifficultyLevels difficultyLevel, int hours, int minutes, int seconds, List<RatingRecord> expectedData)
{
_ratingRecordRepositoryMock.SetupSequence(obj => obj.GetAll(difficultyLevel)).Returns(
new List<RatingRecord> { new RatingRecord() { GameCompletionTime = new TimeOnly(hours, minutes, seconds), GameCompletionDate = DateOnly.FromDateTime(DateTime.Now) } }
);
var realObject = _ratingRecordRepositoryMock.Object;
var actualData = realObject.GetAll(difficultyLevel);
Assert.Equal(expectedData, actualData);
}
}
С какого это перепугу виден? даже если эти порты не изолированы, то разные VLAN не дают пакету пройти с одного на другой.