/
thomas-king
/
IntegerParser
Обзор
Документация
Войти
/
thomas-king
/
IntegerParser
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
include/tests/parser_tests.h
194 строки
4 KB
AceRodstin
Add support for binary digits.
02 янв 2023, 15:21
02 янв 2023, 15:21
34c3c6c
Код
Авторство
О чём код?
// // parser_tests.h // IntegerParser // // Created by Ace Rodstin on 2 Jan 2023. // #ifndef PARSERTESTS_HEADER_FILE #define PARSERTESTS_HEADER_FILE #include "../Parser.h" #include <string> using namespace std; namespace parser_tests { void test_digital_literal() { // Given string literal = "123"; int expected = 123; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_digital_literal_has_underscore() { // Given string literal = "1_000"; int expected = 1000; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_digital_literal_has_underscores() { // Given string literal = "1__000"; int expected = 1000; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_digital_literal_starts_with_underscore() { // Given string literal = "_1000"; bool is_error_thrown = false; // When Integer::Parser parser {}; try { parser.parse(literal); } catch(...) { is_error_thrown = true; } // Then assert(is_error_thrown); } void test_digital_literal_ends_with_underscore() { // Given string literal = "1000_"; int expected = 1000; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_hexadecimal_literal() { // Given string literal = "0xAB"; int expected = 171; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_hexadecimal_literal_has_underscore() { // Given string literal = "0xFF_FF"; int expected = 65535; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_hexadecimal_literal_uppercased() { // Given string literal = "0xAB"; int expected = 171; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_hexadecimal_literal_lowercased() { // Given string literal = "0xab"; int expected = 171; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_octal_literal() { // Given string literal = "0o175"; int expected = 125; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_octal_literal_has_underscore() { // Given string literal = "0o1_000"; int expected = 512; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_binary_literal() { // Given string literal = "0b1010"; int expected = 10; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } void test_binary_literal_has_underscore() { // Given string literal = "0b10_10"; int expected = 10; // When Integer::Parser parser {}; auto output = parser.parse(literal); // Then assert(output == expected); } } #endif