/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/bitwise.os
154 строки
8 KB
Alexander Andreev
Исправлена опечатка в имени теста
07 окт 2017, 12:59
07 окт 2017, 12:59
79905d7
Код
Авторство
О чём код?
Перем юТест; //////////////////////////////////////////////////////////////////// // Программный интерфейс Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт юТест = ЮнитТестирование; ВсеТесты = Новый Массив; ВсеТесты.Добавить("ТестДолжен_ПроверитьПобитовоеИ"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПобитовоеИНе"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПобитовоеИли"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПобитовоеИсключительноеИли"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПобитовыеСдвиги"); ВсеТесты.Добавить("ТестДолжен_ПроверитьУстановкуБитов"); Возврат ВсеТесты; КонецФункции Процедура ТестДолжен_ПроверитьПобитовоеИ() Экспорт СамоеБольшоеЧисло = 4294967295; юТест.ПроверитьРавенство(ПобитовоеИ(4294967295, 0), 0); юТест.ПроверитьРавенство(ПобитовоеИ(0, 4294967295), 0); юТест.ПроверитьРавенство(ПобитовоеИ(1, 4294967295), 1); юТест.ПроверитьРавенство(ПобитовоеИ(2, 4294967295), 2); юТест.ПроверитьРавенство(ПобитовоеИ(7, 5), 5); КонецПроцедуры Процедура ТестДолжен_ПроверитьПобитовоеИНе() Экспорт СамоеБольшоеЧисло = 4294967295; юТест.ПроверитьРавенство(ПобитовоеИНе(4294967295, 0), 4294967295); юТест.ПроверитьРавенство(ПобитовоеИНе(0, 4294967295), 0); юТест.ПроверитьРавенство(ПобитовоеИНе(1, 4294967295), 0); юТест.ПроверитьРавенство(ПобитовоеИНе(2, 4294967295), 0); юТест.ПроверитьРавенство(ПобитовоеИНе(7, 5), 2); КонецПроцедуры Процедура ТестДолжен_ПроверитьПобитовоеИли() Экспорт СамоеБольшоеЧисло = 4294967295; юТест.ПроверитьРавенство(ПобитовоеИли(4294967295, 0), 4294967295); юТест.ПроверитьРавенство(ПобитовоеИли(0, 4294967295), 4294967295); юТест.ПроверитьРавенство(ПобитовоеИли(1, 4294967295), 4294967295); юТест.ПроверитьРавенство(ПобитовоеИли(2, 4294967295), 4294967295); юТест.ПроверитьРавенство(ПобитовоеИли(7, 1), 7); юТест.ПроверитьРавенство(ПобитовоеИли(17, 7), 23); КонецПроцедуры Функция СдвигВлевоВызвалИсключение(Знач Число, Знач Смещение) Попытка Число = ПобитовыйСдвигВлево(Число, Смещение); Исключение Возврат Истина; КонецПопытки; Возврат Ложь; КонецФункции Функция СдвигВправоВызвалИсключение(Знач Число, Знач Смещение) Попытка Число = ПобитовыйСдвигВлево(Число, Смещение); Исключение Возврат Истина; КонецПопытки; Возврат Ложь; КонецФункции Процедура ТестДолжен_ПроверитьПобитовыеСдвиги() Экспорт юТест.ПроверитьРавенство(ПобитовыйСдвигВлево(1, 0), 1); юТест.ПроверитьРавенство(ПобитовыйСдвигВлево(1, 1), 2); юТест.ПроверитьРавенство(ПобитовыйСдвигВлево(1, 2), 4); юТест.ПроверитьРавенство(ПобитовыйСдвигВлево(1, 3), 8); юТест.ПроверитьИстину(СдвигВлевоВызвалИсключение(1, 32)); юТест.ПроверитьИстину(СдвигВлевоВызвалИсключение(1, 33)); юТест.ПроверитьИстину(СдвигВлевоВызвалИсключение(1, -1)); юТест.ПроверитьИстину(СдвигВлевоВызвалИсключение(1, -2)); юТест.ПроверитьРавенство(ПобитовыйСдвигВправо(1, 0), 1); юТест.ПроверитьРавенство(ПобитовыйСдвигВправо(2, 1), 1); юТест.ПроверитьРавенство(ПобитовыйСдвигВправо(3, 2), 0); юТест.ПроверитьРавенство(ПобитовыйСдвигВправо(8, 3), 1); юТест.ПроверитьИстину(СдвигВправоВызвалИсключение(1, 32)); юТест.ПроверитьИстину(СдвигВправоВызвалИсключение(1, 33)); юТест.ПроверитьИстину(СдвигВправоВызвалИсключение(1, -1)); юТест.ПроверитьИстину(СдвигВправоВызвалИсключение(1, -2)); КонецПроцедуры Процедура ТестДолжен_ПроверитьПобитовоеИсключительноеИли() Экспорт юТест.ПроверитьРавенство(ПобитовоеИсключительноеИли(4294967295, 0), 4294967295); юТест.ПроверитьРавенство(ПобитовоеИсключительноеИли(7, 1), 6); юТест.ПроверитьРавенство(ПобитовоеИсключительноеИли(17, 7), 22); КонецПроцедуры Процедура ТестДолжен_ПроверитьУстановкуБитов() Экспорт Число = 0; Число = УстановитьБит(Число, 0, 1); Число = УстановитьБит(Число, 1, 1); Число = УстановитьБит(Число, 2, 1); Число = УстановитьБит(Число, 3, 1); юТест.ПроверитьРавенство(Число, 15); Число = УстановитьБит(Число, 0, 0); юТест.ПроверитьРавенство(Число, 14); Число = 48; юТест.ПроверитьРавенство(ПроверитьБит(Число, 1), Ложь); юТест.ПроверитьРавенство(ПроверитьБит(Число, 2), Ложь); юТест.ПроверитьРавенство(ПроверитьБит(Число, 3), Ложь); юТест.ПроверитьРавенство(ПроверитьБит(Число, 4), Истина); юТест.ПроверитьРавенство(ПроверитьБит(Число, 5), Истина); юТест.ПроверитьРавенство(ПроверитьБит(Число, 6), Ложь); юТест.ПроверитьИстину(ПроверитьПоБитовойМаске(127, 48)); юТест.ПроверитьИстину(ПроверитьПоБитовойМаске(52, 48)); юТест.ПроверитьИстину(ПроверитьПоБитовойМаске(56, 48)); юТест.ПроверитьЛожь(ПроверитьПоБитовойМаске(33, 48)); юТест.ПроверитьЛожь(ПроверитьПоБитовойМаске(47, 48)); КонецПроцедуры