-
Notifications
You must be signed in to change notification settings - Fork 108
/
Copy pathrandom.os
108 lines (63 loc) · 4.13 KB
/
random.os
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
///////////////////////////////////////////////////////////////////////
//
// Тест проверки работы генератора случайных чисел
//
//
///////////////////////////////////////////////////////////////////////
Перем юТест;
////////////////////////////////////////////////////////////////////
// Программный интерфейс
Функция Версия() Экспорт
Возврат "0.1";
КонецФункции
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
юТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
ВсеТесты.Добавить("ТестДолжен_СоздатьГенератор");
ВсеТесты.Добавить("ТестДолжен_ПроверитьДоступныеГраницы");
ВсеТесты.Добавить("ТестДолжен_ПроверитьГраницыНачальногоЗначения");
Возврат ВсеТесты;
КонецФункции
Процедура ТестДолжен_СоздатьГенератор() Экспорт
Перем Г;
Попытка
Г = Новый ГенераторСлучайныхЧисел();
Исключение
юТест.ПроверитьИстину(Ложь, "Ошибка создания генератора случайных чисел!");
КонецПопытки;
КонецПроцедуры
Процедура ТестДолжен_ПроверитьДоступныеГраницы() Экспорт
// Заявляется работа с диапазоном [0..4294967295]
Перем Г;
Г = Новый ГенераторСлучайныхЧисел();
Г.СлучайноеЧисло(0, 4294967295); // Проверить, что не валится с ошибкой
Попытка
Г.СлучайноеЧисло(-10, 4294967295);
Г.СлучайноеЧисло(0, 4294967296);
Г.СлучайноеЧисло(10, 5);
Ошибка = Истина;
Исключение
Ошибка = Ложь;
КонецПопытки;
юТест.ПроверитьЛожь(Ошибка, "Ошибка проверок границ работы метода `СлучайноеЧисло()`.");
КоличествоПроверок = 1000;
Пока КоличествоПроверок > 0 Цикл
Граница1 = Г.СлучайноеЧисло(0, 4294967295);
Граница2 = Г.СлучайноеЧисло(Граница1, 4294967295);
Ч = Г.СлучайноеЧисло(Граница1, Граница2);
юТест.ПроверитьИстину(Ч >= Граница1, "Проверка диапазона 1");
юТест.ПроверитьИстину(Ч <= Граница2, "Проверка диапазона 2");
КоличествоПроверок = КоличествоПроверок - 1;
КонецЦикла;
КонецПроцедуры
Процедура ТестДолжен_ПроверитьГраницыНачальногоЗначения() Экспорт
ГсчМин1 = Новый ГенераторСлучайныхЧисел(-36893488147419103232);
ГсчМин2 = Новый ГенераторСлучайныхЧисел(-36893488147419103232);
юТест.ПроверитьРавенство(ГсчМин1.СлучайноеЧисло(), ГсчМин2.СлучайноеЧисло());
ГсчМин1 = Новый ГенераторСлучайныхЧисел(36893488147419103232);
ГсчМин2 = Новый ГенераторСлучайныхЧисел(36893488147419103232);
юТест.ПроверитьРавенство(ГсчМин1.СлучайноеЧисло(), ГсчМин2.СлучайноеЧисло());
ГсчМин1 = Новый ГенераторСлучайныхЧисел(36893488147419103.232);
ГсчМин2 = Новый ГенераторСлучайныхЧисел(36893488147419103.232);
юТест.ПроверитьРавенство(ГсчМин1.СлучайноеЧисло(), ГсчМин2.СлучайноеЧисло());
КонецПроцедуры