Added two unit tests for testing the comment module.

This commit is contained in:
Adam Waldenberg 2013-07-04 10:10:11 +02:00
parent 942836cc1c
commit 7bc297e99f
4 changed files with 209 additions and 0 deletions

20
tests/__init__.py Normal file
View file

@ -0,0 +1,20 @@
# coding: utf-8
#
# Copyright © 2013 Ejwa Software. All rights reserved.
#
# This file is part of gitinspector.
#
# gitinspector is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# gitinspector is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with gitinspector. If not, see <http://www.gnu.org/licenses/>.
# This file was intentionally left blank.

67
tests/commented_file.cpp Normal file
View file

@ -0,0 +1,67 @@
/*
* Copyright © 2013 Ejwa Software. All rights reserved.
*
* This file is part of gitinspector.
*
* gitinspector is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* gitinspector is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with gitinspector. If not, see <http://www.gnu.org/licenses/>.
*/
#include <iostream>
#include <stdio.h>
struct Dimensions {
double width;
double height;
};
/*
* A class for a rectangle
*/
class Rectangle {
private:
Dimensions dimensions;
public:
Rectangle(Dimensions dimensions);
void print();
};
Rectangle::Rectangle(Dimensions dimensions) {
this->dimensions = dimensions;
}
void Rectangle::print() {
/*
* Print some stuff (testing comments)
*/
std::cout << "\nCharacteristics of this rectangle";
std::cout << "\nWidth = " << this->dimensions.width;
std::cout << "\nHeight = " << this->dimensions.height;
std::cout << "\nArea = " << this->dimensions.width * this->dimensions.height << "\n"; // ^2
}
int main(int argc, char *argv[]) {
Dimensions dimensions;
std::cout << "Provide the dimensions of a rectangle\n";
std::cout << "Width: ";
std::cin >> dimensions.width;
std::cout << "Height: ";
std::cin >> dimensions.height;
// Create rectanlge and wait for user-input.
Rectangle rectangle(dimensions);
rectangle.print();
getchar();
return 0;
}

72
tests/commented_file.tex Normal file
View file

