-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathExtraCreditTest.cpp
More file actions
36 lines (31 loc) · 1.26 KB
/
ExtraCreditTest.cpp
File metadata and controls
36 lines (31 loc) · 1.26 KB
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
//
// Created by Saikat Chakraborty on 9/12/20.
//
#include "gtest/gtest.h"
#include <string>
#include <vector>
#include "Lexer.h"
void checkVectorEquality(std::vector<Token> generated_tokens, std::vector<Token> expected_tokens){
int gen_size = generated_tokens.size();
int expected_size = expected_tokens.size();
EXPECT_EQ(gen_size, expected_size);
for(int i = 0; i < gen_size; i++){
EXPECT_EQ(generated_tokens[i] , expected_tokens[i]);
}
}
TEST(LexerTestExtraCredit, TestNumberError){
std::string input = "n = 3.;";
// Expected Output
std::vector<Token> expected_tokens({Token(type_identifier, "n"), Token(type_assign_op, "="),
Token(type_error, "Invalid Number")});
std::vector<Token> generated_tokens = tokenizeCode(input);
checkVectorEquality(generated_tokens, expected_tokens);
}
TEST(LexerTestExtraCredit, TestStringError){
std::string input = "STR = \"Inv String;";
// Expected Output
std::vector<Token> expected_tokens({Token(type_identifier, "n"), Token(type_assign_op, "="),
Token(type_error, "Invalid String")});
std::vector<Token> generated_tokens = tokenizeCode(input);
checkVectorEquality(generated_tokens, expected_tokens);
}