Files
templates/tools/dsview/tests/gate_summary_test.cpp

31 lines
1.3 KiB
C++

/*
* Проверки gate_summary_test: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "gate_summary.h"
#include <cassert>
int main() {
GateSummary summary;
assert(summary.severity(true) == 1); // Empty captures are not OK.
summary.observe(0); summary.observe(1); summary.observe(2);
assert(summary.severity(false) == 1);
assert(summary.severity(true) == 0);
summary.observe(0); // A command without a complete ACK at EOF.
assert(summary.severity(true) == 1);
summary.observe(2);
assert(summary.severity(true) == 0);
summary.observe(3);
assert(summary.severity(true) == 1);
summary.observe(4);
assert(summary.severity(false) == 2);
assert(summary.severity(true) == 2);
summary.observe(2); // Later good events never hide earlier faults.
assert(summary.severity(true) == 2);
summary.reset();
assert(summary.severity(true) == 1);
summary.observe(5);
assert(summary.severity(true) == 2);
}