diff options
author | Amit Sethi | 2010-11-08 02:02:29 +0530 |
---|---|---|
committer | Amit Sethi | 2010-11-08 02:02:29 +0530 |
commit | 6978f50a9d8c83d239422568efa2f60fde9db9cf (patch) | |
tree | 40a86afc05046ea3b31f976558dbbae9bf739f57 /testing-debugging | |
parent | bf83e16caf164cdbcb3ddd72f44833109b989b97 (diff) | |
download | st-scripts-6978f50a9d8c83d239422568efa2f60fde9db9cf.tar.gz st-scripts-6978f50a9d8c83d239422568efa2f60fde9db9cf.tar.bz2 st-scripts-6978f50a9d8c83d239422568efa2f60fde9db9cf.zip |
Adding testing and debugging slides
Diffstat (limited to 'testing-debugging')
-rw-r--r-- | testing-debugging/#~summary# | 8 | ||||
-rw-r--r-- | testing-debugging/slides.org | 147 | ||||
-rw-r--r-- | testing-debugging/slides.tex | 192 |
3 files changed, 158 insertions, 189 deletions
diff --git a/testing-debugging/#~summary# b/testing-debugging/#~summary# deleted file mode 100644 index a9732c9..0000000 --- a/testing-debugging/#~summary# +++ /dev/null @@ -1,8 +0,0 @@ -In this tutorial we have learned to -1.Create simple tests for a function. -2.Learn to Automate tests using many predefined test cases. -3.Good coding standards. -4.Difference between syntax error and exception. -5.Handling exception using try and except. -6.Using %debug for debugging on ipython. - diff --git a/testing-debugging/slides.org b/testing-debugging/slides.org index 5d2ce93..0e56fe3 100644 --- a/testing-debugging/slides.org +++ b/testing-debugging/slides.org @@ -15,10 +15,10 @@ #+LaTeX_HEADER: \usepackage{listings} #+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries, -#+LaTeX_HEADER: commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen}, +#+LaTeX_HEADER: commentstyle=\color{red}\itshape, stringstyle=\color{red}, #+LaTeX_HEADER: showstringspaces=false, keywordstyle=\color{blue}\bfseries} -#+TITLE: Accessing parts of arrays +#+TITLE: Testing and debugging #+AUTHOR: FOSSEE #+EMAIL: #+DATE: @@ -29,95 +29,58 @@ #+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t #+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc -* Outline - - Manipulating one and multi dimensional arrays - - Access and change individual elements - - Access and change rows and columns - - Slicing and striding on arrays to access chunks - - Read images into arrays and manipulations -* Sample Arrays - #+begin_src python - In []: A = array([12, 23, 34, 45, 56]) - - In []: C = array([[11, 12, 13, 14, 15], - [21, 22, 23, 24, 25], - [31, 32, 33, 34, 35], - [41, 42, 43, 44, 45], - [51, 52, 53, 54, 55]]) - - #+end_src -* Question 1 - Change the last column of ~C~ to zeroes. -* Solution 1 - #+begin_src python - In []: C[:, -1] = 0 - #+end_src -* Question 2 - Change ~A~ to ~[11, 12, 13, 14, 15]~. -* Solution 2 - #+begin_src python - In []: A[:] = [11, 12, 13, 14, 15] - #+end_src -* squares.png - #+begin_latex - \begin{center} - \includegraphics[scale=0.6]{squares} - \end{center} - #+end_latex -* Question 3 - - obtain ~[22, 23]~ from ~C~. - - obtain ~[11, 21, 31, 41]~ from ~C~. - - obtain ~[21, 31, 41, 0]~. -* Solution 3 - #+begin_src python - In []: C[1, 1:3] - In []: C[0:4, 0] - In []: C[1:5, 0] - #+end_src -* Question 4 - Obtain ~[[23, 24], [33, -34]]~ from ~C~ -* Solution 4 - #+begin_src python - In []: C[1:3, 2:4] - #+end_src -* Question 5 - Obtain the square in the center of the image -* Solution 5 - #+begin_src python - In []: imshow(I[75:225, 75:225]) - #+end_src -* Question 6 - Obtain the following - #+begin_src python - [[12, 0], [42, 0]] - [[12, 13, 14], [0, 0, 0]] - #+end_src - -* Solution 6 - #+begin_src python - In []: C[::3, 1::3] - In []: C[::4, 1:4] - #+end_src -* Summary - You should now be able to -- - - Manipulate 1D \& Multi dimensional arrays - - Access and change individual elements - - Access and change rows and columns - - Slice and stride on arrays - - Read images into arrays and manipulate them. -* Thank you! -#+begin_latex - \begin{block}{} - \begin{center} - This spoken tutorial has been produced by the - \textcolor{blue}{FOSSEE} team, which is funded by the - \end{center} - \begin{center} - \textcolor{blue}{National Mission on Education through \\ - Information \& Communication Technology \\ - MHRD, Govt. of India}. - \end{center} - \end{block} -#+end_latex +* Outline + - What software Testing is? + - Learn to test simple functions for their functionality. + - Learn how to automate tests. + - Need for coding style and some of the standards followed by the Python Community. + - Handling Errors and Exceptions. + + +* gcd function + - Create gcd.py file with: +#+begin_LaTeX +\begin{lstlisting}[language=python] + def gcd(a, b): + if a % b == 0: + return b + return gcd(b, a%b) +\end{lstlisting} +#+end_LaTeX + +* Test for gcd.py + - Edit gcd.py file +#+begin_LaTeX +\begin{lstlisting}[language=python] + + def gcd(a, b): + if b == 0: + return a + return gcd(b, a%b) + + if __name__=='__main__': + result = gcd(48, 64) + if result != 16: + print "Test failed" + print "Test Passed" +\end{lstlisting} +#+end_LaTeX + +* Automating tests +#+begin_LaTeX +\begin{lstlisting}[language=python] + + if __name=__='__main__': + for line in open('numbers.txt'): + numbers = line.split() + x = int(numbers[0]) + y = int(numbers[1]) + result = int(numbers[2]) + if gcd(x, y) != result: + print "Failed gcd test + for", x, y +\end{lstlisting} +#+end_LaTeX + diff --git a/testing-debugging/slides.tex b/testing-debugging/slides.tex index df1462c..e7dd7d7 100644 --- a/testing-debugging/slides.tex +++ b/testing-debugging/slides.tex @@ -1,106 +1,120 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%Tutorial slides on Python. -% -% Author: FOSSEE -% Copyright (c) 2009, FOSSEE, IIT Bombay -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\documentclass[14pt,compress]{beamer} -%\documentclass[draft]{beamer} -%\documentclass[compress,handout]{beamer} -%\usepackage{pgfpages} -%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm] - -% Modified from: generic-ornate-15min-45min.de.tex -\mode<presentation> -{ - \usetheme{Warsaw} - \useoutertheme{infolines} - \setbeamercovered{transparent} -} - -\usepackage[english]{babel} +% Created 2010-11-07 Sun 18:57 +\documentclass[presentation]{beamer} \usepackage[latin1]{inputenc} -%\usepackage{times} \usepackage[T1]{fontenc} - -\usepackage{ae,aecompl} -\usepackage{mathpazo,courier,euler} -\usepackage[scaled=.95]{helvet} - -\definecolor{darkgreen}{rgb}{0,0.5,0} - +\usepackage{fixltx2e} +\usepackage{graphicx} +\usepackage{longtable} +\usepackage{float} +\usepackage{wrapfig} +\usepackage{soul} +\usepackage{t1enc} +\usepackage{textcomp} +\usepackage{marvosym} +\usepackage{wasysym} +\usepackage{latexsym} +\usepackage{amssymb} +\usepackage{hyperref} +\tolerance=1000 +\usepackage[english]{babel} \usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet} \usepackage{listings} -\lstset{language=Python, - basicstyle=\ttfamily\bfseries, - commentstyle=\color{red}\itshape, - stringstyle=\color{darkgreen}, - showstringspaces=false, - keywordstyle=\color{blue}\bfseries} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Macros -\setbeamercolor{emphbar}{bg=blue!20, fg=black} -\newcommand{\emphbar}[1] -{\begin{beamercolorbox}[rounded=true]{emphbar} - {#1} - \end{beamercolorbox} -} -\newcounter{time} -\setcounter{time}{0} -\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}} - -\newcommand{\typ}[1]{\lstinline{#1}} - -\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}} } - -% Title page -\title{Your Title Here} - -\author[FOSSEE] {FOSSEE} - -\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay} +\lstset{language=Python, basicstyle=\ttfamily\bfseries, +commentstyle=\color{red}\itshape, stringstyle=\color{red}, +showstringspaces=false, keywordstyle=\color{blue}\bfseries} +\providecommand{\alert}[1]{\textbf{#1}} + +\title{Testing and debugging} +\author{FOSSEE} \date{} -% DOCUMENT STARTS +\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent} \begin{document} +\maketitle + + + + + + + + + \begin{frame} - \maketitle +\frametitle{Outline} +\label{sec-1} + +\begin{itemize} +\item What software Testing is? +\item Learn to test simple functions for their functionality. +\item Learn how to automate tests. +\item Need for coding style and some of the standards followed by the Python Community. +\item Handling Errors and Exceptions. +\end{itemize} \end{frame} - \begin{frame}[fragile] - \frametitle{Outline} - \begin{itemize} - \item - \end{itemize} +\frametitle{gcd function} +\label{sec-2} + +\begin{itemize} +\item Create gcd.py file with: +\end{itemize} + +\begin{lstlisting}[language=python] + def gcd(a, b): + if a % b == 0: + return b + return gcd(b, a%b) +\end{lstlisting} \end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% All other slides here. %% -%% The same slides will be used in a classroom setting. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \begin{frame}[fragile] - \frametitle{Summary} - \begin{itemize} - \item - \end{itemize} +\frametitle{Test for gcd.py} +\label{sec-3} + +\begin{itemize} +\item Edit gcd.py file +\end{itemize} + +\begin{lstlisting}[language=python] + + def gcd(a, b): + if b == 0: + return a + return gcd(b, a%b) + + if __name__=='__main__': + result = gcd(48, 64) + if result != 16: + print "Test failed" + print "Test Passed" +\end{lstlisting} \end{frame} +\begin{frame}[fragile] +\frametitle{Automating tests} +\label{sec-4} -\begin{frame} - \frametitle{Thank you!} - \begin{block}{} - \begin{center} - This spoken tutorial has been produced by the - \textcolor{blue}{FOSSEE} team, which is funded by the - \end{center} - \begin{center} - \textcolor{blue}{National Mission on Education through \\ - Information \& Communication Technology \\ - MHRD, Govt. of India}. - \end{center} - \end{block} +\begin{lstlisting}[language=python] + + if __name=__='__main__': + for line in open('numbers.txt'): + numbers = line.split() + x = int(numbers[1]) + y = int(numbers[2]) + result = int(numbers[3]) + if gcd(x, y) != result: + print "Failed gcd test + for", x, y +\end{lstlisting} + + + + +$^{1}$ FOOTNOTE DEFINITION NOT FOUND: 0 + +$^{2}$ FOOTNOTE DEFINITION NOT FOUND: 1 + +$^{3}$ FOOTNOTE DEFINITION NOT FOUND: 2 \end{frame} \end{document} |