testing-debugging/slides.org
changeset 403 9858ca9e3f93
parent 401 abf092be95ef
child 487 cb3974daced5
--- a/testing-debugging/slides.org	Mon Nov 08 01:56:03 2010 +0530
+++ b/testing-debugging/slides.org	Mon Nov 08 02:02:29 2010 +0530
@@ -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
+
+
+