@ -0,0 +1,72 @@
% Copyright © 2013 Ejwa Software. All rights reserved.
%
% This file is part of gitinspector.
%
% gitinspector is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% gitinspector is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with gitinspector. If not, see <http://www.gnu.org/licenses/>.
\documentclass{article}
\usepackage{verbatim}
\begin{document}
\title{A test for gitinspector}
\author{Ejwa Software}
\maketitle
\begin{abstract}
Lorem ipsum dolor sit amet, qui morbi a nunc purus, turpis netus et,
faucibus amet porttitor commodo luctus convallis sit, non sociosqu ut felis fusce eros,
mi scelerisque vel tincidunt vivamus aliquet. Urna et commodo ut ipsum integer,
eu nostra etiam lacinia odio praesent quis, facilisi odio, donec erat nunc dictumst et.
Inceptos turpis vestibulum volutpat quis nulla elit, eros dictumst, duis rhoncus sem eget eget diam ultrices.
Pharetra sed aliquam in, ultricies suscipit bibendum vivamus, quo amet.
In nisl pellentesque mus suscipit magna, sem interdum dolores in, dolores risus at aliquet nisl,
tincidunt faucibus.
\end{abstract}
\section{Introduction}
Sit eros et arcu molestie suspendisse elit, suscipit maecenas quisque purus curabitur vitae suspendisse,
vestibulum nunc morbi viverra id aliquam dolor. Nulla leo lacus id sem, iaculis metus faucibus lorem imperdiet a duis,
ullamcorper dis condimentum diam, ullamcorper massa, vel ac venenatis nisl vitae. Sit in mauris. Lacus mollis quam,
nec in, pellentesque integer nulla sit in sit, erat dolor a lectus dui, sed purus.
Conubia ornare ridiculus interdum duis ut nisl, mauris semper rhoncus. Molestie leo diam lectus non dolor,
adipiscing ut potenti aliquam suscipit torquent, vulputate sit vel cum. Felis et wisi et cras id,
amet cum duis quis magnis urna, egestas et dui tortor, diam tellus. Elit auctor in at, urna nulla posuere,
et blandit sodales porta felis, posuere venenatis. Vel hac neque dictum rhoncus.
\begin{comment}
Pellentesque vestibulum id, tincidunt blandit. Condimentum sed egestas in sit,
a mattis in in purus erat sit. Sed turpis vestibulum aliquet, turpis ornare ultrices mi,
nisl nulla dis luctus, nec quis. Luctus turpis neque arcu ante donec dui, mauris vel duis id proin consequat,
provident duis integer feugiat blandit neque. Donec lectus sollicitudin at,
\begin{comment}
imperdiet nec elit in dolor lectus platea, ultricies pharetra vel etiam in odio, porta nascetur aenean,
imperdiet nunc libero sit. Pellentesque tincidunt molestie, neque vivamus neque nec accumsan porttitor varius,
\end{comment} % Testing nested comment behaviour
vitae lacinia et molestie integer in vitae, elementum dolor vitae tempor sit, nunc justo praesent.
Facilisis metus scelerisque sit pharetra, dictumst dui incididunt donec eu.
\end{comment}
\section{Conclusion}
Nec proin cursus consequat consequatur ridiculus mauris, ultrices erat lacus tincidunt velit,
laoreet egestas congue odio vestibulum sollicitudin. Dui luctus malesuada ac velit nec, sit ac, sed dolor vitae in.
Aliquam maecenas, amet sem vitae nulla, nisl eros eleifend, commodo facilisi amet faucibus ut.
Lorem urna est consectetuer mattis lorem, ultricies interdum quam urna et amet turpis.
Ac condimentum leo dolor pellentesque, eu velit massa dictumst cubilia praesent curabitur, est varius,
orci fringilla tortor ut non in. Aliquam sed curabitur eleifend, odio varius et eros dictum et,
%pede vestibulum ut vel. Wisi ipsum potenti dictumst in congue. Feugiat nam nunc cras amet tellus eget,
%cursus fringilla quis dui odio elit turpis, eu felis ac nec diam nibh, facilisis risus vel turpis risus.
Ornare vestibulum diam facilisis porttitor nulla. Penatibus in lacus ac tempus in iaculis,
praesent pede nunc pretium sodales, quisque felis, at vehicula sit, tempor vel lectus arcu porta integer cum.
\end{document}

50
tests/test_comment.py Normal file
View file

@ -0,0 +1,50 @@
# coding: utf-8
#
# Copyright © 2013 Ejwa Software. All rights reserved.
#
# This file is part of gitinspector.
#
# gitinspector is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# gitinspector is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with gitinspector. If not, see <http://www.gnu.org/licenses/>.
from __future__ import unicode_literals
import os
import sys
import unittest2
import gitinspector.comment
def __test_extension__(commented_file, extension):
base = os.path.dirname(os.path.realpath(__file__))
tex_file = open(base + commented_file, "r")
tex = tex_file.readlines()
tex_file.close()
is_inside_comment = False
comment_counter = 0
for i in tex:
i = i.decode("utf-8", "replace")
(_, is_inside_comment) = gitinspector.comment.handle_comment_block(is_inside_comment, extension, i)
if is_inside_comment or gitinspector.comment.is_comment(extension, i):
comment_counter += 1
return comment_counter
class TexFileTest(unittest2.TestCase):
def test(self):
comment_counter = __test_extension__("/commented_file.tex", "tex")
self.assertEqual(comment_counter, 30)
class CppFileTest(unittest2.TestCase):
def test(self):
comment_counter = __test_extension__("/commented_file.cpp", "cpp")
self.assertEqual(comment_counter, 25)