adding cs235
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
#pragma once
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <stack>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
class ExpressionManagerInterface
|
||||
{
|
||||
public:
|
||||
ExpressionManagerInterface(){}
|
||||
virtual ~ExpressionManagerInterface(){}
|
||||
|
||||
/*
|
||||
* Checks whether an expression is balanced on its parentheses
|
||||
*
|
||||
* - The given expression will have a space between every number or operator
|
||||
*
|
||||
* @return true if expression is balanced
|
||||
* @return false otherwise
|
||||
*/
|
||||
|
||||
virtual bool isBalanced(string expression) = 0;
|
||||
|
||||
/**
|
||||
* Converts a postfix expression into an infix expression
|
||||
* and returns the infix expression.
|
||||
*
|
||||
* - The given postfix expression will have a space between every number or operator.
|
||||
* - The returned infix expression must have a space between every number or operator.
|
||||
* - Redundant parentheses are acceptable i.e. ( ( 3 * 4 ) + 5 ).
|
||||
* - Check lab requirements for what will be considered invalid.
|
||||
*
|
||||
* return the string "invalid" if postfixExpression is not a valid postfix expression.
|
||||
* otherwise, return the correct infix expression as a string.
|
||||
*/
|
||||
virtual string postfixToInfix(string postfixExpression) = 0;
|
||||
|
||||
/*
|
||||
* Converts an infix expression into a postfix expression
|
||||
* and returns the postfix expression
|
||||
*
|
||||
* - The given infix expression will have a space between every number or operator.
|
||||
* - The returned postfix expression must have a space between every number or operator.
|
||||
* - Check lab requirements for what will be considered invalid.
|
||||
*
|
||||
* return the string "invalid" if infixExpression is not a valid infix expression.
|
||||
* otherwise, return the correct postfix expression as a string.
|
||||
*/
|
||||
virtual string infixToPostfix(string infixExpression) = 0;
|
||||
|
||||
/*
|
||||
* Evaluates a postfix expression returns the result as a string
|
||||
*
|
||||
* - The given postfix expression will have a space between every number or operator.
|
||||
* - Check lab requirements for what will be considered invalid.
|
||||
*
|
||||
* return the string "invalid" if postfixExpression is not a valid postfix Expression
|
||||
* otherwise, return the correct evaluation as a string
|
||||
*/
|
||||
virtual string postfixEvaluate(string postfixExpression) = 0;
|
||||
|
||||
|
||||
};
|
||||
@@ -0,0 +1,22 @@
|
||||
#include "Factory.h"
|
||||
#include "expman.h"
|
||||
//You may add #include statments here
|
||||
using namespace std;
|
||||
|
||||
/*
|
||||
Unlike all other documents provided, you may modify this document slightly (but do not change its name)
|
||||
*/
|
||||
//=======================================================================================
|
||||
/*
|
||||
createManager()
|
||||
|
||||
Creates and returns an object whose class extends ExpressionManagerInterface.
|
||||
This should be an object of a class you have created.
|
||||
|
||||
Example: If you made a class called "ExpressionManager", you might say, "return new ExpressionManager();".
|
||||
*/
|
||||
ExpressionManagerInterface* Factory::createManager()
|
||||
{
|
||||
return new expman();//Modify this line
|
||||
}
|
||||
//=======================================================================================
|
||||
@@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
#include "ExpressionManagerInterface.h"
|
||||
using namespace std;
|
||||
|
||||
/*
|
||||
WARNING: It is expressly forbidden to modify any part of this document, including its name
|
||||
*/
|
||||
//=======================================================================================
|
||||
/*
|
||||
createExpressionManager()
|
||||
|
||||
Creates and returns an object whose class extends ExpressionManagerInterface.
|
||||
This should be an object of a class you have created.
|
||||
|
||||
Example: If you made a class called "ExpressionManager", you might say, "return new ExpressionManager();".
|
||||
*/
|
||||
class Factory
|
||||
{
|
||||
public:
|
||||
static ExpressionManagerInterface * createManager();
|
||||
};
|
||||
//=======================================================================================
|
||||
@@ -0,0 +1,35 @@
|
||||
CXXFLAGS= -Wall -g -std=c++0x
|
||||
OBJECTS=Factory.o expman.o pwnd.o ignoreme.a
|
||||
EXE=main
|
||||
all: pwnd.o $(EXE) test
|
||||
|
||||
$(EXE): $(OBJECTS)
|
||||
$(CXX) $(CXXFLAGS) $(OBJECTS) -o $@
|
||||
main.o: main.cpp Factory.o expman.o pwnd.o ignoreme.a
|
||||
Factory.o: Factory.cpp Factory.h
|
||||
expman.o: expman.cpp expman.h
|
||||
pwnd.o: pwnd.c
|
||||
test: test.cc expman.o
|
||||
|
||||
run: main
|
||||
./main
|
||||
|
||||
rtest: test
|
||||
./test
|
||||
|
||||
clean:
|
||||
@rm -vf *.o
|
||||
@rm -vf $(EXE)
|
||||
@rm -vf *.1
|
||||
@rm -vf *.0
|
||||
@rm -vf test
|
||||
@rm -rvf *.dSYM
|
||||
|
||||
drun: main
|
||||
gdb ./main
|
||||
|
||||
debug: test
|
||||
gdb ./test
|
||||
|
||||
valgrind: $(EXE)
|
||||
valgrind --tool=memcheck --leak-check=yes ./$(EXE)
|
||||
@@ -0,0 +1,32 @@
|
||||
TITLE TA Test Driver
|
||||
|
||||
@echo off
|
||||
|
||||
|
||||
rem setting up environment variables needed for VS compiler
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86_amd64
|
||||
|
||||
rem compiling the .obj
|
||||
cl /EHsc /Fedont_run_me.exe Student_Code\*.cpp ignoreme.lib
|
||||
|
||||
rem if compilation failed, goto error section
|
||||
if ERRORLEVEL 1 goto error
|
||||
|
||||
rem cleanup unnecessary generated files
|
||||
del *.obj
|
||||
|
||||
rem run the driver in another window
|
||||
.\dont_run_me.exe
|
||||
del dont_run_me.exe
|
||||
pause
|
||||
|
||||
exit
|
||||
|
||||
:error
|
||||
|
||||
rem remove any generated files
|
||||
del *.obj
|
||||
|
||||
echo ----------ERROR--------
|
||||
pause
|
||||
exit
|
||||
@@ -0,0 +1,7 @@
|
||||
import sys
|
||||
|
||||
from shunting import shunt
|
||||
|
||||
|
||||
for line in sys.stdin:
|
||||
print shunt(line.split())
|
||||
@@ -0,0 +1,274 @@
|
||||
#include "expman.h"
|
||||
#include <cctype>
|
||||
|
||||
const string OPEN = "([{";
|
||||
const string CLOSE = ")]}";
|
||||
|
||||
bool is_open(char ch) {
|
||||
return OPEN.find(ch) != string::npos;
|
||||
}
|
||||
|
||||
bool is_close(char ch) {
|
||||
return CLOSE.find(ch) != string::npos;
|
||||
}
|
||||
|
||||
int precedence(string ch) {
|
||||
int status;
|
||||
if(ch == "(") {
|
||||
status = -1;
|
||||
}
|
||||
if(ch == ")") {
|
||||
status = -1;
|
||||
}
|
||||
if(ch == "+" or ch == "-")
|
||||
status = 2;
|
||||
if(ch == "*" or ch == "/")
|
||||
status = 3;
|
||||
return status;
|
||||
}
|
||||
|
||||
void process_operator(string ch, stack<string> & operator_stack, string & postfix) {
|
||||
cout << ch << " this is ch" << endl;
|
||||
if(operator_stack.empty()) {
|
||||
operator_stack.push(ch);
|
||||
return;
|
||||
}
|
||||
if(ch == ")") {
|
||||
bool validity = true;
|
||||
while(validity) {
|
||||
postfix += operator_stack.top();
|
||||
postfix += " ";
|
||||
operator_stack.pop();
|
||||
if(operator_stack.top() == "(") {
|
||||
operator_stack.pop();
|
||||
validity = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(precedence(ch) > precedence(operator_stack.top())) {
|
||||
operator_stack.push(ch);
|
||||
}
|
||||
else {
|
||||
while(!operator_stack.empty() and (precedence(ch) <= precedence(operator_stack.top()))) {
|
||||
postfix += operator_stack.top();
|
||||
postfix += " ";
|
||||
operator_stack.pop();
|
||||
}
|
||||
operator_stack.push(ch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool is_operator(string token) {
|
||||
if(token.size() != 1) {
|
||||
return false;
|
||||
}
|
||||
if(token == "+" or
|
||||
token == "-" or
|
||||
token == "/" or
|
||||
token == "*" or
|
||||
token == "^" or
|
||||
token == "(" or
|
||||
token == ")") {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool is_int(string token) {
|
||||
if(token == "") {
|
||||
return false;
|
||||
}
|
||||
for(unsigned int i = 0; i < token.size(); i++) {
|
||||
if(!isdigit(token[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool is_valid_token(string token) {
|
||||
if(!is_int(token) and !is_operator(token) and !is_paren(token)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool is_paren(string token) {
|
||||
if(token == "(" or
|
||||
token == "{" or
|
||||
token == "[" or
|
||||
token == ")" or
|
||||
token == "}" or
|
||||
token == "]") {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool is_valid_expression(string expression) {
|
||||
stack<string> temp = parse_expression(expression);
|
||||
while(!temp.empty()) {
|
||||
if(not is_valid_token(temp.top())) {
|
||||
return false;
|
||||
}
|
||||
temp.pop();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool expman::isBalanced(string expression) {
|
||||
stack<char> s;
|
||||
bool balanced = true;
|
||||
string::const_iterator iter = expression.begin();
|
||||
while(balanced && (iter != expression.end())) {
|
||||
char next_ch = *iter;
|
||||
if(is_open(next_ch)) {
|
||||
s.push(next_ch);
|
||||
}
|
||||
else if(is_close(next_ch)) {
|
||||
if(s.empty()) {
|
||||
balanced = false;
|
||||
}
|
||||
else {
|
||||
char top_ch = s.top();
|
||||
s.pop();
|
||||
balanced = OPEN.find(top_ch) == CLOSE.find(next_ch);
|
||||
}
|
||||
}
|
||||
++iter;
|
||||
}
|
||||
return balanced && s.empty();
|
||||
}
|
||||
|
||||
string expman::postfixToInfix(string postfixExpression) {
|
||||
cout << postfixExpression << endl;
|
||||
if(!isBalanced(postfixExpression))
|
||||
return "invalid";
|
||||
if(!is_valid_expression(postfixExpression))
|
||||
return "invalid";
|
||||
return "h";
|
||||
}
|
||||
|
||||
string expman::infixToPostfix(string infixExpression) {
|
||||
cout << infixExpression << endl;
|
||||
if(!isBalanced(infixExpression))
|
||||
return "invalid";
|
||||
if(!is_valid_expression(infixExpression))
|
||||
return "invalid";
|
||||
stack<string> operator_stack;
|
||||
stack<string> expression = parse_expression(infixExpression);
|
||||
expression = reverse_stack(expression);
|
||||
string postfix;
|
||||
while(!expression.empty()) {
|
||||
if(is_int(expression.top())) {
|
||||
postfix += expression.top();
|
||||
postfix += " ";
|
||||
expression.pop();
|
||||
}
|
||||
else if(is_operator(expression.top())) {
|
||||
process_operator(expression.top(), operator_stack, postfix);
|
||||
expression.pop();
|
||||
}
|
||||
else if(is_paren(expression.top())) {
|
||||
expression.pop();
|
||||
}
|
||||
}
|
||||
while(!operator_stack.empty()) {
|
||||
postfix += operator_stack.top();
|
||||
postfix += " ";
|
||||
operator_stack.pop();
|
||||
}
|
||||
cout << postfix << " final postfix" << endl;
|
||||
return postfix;
|
||||
}
|
||||
|
||||
string expman::postfixEvaluate(string postfixExpression) {
|
||||
cout << postfixExpression.size() << " size of string" << endl;
|
||||
if(!isBalanced(postfixExpression)) {
|
||||
cout << "not balanced" << endl;
|
||||
return "invalid";
|
||||
}
|
||||
if(!is_valid_expression(postfixExpression)) {
|
||||
cout << "invalide character" << endl;
|
||||
return "invalid";
|
||||
}
|
||||
stack<string> expression = parse_expression(postfixExpression);
|
||||
if(expression.size() == 1) {
|
||||
cout << "this is here" << endl;
|
||||
return postfixExpression;
|
||||
}
|
||||
stack<string> numbers;
|
||||
expression = reverse_stack(expression);
|
||||
while(!expression.empty()) {
|
||||
if(is_int(expression.top())) {
|
||||
numbers.push(expression.top());
|
||||
expression.pop();
|
||||
}
|
||||
else if(is_operator(expression.top())) {
|
||||
if(numbers.empty()) {
|
||||
return "invalid";
|
||||
}
|
||||
string r = numbers.top();
|
||||
string l = numbers.top();
|
||||
numbers.pop();
|
||||
numbers.pop();
|
||||
int left = atoi(l.c_str());
|
||||
int right = atoi(r.c_str());
|
||||
int result;
|
||||
if(expression.top() == "+") {
|
||||
result = left + right;
|
||||
}
|
||||
else if(expression.top() == "-") {
|
||||
result = left - right;
|
||||
}
|
||||
else if(expression.top() == "*") {
|
||||
result = left * right;
|
||||
}
|
||||
else if(expression.top()== "/") {
|
||||
if(left == 0) {
|
||||
return "invalid";
|
||||
}
|
||||
else {
|
||||
result = right / left;
|
||||
}
|
||||
}
|
||||
expression.pop();
|
||||
stringstream ss;
|
||||
ss << result;
|
||||
numbers.push(ss.str());
|
||||
}
|
||||
}
|
||||
return numbers.top();
|
||||
}
|
||||
|
||||
stack<string> reverse_stack(stack<string> s) {
|
||||
stack<string> r;
|
||||
while(!s.empty()) {
|
||||
r.push(s.top());
|
||||
s.pop();
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
stack<string> parse_expression(string expression) {
|
||||
stack<string> results;
|
||||
string s;
|
||||
for(unsigned int i = 0; i < expression.length(); i++) {
|
||||
char c = expression[i];
|
||||
if(c != ' ') {
|
||||
s += c;
|
||||
}
|
||||
else {
|
||||
if(s != "") {
|
||||
results.push(s);
|
||||
s.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
if(s != "") {
|
||||
results.push(s);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
#ifndef __EXPMAN_H__
|
||||
#define __EXPMAN_H__
|
||||
#include <iostream>
|
||||
#include <stack>
|
||||
#include <vector>
|
||||
#include <cstdlib>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include "ExpressionManagerInterface.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class expman : public ExpressionManagerInterface {
|
||||
public:
|
||||
bool isBalanced(string expression);
|
||||
string postfixToInfix(string postfixExpression);
|
||||
string infixToPostfix(string infixExpression);
|
||||
string postfixEvaluate(string postfixExpression);
|
||||
};
|
||||
|
||||
int precedence(string ch);
|
||||
bool is_paren(string token);
|
||||
bool is_int(string token);
|
||||
bool is_valid_expression(string token);
|
||||
bool is_valid_token(string token);
|
||||
stack<string> reverse_stack(stack<string>);
|
||||
stack<string> parse_expression(string);
|
||||
#endif
|
||||
Binary file not shown.
@@ -0,0 +1,165 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<!-- saved from url=(0063)http://students.cs.byu.edu/~cs235headta/homework/labs.php?lab=4 -->
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
|
||||
<title>CS 235 - Labs</title>
|
||||
<link rel="stylesheet" type="text/css" href="./lab04_files/main.css">
|
||||
<link rel="stylesheet" type="text/css" href="./lab04_files/labs.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div id="header">
|
||||
|
||||
|
||||
<a href="http://students.cs.byu.edu/~cs235headta/index.php"><img src="./lab04_files/title.png" alt="Computer Science 235" class="centered" border="0" height="77"></a>
|
||||
</div>
|
||||
|
||||
<div id="sidebar">
|
||||
<div id="menu">
|
||||
<h2>Information</h2>
|
||||
<ul>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/index.php">Announcements</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/information/ta_schedule.php">TA Schedule</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/information/personnel.php">Personnel</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/information/view_grades.php">View Grades</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/information/syllabus.php">Syllabus</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/labs.php?lab=0">Orientation</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="menu">
|
||||
<h2>Homework</h2>
|
||||
<ul>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/labs.php?lab=1">Labs</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/course_schedule.php">Course Schedule</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/cover_sheets.php">Cover Sheets</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/submit_exam.php">Submit Exam</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/help_passoff.php">Help / Passoff</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="menu">
|
||||
<h2>Reference</h2>
|
||||
<ul>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/reference/lecture_slides.php">Lecture Slides</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/reference/book_examples.php">Book Examples</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/reference/vs_guide.php">Visual Studio Guide</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/reference/eclipse_guide.php">Eclipse/Linux Guide</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/reference/msdn.php">MSDN Academic Alliance</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/reference/exam_guide.php">Exam Guide</a></li>
|
||||
<li><a href="http://www.cplusplus.com/reference/">C++ Reference</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/reference/javacpp.php">Java vs. C++</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="menu">
|
||||
<h2>Software</h2>
|
||||
<ul>
|
||||
<li><a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express"> Visual Studio</a>
|
||||
</li></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="page">
|
||||
<div id="content">
|
||||
|
||||
<script type="text/javascript">
|
||||
function redirectLab(lab) {
|
||||
window.location = "labs.php?lab=" + lab;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<h2>Lab 4</h2>
|
||||
<form action="" method="get" name="changeLab">
|
||||
<select name="lab" onchange="redirectLab(document.changeLab.lab.value);">
|
||||
<option value="0" selected="">Select a Lab:</option>
|
||||
<option value="0">Orientation</option>
|
||||
<option value="1">Lab 1</option>
|
||||
<option value="2">Lab 2</option>
|
||||
<option value="3">Lab 3</option>
|
||||
<option value="4" selected="selected">Lab 4</option>
|
||||
<option value="5">Lab 5</option>
|
||||
<option value="6">Lab 6</option>
|
||||
<option value="7">Lab 7</option>
|
||||
<option value="8">Lab 8</option>
|
||||
<option value="9">Lab 9</option>
|
||||
<option value="10">Lab 10</option>
|
||||
</select>
|
||||
</form>
|
||||
|
||||
|
||||
<div class="infoBox">
|
||||
<h3>Purpose</h3>
|
||||
<p>To become familiarized with the use of stacks as data structures.</p>
|
||||
|
||||
<h3>Key Reading</h3>
|
||||
<ul>
|
||||
<li>5.1-5.4</li>
|
||||
</ul>
|
||||
|
||||
<h3>Background</h3>
|
||||
<p>Develop an Expression Manager that performs several operations on infix and postfix expressions. Be able to convert from one form to the other, evaluate postfix expressions, and check for balanced parenthetical expressions.</p>
|
||||
|
||||
|
||||
<p>You may also refer to Edsger Dijkstra's "Shunting-yard algorithm" for additional help, which can be viewed <a href="http://en.wikipedia.org/wiki/Shunting_yard_algorithm" target="_blank">here</a>.</p>
|
||||
<h3>Requirements</h3>
|
||||
|
||||
<p>You will need <a href="http://students.cs.byu.edu/~cs235headta/homework/student_files/Lab3ShuntingYard.zip">these files</a> to complete the assignment. Details for method constraints are found in these documents and are still a part of the requirements. (If downloaded before 9/17, 2:00 pm re-download. There are errors that were fixed that will cause the driver to break on working code.)</p>
|
||||
|
||||
|
||||
<p>Extend the <code>ExpressionManagerInterface.h</code>.</p>
|
||||
<p></p>
|
||||
<h4>Part 1 - Balanced Symbols Check (10 points)</h4>
|
||||
<ul>
|
||||
<li>Determine and report whether an expression is balanced. { [ } ] is not balanced. [ ( ) ] is balanced and valid</li>
|
||||
</ul>
|
||||
<h4>Part 2 - Infix to Postfix Conversion (10 points)</h4>
|
||||
<ul>
|
||||
<li>Alert the user if the given infix expression is not valid</li>
|
||||
<li>Convert the infix expression into a postfix expression and display the postfix expression</li>
|
||||
</ul>
|
||||
<h4>Part 3 - Postfix to Infix Conversion (10 points)</h4>
|
||||
<ul>
|
||||
<li>Alert the user if the given postfix expression is not valid</li>
|
||||
<li>Convert the postfix expression into an infix expression and display the infix expression</li>
|
||||
</ul>
|
||||
<h4>Part 4 - Postfix Expression Evaluation (10 points)</h4>
|
||||
<ul>
|
||||
<li>Alert the user if the given postfix expression is not valid</li>
|
||||
<li>Evaluate the given postfix expression and display the result</li>
|
||||
<li>Handle attempts to divide by 0</li>
|
||||
</ul>
|
||||
|
||||
<h3>Requirement Notes</h3>
|
||||
|
||||
<h4>General</h4>
|
||||
<ul>
|
||||
<li>Valid expressions consist of integers; brackets, braces, and parentheses; and +, -, *, /, and %. Reject any invalid expressions and inform the user.</li>
|
||||
<li>Your calculations should perform integer divison and produce integer results</li>
|
||||
<li>Valid expressions also need to satisfy standard infix or postfix requirements</li>
|
||||
<li>{,},(,),[, and ] are the only symbols considered for the Balanced Symbols Check</li>
|
||||
<li>Your program should allow the user to repeat the activities</li>
|
||||
<li>You can assume there will be a space between every number or operator</li>
|
||||
<li>You must put parenthesis '()' around every part of the expression during the postfix to infix conversion. i.e. "4 2 5 + *" = "( 4 *( 2 + 5 ) )"</li>
|
||||
<li>You must use the stack class pre-defined in the C++ Standard Template Library (STL). i.e. <code>#include <stack></code></li>
|
||||
</ul>
|
||||
|
||||
<h4>Test Cases</h4>
|
||||
<ul>
|
||||
<li>The expressions in the test files will be written with one complete expression on each line. Available below are small test files you may use to test your program for pass off on each part.
|
||||
This is not a comprehensive set of tests, but it should familiarize you with the format and give you ideas for additional test cases you can add. Your program must display the result of the selected
|
||||
operation for each of the expressions in the file.
|
||||
<ul>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/student_files/part1.txt">Part1.txt</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/student_files/part2.txt">Part2.txt</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/student_files/part3.txt">Part3.txt</a></li>
|
||||
<li><a href="http://students.cs.byu.edu/~cs235headta/homework/student_files/part4.txt">Part4.txt</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</div>
|
||||
</body><link rel="stylesheet" type="text/css" href="data:text/css,"></html>
|
||||
@@ -0,0 +1,13 @@
|
||||
form {
|
||||
position: absolute;
|
||||
left: 1015px;
|
||||
top: 85px;
|
||||
}
|
||||
pre {
|
||||
border: 1px solid #666;
|
||||
background-color: #ddd;
|
||||
padding: 15px;
|
||||
}
|
||||
h3 {
|
||||
text-decoration: underline;
|
||||
}
|
||||
@@ -0,0 +1,344 @@
|
||||
body {
|
||||
background: #fff url(../imgs/background.jpg) repeat-y left top;
|
||||
font-size: 14px;
|
||||
/*text-align: justify;*/
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
body, th, td, input, textarea, select, option {
|
||||
font-family: "Trebuchet MS", Helvetica, Arial, sans-serif;/*, "Times New Roman", Arial, Times, serif;*/
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
text-transform: uppercase;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-weight: normal;
|
||||
color: #1C1C1C;
|
||||
}
|
||||
|
||||
h1 {
|
||||
letter-spacing: -2px;
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
letter-spacing: -1px;
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.4em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
p, ul, ol {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
blockquote p, blockquote ul, blockquote ol {
|
||||
line-height: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #030a36;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
hr {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
#header {
|
||||
width: 100%;
|
||||
height: 75px;
|
||||
margin: 0 left;
|
||||
margin-bottom: 20px;
|
||||
text-transform: uppercase;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
background-color: #999;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#ddd), to(#999));
|
||||
background-image: -moz-linear-gradient(-90deg, #ddd, #999);
|
||||
}
|
||||
|
||||
#header h1, #header p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#header h1 {
|
||||
float: left;
|
||||
padding: 5px 0 0 320px;
|
||||
color: #F79F1A;
|
||||
font-size: 36px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#header p {
|
||||
float: left;
|
||||
padding: 17px 0 0 5px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
color: #EEEEEE;
|
||||
}
|
||||
|
||||
#header a {
|
||||
text-decoration: none;
|
||||
color: #F79F1A;
|
||||
}
|
||||
|
||||
/* Page */
|
||||
#page {
|
||||
width: 1100px;
|
||||
margin: 0 left;
|
||||
}
|
||||
|
||||
/* Content */
|
||||
#content {
|
||||
float: right;
|
||||
width: 800px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#content img {
|
||||
float: left;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.post {
|
||||
padding: 5px 0 0 0;
|
||||
}
|
||||
|
||||
.title {
|
||||
padding: 0 20px 0 20px;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.title a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.pagetitle {
|
||||
}
|
||||
|
||||
.byline {
|
||||
margin: -30px 20px 0 20px;
|
||||
color: #646464;
|
||||
}
|
||||
|
||||
.meta {
|
||||
border-bottom: 10px solid #EEEEEE;
|
||||
text-align: right;
|
||||
color: #646464;
|
||||
padding: 10px 20px 20px 20px;
|
||||
text-transform: uppercase;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.meta .more {
|
||||
background: #EEEEEE;
|
||||
padding: 5px 15px;
|
||||
}
|
||||
|
||||
.meta .comments {
|
||||
background: #EEEEEE;
|
||||
padding: 5px 15px;
|
||||
}
|
||||
|
||||
.meta a {
|
||||
}
|
||||
|
||||
.alignleft {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.alignright {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.posts {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.posts li {
|
||||
}
|
||||
|
||||
.posts h3 {
|
||||
margin: 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.posts p {
|
||||
margin: 0;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.posts a {
|
||||
}
|
||||
|
||||
.entry {
|
||||
margin: 0 20px 0 20px;
|
||||
}
|
||||
|
||||
.last {
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
#sidebar {
|
||||
float: left;
|
||||
width: 220px;
|
||||
color: #EEEEEE;
|
||||
}
|
||||
|
||||
#menu {
|
||||
border-bottom:thin dotted #FFFFFF;
|
||||
margin: 0 20px 20px 10px;
|
||||
}
|
||||
|
||||
#sidebar ul {
|
||||
margin: 0 0 0 45px;
|
||||
padding: 0px 0 20px 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#sidebar li {
|
||||
}
|
||||
|
||||
#sidebar li ul {
|
||||
padding: 0px 0px 16px 0px;
|
||||
}
|
||||
|
||||
#sidebar li li {
|
||||
border-bottom: 1px dotted #1C1C1C;
|
||||
padding: 0 0 10px 0px;
|
||||
}
|
||||
|
||||
#sidebar h2 {
|
||||
margin: 0;
|
||||
height: 30px;
|
||||
padding: 0px 0px 0px 20px;
|
||||
text-transform: uppercase;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 18px;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
#sidebar a {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
#sidebar a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.infoBox {
|
||||
position: relative;
|
||||
border-top: 1px dotted #999;
|
||||
padding: 15px 0;
|
||||
overflow: auto;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Search */
|
||||
#search input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#search input#s {
|
||||
display: block;
|
||||
width: 230px;
|
||||
padding: 2px 5px;
|
||||
border: 1px solid #3DD1FF;
|
||||
background: #EEEEEE
|
||||
}
|
||||
|
||||
#search br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Calendar */
|
||||
#calendar {
|
||||
}
|
||||
|
||||
#calendar h2 {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
#calendar table {
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#calendar caption {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#next {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#prev {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
#footer {
|
||||
clear: both;
|
||||
width: 900px;
|
||||
height: 50px;
|
||||
margin: 0 left;
|
||||
text-align: right;
|
||||
font-size: smaller;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
#footer p {
|
||||
padding: 50px 60px 20px 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
#footer p a {
|
||||
}
|
||||
|
||||
table {
|
||||
text-align: center;
|
||||
margin: 15px auto 0 auto;
|
||||
border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
}
|
||||
th {
|
||||
color: #fff;
|
||||
background-color: #030a36;
|
||||
padding: 3px 10px;
|
||||
}
|
||||
th:first-child {
|
||||
-moz-border-radius: 7px 0 0 0;
|
||||
-webkit-border-radius: 7px 0 0 0;
|
||||
border-radius: 7px 0 0 0;
|
||||
}
|
||||
th:last-child {
|
||||
-moz-border-radius: 0 7px 0 0;
|
||||
-webkit-border-radius: 0 7px 0 0;
|
||||
border-radius: 0 7px 0 0;
|
||||
}
|
||||
td {
|
||||
background-color:#d6d6d6;
|
||||
padding: 3px 10px;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
@@ -0,0 +1,14 @@
|
||||
#include <iostream>
|
||||
#include <cassert>
|
||||
#include "expman.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
expman e;
|
||||
assert(e.isBalanced("{ { [ ( ) ] } ( ) }") == true);
|
||||
assert(e.isBalanced("{ [ ) }") == false);
|
||||
assert(e.isBalanced("{ ( [ ] } )") == false);
|
||||
assert(e.isBalanced("{") == false);
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
#include <unistd.h>
|
||||
|
||||
int usleep(useconds_t usec) {
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name = 'cs235lab04',
|
||||
version = '0.0dev',
|
||||
packages = find_packages(),
|
||||
author = "Stephen M. McQuay",
|
||||
author_email = "stephen@mcquay.me",
|
||||
url = "http://bitbucket.org/smcquay/cs235",
|
||||
license = "WTFPL",
|
||||
)
|
||||
@@ -0,0 +1,23 @@
|
||||
from collections import deque
|
||||
|
||||
|
||||
op_prec = {
|
||||
'*': 3,
|
||||
'/': 3,
|
||||
'%': 3,
|
||||
'+': 2,
|
||||
'-': 2,
|
||||
}
|
||||
|
||||
|
||||
def shunt(tokens):
|
||||
tokens = deque(tokens)
|
||||
output = deque()
|
||||
operators = deque()
|
||||
while tokens:
|
||||
token = tokens.pop()
|
||||
if token.isdigit():
|
||||
output.append(token)
|
||||
elif token in op_prec:
|
||||
operators.append(token)
|
||||
return output, operators
|
||||
@@ -0,0 +1,10 @@
|
||||
import unittest
|
||||
|
||||
from shunting import shunt
|
||||
|
||||
|
||||
class ShuntTest(unittest.TestCase):
|
||||
|
||||
def test_simple_add(self):
|
||||
o, s = shunt(['4', '+', '3'])
|
||||
self.assertEquals(o, ['4', '3', '+'])
|
||||
@@ -0,0 +1,117 @@
|
||||
#include <iostream>
|
||||
#include <stack>
|
||||
#include <vector>
|
||||
#include <cassert>
|
||||
#include <algorithm>
|
||||
#include <cctype>
|
||||
#include "expman.h"
|
||||
|
||||
ostream & operator<<(ostream & os, stack<string> & s) {
|
||||
while(not s.empty()) {
|
||||
os << "'" << s.top() << "', ";
|
||||
s.pop();
|
||||
}
|
||||
return os;
|
||||
}
|
||||
|
||||
int main() {
|
||||
stringstream oss;
|
||||
|
||||
auto r1 = parse_expression(string("1 + 40 + 3"));
|
||||
oss << r1;
|
||||
assert(oss.str() == "'3', '+', '40', '+', '1', ");
|
||||
oss.str("");
|
||||
|
||||
auto r2 = parse_expression(string(" 1 + 40 + 3"));
|
||||
oss << r2;
|
||||
assert(oss.str() == "'3', '+', '40', '+', '1', ");
|
||||
oss.str("");
|
||||
|
||||
auto r3 = parse_expression(string("1 + 40 + 3 "));
|
||||
oss << r3;
|
||||
assert(oss.str() == "'3', '+', '40', '+', '1', ");
|
||||
oss.str("");
|
||||
|
||||
auto r4 = parse_expression(string(" 1 + 40 + 3 "));
|
||||
oss << r4;
|
||||
assert(oss.str() == "'3', '+', '40', '+', '1', ");
|
||||
oss.str("");
|
||||
|
||||
auto r5 = parse_expression(string(" "));
|
||||
oss << r5;
|
||||
assert(oss.str() == "");
|
||||
oss.str("");
|
||||
|
||||
auto r6 = parse_expression(string(" "));
|
||||
oss << r6;
|
||||
assert(oss.str() == "");
|
||||
oss.str("");
|
||||
|
||||
auto r7 = parse_expression(string(""));
|
||||
oss << r7;
|
||||
assert(oss.str() == "");
|
||||
oss.str("");
|
||||
|
||||
auto r8 = parse_expression(string("1"));
|
||||
oss << r8;
|
||||
assert(oss.str() == "'1', ");
|
||||
oss.str("");
|
||||
|
||||
{
|
||||
stack<string> s;
|
||||
s.push("a");
|
||||
s.push("b");
|
||||
s.push("c");
|
||||
auto s2 = reverse_stack(s);
|
||||
assert(s2.top() == "a");
|
||||
s2.pop();
|
||||
assert(s2.top() == "b");
|
||||
s2.pop();
|
||||
assert(s2.top() == "c");
|
||||
s2.pop();
|
||||
}
|
||||
|
||||
assert(precedence("*") == precedence("/"));
|
||||
assert(precedence("+") == precedence("-"));
|
||||
assert(precedence("*") > precedence(")"));
|
||||
assert(precedence("(") < precedence(")"));
|
||||
assert(precedence(")") < precedence("/"));
|
||||
|
||||
assert(is_int("42") == true);
|
||||
assert(is_int("6y") == false);
|
||||
assert(is_int("+") == false);
|
||||
assert(is_int("4 + 2") == false);
|
||||
assert(is_int("$") == false);
|
||||
assert(is_int("") == false);
|
||||
|
||||
assert(is_valid_token("3") == true);
|
||||
assert(is_valid_token("3 + 3") == false);
|
||||
assert(is_valid_token("") == false);
|
||||
assert(is_valid_token("-") == true);
|
||||
assert(is_valid_token("*") == true);
|
||||
assert(is_valid_token("3 + a") == false);
|
||||
assert(is_valid_token("$") == false);
|
||||
assert(is_valid_token("ahugegiantstring") == false);
|
||||
|
||||
assert(is_valid_expression("3") == true);
|
||||
assert(is_valid_expression("3 + 3") == true);
|
||||
assert(is_valid_expression("3 / 4 + 2 * 9") == true);
|
||||
assert(is_valid_expression("3 - 0") == true);
|
||||
assert(is_valid_expression("a") == false);
|
||||
assert(is_valid_expression("3 + a") == false);
|
||||
assert(is_valid_expression("3 $ 3") == false);
|
||||
assert(is_valid_expression("suckmygiantballs") == false);
|
||||
assert(is_valid_expression("40 * ( 2 + 4 - ( 2 + 2 ) ) - 4 / 5 / 6") == true);
|
||||
|
||||
assert(is_paren("(") == true);
|
||||
assert(is_paren("1") == false);
|
||||
assert(is_paren("a21)") == false);
|
||||
assert(is_paren("{") == true);
|
||||
assert(is_paren(")") == true);
|
||||
assert(is_paren("$") == false);
|
||||
assert(is_paren("!%#") == false);
|
||||
|
||||
expman e;
|
||||
string b = "3 + 3";
|
||||
// assert(e.infixToPostfix(b) == "3 3 +");
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
3 + 4
|
||||
3 + 4 * 2
|
||||
@@ -0,0 +1,4 @@
|
||||
{ { [ ( ) ] } ( ) }
|
||||
{ [ ) }
|
||||
{ ( [ ] } )
|
||||
{
|
||||
@@ -0,0 +1,4 @@
|
||||
2 + a
|
||||
3 $ 3
|
||||
40 * ( 2 + 4 - ( 2 + 2 ) ) - 4 / 5 / 6
|
||||
4 * ( 2 + 4 - ( 2 + ) ) - 4 / 5
|
||||
@@ -0,0 +1,3 @@
|
||||
3 + 3 /
|
||||
3 3 4 +
|
||||
40 2 4 + 1 1 + - * 4 5 / 6 / -
|
||||
@@ -0,0 +1,3 @@
|
||||
40 2 4 + 1 1 + - * 4 2 / 1 / - 7 %
|
||||
+ 3 4 +
|
||||
4 5 2 + * 2 /
|
||||
@@ -0,0 +1,661 @@
|
||||
{
|
||||
Dynamic Linker Bug
|
||||
Memcheck:Cond
|
||||
fun:_dl_relocate_object
|
||||
fun:dl_main
|
||||
fun:_dl_sysdep_start
|
||||
fun:_dl_start
|
||||
obj:/lib/ld-2.6.so
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_ZNK10LinkedList4FindERKSsP6LLNode
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_ZNK10LinkedList4FindERKSsP6LLNode
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_ZNK10LinkedList4FindERKSsP6LLNode
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_ZSt6__findISt14_List_iteratorISsESsET_S2_S2_RKT0_St18input_iterator_tag
|
||||
fun:_ZSt4findISt14_List_iteratorISsESsET_S2_S2_RKT0_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_ZNK10LinkedList4FindERKSsP6LLNode
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZNK10LinkedList4FindERKSsP6LLNode
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZNK10LinkedList4FindERKSsP6LLNode
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZNK10LinkedList4FindERKSsP6LLNode
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_ZSt6__findISt14_List_iteratorISsESsET_S2_S2_RKT0_St18input_iterator_tag
|
||||
fun:_ZSt4findISt14_List_iteratorISsESsET_S2_S2_RKT0_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_Z14TestLinkedListb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:_ZNKSs7compareERKSs
|
||||
fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:strlen
|
||||
fun:_ZNSsC1EPKcRKSaIcE
|
||||
fun:_Z11generateKeyv
|
||||
fun:_Z7TestBSTb
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:bcmp
|
||||
fun:_ZNSt11char_traitsIcE7compareEPKcS2_j
|
||||
fun:_ZSteqIcEN9__gnu_cxx11__enable_ifIXsrSt9__is_charIT_E7__valueEbE6__typeERKSbIS3_St11char_traitsIS3_ESaIS3_EESC_
|
||||
fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
|
||||
fun:_ZN3tut12_GLOBAL__N_113ensure_equalsISsSsEEvPKcRKT0_RKT_
|
||||
fun:_ZN7BSTTest7initBSTER3BST
|
||||
fun:_ZN3tut11test_objectI7BSTTestE4testILi2EEEvv
|
||||
fun:_ZN3tut10test_groupI7BSTTestLi50EE13run_test_seh_EMNS_11test_objectIS1_EEFvvERNS2_11safe_holderIS4_EERSs
|
||||
fun:_ZN3tut10test_groupI7BSTTestLi50EE9run_test_ERKSt17_Rb_tree_iteratorISt4pairIKiMNS_11test_objectIS1_EEFvvEEERNS2_11safe_holderIS7_EE
|
||||
fun:_ZN3tut10test_groupI7BSTTestLi50EE8run_nextEv
|
||||
fun:_ZNK3tut11test_runner23run_all_tests_in_group_ESt23_Rb_tree_const_iteratorISt4pairIKSsPNS_10group_baseEEE
|
||||
fun:_ZNK3tut11test_runner9run_testsEv
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:bcmp
|
||||
fun:_ZNSt11char_traitsIcE7compareEPKcS2_j
|
||||
fun:_ZSteqIcEN9__gnu_cxx11__enable_ifIXsrSt9__is_charIT_E7__valueEbE6__typeERKSbIS3_St11char_traitsIS3_ESaIS3_EESC_
|
||||
fun:_ZNK10LinkedList4FindERKSsP6LLNode
|
||||
fun:_ZN3tut11test_objectI14LinkedListTestE4testILi8EEEvv
|
||||
fun:_ZN3tut10test_groupI14LinkedListTestLi50EE13run_test_seh_EMNS_11test_objectIS1_EEFvvERNS2_11safe_holderIS4_EERSs
|
||||
fun:_ZN3tut10test_groupI14LinkedListTestLi50EE9run_test_ERKSt17_Rb_tree_iteratorISt4pairIKiMNS_11test_objectIS1_EEFvvEEERNS2_11safe_holderIS7_EE
|
||||
fun:_ZN3tut10test_groupI14LinkedListTestLi50EE8run_nextEv
|
||||
fun:_ZNK3tut11test_runner23run_all_tests_in_group_ESt23_Rb_tree_const_iteratorISt4pairIKSsPNS_10group_baseEEE
|
||||
fun:_ZNK3tut11test_runner9run_testsEv
|
||||
fun:_Z3runRKSsi
|
||||
fun:main
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:bcmp
|
||||
fun:_ZNSt11char_traitsIcE7compareEPKcS2_j
|
||||
fun:_ZSteqIcEN9__gnu_cxx11__enable_ifIXsrSt9__is_charIT_E7__valueEbE6__typeERKSbIS3_St11char_traitsIS3_ESaIS3_EESC_
|
||||
fun:_ZSt6__findISt14_List_iteratorISsESsET_S2_S2_RKT0_St18input_iterator_tag
|
||||
fun:_ZSt4findISt14_List_iteratorISsESsET_S2_S2_RKT0_
|
||||
fun:_ZN3tut11test_objectI14LinkedListTestE4testILi9EEEvv
|
||||
fun:_ZN3tut10test_groupI14LinkedListTestLi50EE13run_test_seh_EMNS_11test_objectIS1_EEFvvERNS2_11safe_holderIS4_EERSs
|
||||
fun:_ZN3tut10test_groupI14LinkedListTestLi50EE9run_test_ERKSt17_Rb_tree_iteratorISt4pairIKiMNS_11test_objectIS1_EEFvvEEERNS2_11safe_holderIS7_EE
|
||||
fun:_ZN3tut10test_groupI14LinkedListTestLi50EE8run_nextEv
|
||||
fun:_ZNK3tut11test_runner23run_all_tests_in_group_ESt23_Rb_tree_const_iteratorISt4pairIKSsPNS_10group_baseEEE
|
||||
fun:_ZNK3tut11test_runner9run_testsEv
|
||||
fun:_Z3runRKSsi
|
||||
}
|
||||
{
|
||||
<insert a suppression name here>
|
||||
Memcheck:Cond
|
||||
fun:bcmp
|
||||
fun:_ZNSt11char_traitsIcE7compareEPKcS2_j
|
||||
fun:_ZSteqIcEN9__gnu_cxx11__enable_ifIXsrSt9__is_charIT_E7__valueEbE6__typeERKSbIS3_St11char_traitsIS3_ESaIS3_EESC_
|
||||
fun:_ZN3tut11test_objectI14LinkedListTestE4testILi9EEEvv
|
||||
fun:_ZN3tut10test_groupI14LinkedListTestLi50EE13run_test_seh_EMNS_11test_objectIS1_EEFvvERNS2_11safe_holderIS4_EERSs
|
||||
fun:_ZN3tut10test_groupI14LinkedListTestLi50EE9run_test_ERKSt17_Rb_tree_iteratorISt4pairIKiMNS_11test_objectIS1_EEFvvEEERNS2_11safe_holderIS7_EE
|
||||
fun:_ZN3tut10test_groupI14LinkedListTestLi50EE8run_nextEv
|
||||
fun:_ZNK3tut11test_runner23run_all_tests_in_group_ESt23_Rb_tree_const_iteratorISt4pairIKSsPNS_10group_baseEEE
|
||||
fun:_ZNK3tut11test_runner9run_testsEv
|
||||
fun:_Z3runRKSsi
|
||||
fun:main
|
||||
}
|
||||
Reference in New Issue
Block a user