/
thomas-king
/
Literals
Обзор
Документация
Войти
/
thomas-king
/
Literals
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
include/tests/parser_tests.h
268 строк
4 KB
AceRodstin
Update headers.
28 дек 2022, 17:58
28 дек 2022, 17:58
a269034
Код
Авторство
О чём код?
// // parser_tests.h // Literals // // Created by Ace Rodstin on 16 Nov 2022. // #ifndef LITERALSPARSER_TESTS_HEADER_FILE #define LITERALSPARSER_TESTS_HEADER_FILE #include <iostream> #include "../Parser.h" #include "../Ace.h" using namespace std; namespace parser_tests { void test_parse_boolean_literal_false() { // Given string input = "false"; Ace::Literal expected = Ace::Literal::boolean; // When Parser parser; auto output = parser.parse(input); // Then assert(output == expected); } void test_parse_boolean_literal_invalid_false() { // Given string input = "falsse"; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_boolean_literal_true() { // Given string input = "true"; Ace::Literal expected = Ace::Literal::boolean; // When Parser parser; auto output = parser.parse(input); // Then assert(output == expected); } void test_parse_boolean_literal_invalid_true() { // Given string input = "truue"; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_character_literal() { // Given string input = "\"a\""; Ace::Literal expected = Ace::Literal::character; // When Parser parser; auto output = parser.parse(input); // Then assert(output == expected); } void test_parse_character_literal_no_quotes() { // Given string input = "a"; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_character_literal_opening_quote() { // Given string input = "\"a"; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_character_literal_closing_quote() { // Given string input = "a\""; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_string_literal() { // Given string input = "\"abc\""; Ace::Literal expected = Ace::Literal::_string; // When Parser parser; auto output = parser.parse(input); // Then assert(output == expected); } void test_parse_string_literal_no_quotes() { // Given string input = "abc"; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_string_literal_opening_quote() { // Given string input = "\"abc"; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_string_literal_closing_quote() { // Given string input = "abc\""; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_double_literal() { // Given string input = "123.45"; Ace::Literal expected = Ace::Literal::_double; // When Parser parser; auto output = parser.parse(input); // Then assert(output == expected); } void test_parse_double_literal_from_integer() { // Given string input = "123"; Ace::Literal expected = Ace::Literal::integer; // When Parser parser; auto output = parser.parse(input); // Then assert(output == expected); } void test_parse_invalid_double_literal() { // Given string input = "1a2b3"; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_invalid_dots_double_literal() { // Given string input = "1.2.3"; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_parse_integer_literal() { // Given string input = "123"; Ace::Literal expected = Ace::Literal::integer; // When Parser parser; auto output = parser.parse(input); // Then assert(output == expected); } void test_parse_invalid_integer_literal() { // Given string input = "1a2b3"; // When Parser parser; auto output = parser.parse(input); // Then assert(!output.has_value()); } void test_is_literal() { // Given string input = "123"; // When Parser parser; bool is_literal = parser.is_literal(input); // Then assert(is_literal); } void test_is_not_literal() { // Given string input = "1a2b3"; // When Parser parser; bool is_literal = parser.is_literal(input); // Then assert(!is_literal); } } #endif