Introduction To Unit Testing In Python & Ruby (Posted on May 25th, 2013)

One of the things I noticed that isn't really taught much is creating test suites for your programs. A lot of times you'll just have sample input and output to test your programs. This works great for one off applications but doesn't really carry over to on-going application development life cycle, especially when new developers are constantly being added to a project.

You don't need any crazy library to do testing. In fact Python and Ruby come with their own testing libraries. I find it's always nice to use built-in library functions to achieve certain tasks. If you follow my blog you may have read my Introduction to Graph Theory article which has Python and Ruby code for Dijkstra's algorithm. If you're interested in other languages you can checkout the git repo. For the purposes of this article we'll be using the Python and Ruby implementations mentioned in the article. You can find somewhat updated versions in the git repos. The Python version has been updated to 3.x and both versions now won't print out shortest path solutions when tests are run.

What We're Testing

Outside of our initialize and to string methods we have two other methods that help us find the shortest path in a graph, add_vertex and shortest_path. These are the two functions we're going to write unit tests for. In case you're unfamiliar with the terminology, unit testing is a type of testing used for testing individual blocks of code such as a single function or procedure. There's no need to over think it. We're simply sending test values to a function to make sure we get back the result we expect.

Our goals will be to make sure that when we add a vertex to the graph that all the edges are added properly, and that when we test for the shortest path we find it if it exists or not.

Initializing Our Test Suite

Before we begin I just wanted to point you to the documentation for Python unit testing and Ruby unit testing. You shouldn't need them to get through this article but they do provide a lot of information about testing.

Our first step is importing our testing library along with the Dijkstra's sample code. A common feature among unit testing libraries is to have a setup which runs before each test. This can be useful if you have a set of code that is used by many tests. For this set of tests we'll need our graph class for each test. So we'll create a graph object that will be created for each test.

Python

import unittest
from dijkstras import Graph

class Graph_Test(unittest.TestCase):
    
    #Runs before each test
    def setUp(self):
        self.graph = Graph()

unittest.main()

Ruby

If you're here for Ruby you'll notice that the linked docs are for 1.8.7. This is because most of the example code has disappeared for future versions but the library pretty much works the same. Due to the sparse documentation of this library a lot of other third-party libraries have become popular such as RSpec. The Ruby examples I show will use the built-in library, but as a challenge feel free to install the RSpec gem and implement the tests for this code or from some of your other code.

require 'test/unit'
require_relative 'dijkstras'

class Graph_Test < Test::Unit::TestCase
    
    #Runs before each test
    def setup
        @graph = Graph.new
    end
end

Testing add_vertex

add_vertex is an interesting function because it has no return value. So we have a few options as to the approach we can take for this test. One option is to add a return value. However, it's not really clear what would be best to return. Perhaps the vertex, maybe all vertices, or just a true/false value. Another option would be to add a getter function to try and get the edges of a vertex that we pass to the function. This adds another point of failure into our program but is still a viable option depending on your programming style. My idea is to just access the vertices instance variable. This will allow us to see if our newly added vertex is in the graph. This is kind of like the getter method but without having to add a new function.

The way unit testing works is you make a function call and check the value it returns against what you expect it to return. Usually you'll want to check if the returned value equals the value you expect. Most testing suites will provide a way to assert if something is equal or not. This is how we'll be testing if our vertices variable is equal to the value we expect it to be.

Python

import unittest
from dijkstras import Graph

class Graph_Test(unittest.TestCase):
    
    #Runs before each test
    def setUp(self):
        self.graph = Graph()
    
    def test_add_vertex(self):
        self.graph.add_vertex('A', {'B': 7, 'C': 8})
        self.assertEqual(self.graph.vertices, {'A': {'C': 8, 'B': 7}})
    
unittest.main()

Ruby

require 'test/unit'
require_relative 'dijkstras'

class Graph_Test < Test::Unit::TestCase
    
    #Runs before each test
    def setup
        @graph = Graph.new
    end
    
    def test_add_vertex
        @graph.add_vertex('A', {'B' => 7, 'C' => 8})
        assert_equal({"A"=>{"B"=>7, "C"=>8}}, @graph.instance_variable_get(:@vertices), "Failed to add vertex")
    end
end

You can see what a failed test looks like by changing one of the values in the expected clause. So if you change the value of C to 3 you should see an error message that tells you which test failed. It will also show you the returned value versus what was expected. This can be super helpful in debugging errors.

Testing shortest_path

Testing our shortest path algorithm is a little more straight forward since we have a return value. However, one thing we have to take in to consideration is the fact that we have two different return statements, one for when a path is found and one for when no path is found. This means we need to create two tests. Once again we have a couple of options as to how we can achieve this. One option is to create two test functions to test both return paths. Another option is to create one test but use two assert statements. Neither is really more correct than the other so I've chosen to use two assert statements inside of one test function.

Since we are creating a new function our setup function is going to run again. This means we'll be starting with a fresh new graph object. So our first step will be to insert some nodes into the graph so that we can try and find a path. Once we do that we simply call our shortest_path function as we normally would and tell our assert function what to expect in return. Here's a picture of the graph for reference:

Visual representation of the computer science graph that's being implemented

Python

import unittest
from dijkstras import Graph

class Graph_Test(unittest.TestCase):
    
    #Runs before each test
    def setUp(self):
        self.graph = Graph()
    
    def test_add_vertex(self):
        self.graph.add_vertex('A', {'B': 7, 'C': 8})
        self.assertEqual(self.graph.vertices, {'A': {'C': 8, 'B': 7}})
        
    def test_shortest_path(self):
        self.graph.add_vertex('A', {'B': 7, 'C': 8})
        self.graph.add_vertex('B', {'A': 7, 'F': 2})
        self.graph.add_vertex('C', {'A': 8, 'F': 6, 'G': 4})
        self.graph.add_vertex('D', {'F': 8})
        self.graph.add_vertex('E', {'H': 1})
        self.graph.add_vertex('F', {'B': 2, 'C': 6, 'D': 8, 'G': 9, 'H': 3})
        self.graph.add_vertex('G', {'C': 4, 'F': 9})
        self.graph.add_vertex('H', {'E': 1, 'F': 3})
        
        self.assertEqual(self.graph.shortest_path('A', 'H'), ['H', 'F', 'B'])
        self.assertEqual(self.graph.shortest_path('H', 'I'), {'A': 12, 'B': 5, 'C': 9, 'D': 11, 'E': 1, 'F': 3, 'G': 12, 'H': 0})
    
    
unittest.main()

Ruby

require 'test/unit'
require_relative 'dijkstras'

class Graph_Test < Test::Unit::TestCase
    
    #Runs before each test
    def setup
        @graph = Graph.new
    end
    
    def test_add_vertex
        @graph.add_vertex('A', {'B' => 7, 'C' => 8})
        assert_equal({"A"=>{"B"=>7, "C"=>8}}, @graph.instance_variable_get(:@vertices), "Failed to add vertex")
    end
    
    def test_shortest_path
        @graph.add_vertex('A', {'B' => 7, 'C' => 8})
        @graph.add_vertex('B', {'A' => 7, 'F' => 2})
        @graph.add_vertex('C', {'A' => 8, 'F' => 6, 'G' => 4})
        @graph.add_vertex('D', {'F' => 8})
        @graph.add_vertex('E', {'H' => 1})
        @graph.add_vertex('F', {'B' => 2, 'C' => 6, 'D' => 8, 'G' => 9, 'H' => 3})
        @graph.add_vertex('G', {'C' => 4, 'F' => 9})
        @graph.add_vertex('H', {'E' => 1, 'F' => 3})
        
        assert_equal(['H', 'F', 'B'], @graph.shortest_path('A', 'H'), 'Failed to find shortest path')
        assert_equal({'A' => 12, 'B' => 5, 'C' => 9, 'D' => 11, 'E' => 1, 'F' => 3, 'G' => 12, 'H' => 0}, @graph.shortest_path('H', 'I'), 'Failed to find shortest paths from root node')
    end
end

That's really all there is to unit testing. If you're doing web development definitely check with the framework you're using to see if they have a recommended testing suite. If you're rolling your own framework there are many testing frameworks that can help you out. Most of them will work the same from language to language.

The Github repo for Dijkstra's algorithm has been updated with the newest testing code. Definitely feel free to check it out and make pull requests if you haven't already.

As always if you have any feedback or questions feel free to drop them in the comments below or contact me privately on my contact page. Thanks for reading!

Tags: Python, Ruby

Comments:

  • Jeni - 10 months, 1 week ago

    Good Collection introduction to unit testing in python and ruby More Details......

    reply

  • Life Insurance Calgary - 4 months, 3 weeks ago

    Right away I am going to do my breakfast, once having my breakfast coming again to read more news.

    reply

  • sports news - 10 months ago

    Thank you so much for sharing this great blog.Very inspiring and helpful too.Hope you continue to share more of your ideas.I will definitely love to read.

    reply

  • Testing Training in Chennai - 9 months, 3 weeks ago

    Very useful information to learn more about software testing and i am interested to learn more. kindly suggest any good Software Testing Training institute in Chennai

    reply

  • hungry shark evolution - 9 months, 3 weeks ago

    I think that thanks for the valuabe information and insights you have so provided here.

    reply

  • real racing 3 - 9 months, 3 weeks ago

    Great post, and great website. Thanks for the information!

    reply

  • girlsdoporn - 7 months, 2 weeks ago

    Great post full of useful tips! My site is fairly new and I am also having a hard time getting my readers to leave comments. Analytics shows they are coming to the site but I have a feeling “nobody wants to be first”

    reply

  • Software Testing Training in Chennai - 7 months, 2 weeks ago

    Very informative article. Thanks.

    reply

  • active instagram followers - 7 months, 1 week ago

    Very useful post. This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. Really its great article. Keep it up.

    reply

  • buy instagram comments - 7 months, 1 week ago

    You know your projects stand out of the herd. There is something special about them. It seems to me all of them are really brilliant!

    reply

  • android facetime - 7 months ago

    It is a great website.. The Design looks very good.. Keep working like that!.

    reply

  • instagram follower - 7 months ago

    I have read your article, it is very informative and helpful for me.I admire the valuable information you offer in your articles. Thanks for posting it..

    reply

  • get free instagram likes - 7 months ago

    i read a lot of stuff and i found that the way of writing to clearifing that exactly want to say was very good so i am impressed and ilike to come again in future..

    reply

  • how to get 1000 likes on facebook - 6 months, 3 weeks ago

    Need to think, Most people imagined that it was a large appealing analysis on the subject of that matter. Treasured this elements...

    reply

  • get followers twitter - 6 months, 3 weeks ago

    I want to talk about, When i deemed this is the rather challenging take a look at regarding these kinds of subject. Liked the actual chemical...

    reply

  • google plus - 6 months, 3 weeks ago

    Thanks with regard to publishing this type of excellent post! I discovered your site ideal for my personal requirements. It has fantastic as well as useful articles. Continue the great function!

    reply

  • green smart living - 6 months, 3 weeks ago

    Such intelligent work on the subject and ideal way of writing here. I am really impressed! This post is a helpful overview of the particular topic and very actionable. Interesting approach!

    reply

  • Miami Criminal Lawyer - 6 months, 3 weeks ago

    Remarkable content, decided in front of you and additionally book marked your blog post. Document can’t simply wait to read a great deal more right from you will.

    reply

  • youtube subscribers - 6 months, 2 weeks ago

    Love what you're doing here guys, keep it up!..

    reply

  • views - 6 months, 2 weeks ago

    This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information...

    reply

  • click here - 6 months, 2 weeks ago

    Thanks a lot for the purpose of rendering up to date update versions about the challenge, I just await read through further.

    reply

  • Pykazamberi28 - 6 months, 2 weeks ago

    I'm curious to find out what blog system you are using? I'm experiencing some small security issues with my latest blog and I would like to find something more risk-free. Do you have any recommendations? A person necessarily lend a hand to make seriously posts I'd state. That is the very first time I frequented your website page and thus far? I amazed with the analysis you made to create this particular put up incredible. Excellent task!

    reply

  • Kesehatannya - 6 months, 2 weeks ago

    I don't know whether it's just me or if perhaps everyone else encountering problems with your website. It appears like some of the text in your content are running off the screen. Can someone else please comment and let me know if this is happening to them too? This could be a problem with my web browser because I've had this happen previously. Appreciate it Your means of telling everything in this article is genuinely fastidious, all be capable of easily know it, Thanks a lot.

    reply

  • Sehat Sehat Hidupku - 6 months, 2 weeks ago

    WOW just what I was searching for. Came here by searching for <Meta keyword of Target site we don't know yet> Thank you for sharing your info. I really appreciate your efforts and I am waiting for your further write ups thanks once again. Howdy! Do you know if they make any plugins to safeguard against hackers? I'm kinda paranoid about losing everything I've worked hard on. Any tips?

    reply

  • packers and movers mangalore - 6 months, 1 week ago

    http://www.youdial.in/packers-and-movers-mangalore

    reply

  • packers and movers meerut - 6 months, 1 week ago

    http://www.youdial.in/packers-and-movers-meerut

    reply

  • packers and movers mohali - 6 months, 1 week ago

    http://www.youdial.in/packers-and-movers-mohali

    reply

  • packers and movers marathahalli - 6 months, 1 week ago

    http://www.youdial.in/packers-and-movers-marathahalli

    reply

  • dragon city hack online - 6 months ago

    Nice post keep it up!

    reply

  • Remedy blog - 6 months ago

    These things are very important, good think so - I think so too...

    reply

  • visit this guide - 6 months ago

    Thanks for this really amazing tutorial which I have presented on SHAREit for PC

    reply

  • Doctor who jackets - 6 months ago

    I have a high regard for your idea about the title so everybody wonders what the perspective is about. The apprehension was excellent but the article was not up to the score. Show your fan craze for the Doctor who jackets by ordering one today.

    reply

  • visit website here - 6 months ago

    I really impressed after read this because of some quality work and informative thoughts . I just wanna say thanks for the writer and wish you all the best for coming!.

    reply

  • Packers and Movers - 5 months, 3 weeks ago

    Safe and Sound Household Noida Relocation Service information Visit site:- Packers and movers in bangalore@ http://professionalmovers.in Packers and Movers Bangalore@ http://professionalmovers.in/packers-and-movers-in-bangalore/ Packers and Movers in delhi@ http://professionalmovers.in/packers-and-movers-in-delhi/ Packers and Movers in Noida@ http://professionalmovers.in/packers-and-movers-in-nodia/ Packers and Movers in Gurgaon@ http://professionalmovers.in/packers-and-movers-in-gurgaon/

    reply

  • Puja Kumari - 5 months, 3 weeks ago

    Thanks for Nice and Informative Post. This article is really contains lot more information about This Topic http://www.top9th.in/packers-and-movers-bangalore/ http://www.top9th.in/packers-and-movers-hyderabad/ http://www.top9th.in/packers-and-movers-mumbai/ http://www.top9th.in/packers-and-movers-delhi/ http://www.top9th.in/packers-and-movers-gurgaon/ http://www.top9th.in/

    reply

  • Puja Kumari - 5 months, 3 weeks ago

    Thanks for post this helpful post - Please visit for More information about: http://www.top9th.in/packers-and-movers-pune/ http://www.top9th.in/packers-and-movers-noida/ http://www.top9th.in/packers-and-movers-chennai/ http://www.top9th.in/packers-and-movers-kolkata/ http://www.top9th.in/packers-and-movers-ahmedabad/ http://www.top9th.in/packers-and-movers-surat/

    reply

  • ssasa - 5 months, 3 weeks ago

    <a href="http://sandhaan.co.in/happy-rakhi-raksha-bandhan-2015-sms-images-quotes-wallpapers-photos-ecards-for-siter/">rakhi images</a> <a href="http://sandhaan.co.in/happy-rakhi-raksha-bandhan-2015-sms-images-quotes-wallpapers-photos-ecards-for-siter/">rakhi Quotes</a> <a href="http://sandhaan.co.in/happy-rakhi-raksha-bandhan-2015-sms-images-quotes-wallpapers-photos-ecards-for-siter/">Happy Rakhi 2015</a>

    reply

  • Ajay Jain - 5 months, 3 weeks ago

    great thanks

    reply

  • energiemonitoring - 5 months, 3 weeks ago

    Nice post!! Thanks a lot for the kind of perfect topic I have not a lot of information about it but I have got an extra unique info in your unique post.

    reply

  • Xender Download - 5 months, 3 weeks ago

    As always if you have any feedback or questions feel free to drop them in the comments below or contact me privately on my contact page. Thanks for reading!

    reply

  • Auckland Tides 2015 - 4 months, 4 weeks ago

    Fine your are right

    reply

  • Love-marriage-problem-solution - 4 months, 4 weeks ago

    Nice post it is.

    reply

  • Mascarillas Para La Cara - 4 months, 3 weeks ago

    Fine Thanks for this

    reply

  • wrute my essay cheap - 4 months, 3 weeks ago

    Essay writing work is one of the most important works assigned in the academics. It is also not so easy work to be done. The cheap and best essay writing services available online are very helpful in getting the difficult essays within the time limit provided. The best and genuine companies with cheap essay writing service offers helps you to get the best written work and to reach your need of write my essay cheap.

    reply

  • visit this blog - 4 months, 2 weeks ago

    This is the best guide which I have ever seen here

    reply

  • shareit apk download - 4 months, 2 weeks ago

    SHAREIt for Download is very nice thing which is here.

    reply

  • Packers Movers - 4 months, 1 week ago

    Thanks for post this helpful post - Please visit for More information about:

    http://www.expert9th.in/packers-and-movers-delhi/ http://www.expert9th.in/packers-and-movers-noida/ http://www.expert9th.in/packers-and-movers-gurgaon/ http://www.expert9th.in/packers-and-movers-kolkata/ http://www.expert9th.in/packers-and-movers-ghaziabad/ http://www.expert9th.in/packers-and-movers-amritsar/


    Thanks for post this helpful post - Please visit for More information about:

    http://www.expert9th.in/packers-and-movers-bangalore/ http://www.expert9th.in/packers-and-movers-hyderabad/ http://www.expert9th.in/packers-and-movers-chennai/ http://www.expert9th.in/packers-and-movers-pune/ http://www.expert9th.in/packers-and-movers-faridabad/ http://www.expert9th.in/packers-and-movers-kochi/


    Thanks for post this helpful post - Please visit for More information about:

    http://www.expert9th.in/packers-and-movers-mumbai/ http://www.expert9th.in/packers-and-movers-surat/ http://www.expert9th.in/packers-and-movers-navimumbai/ http://www.expert9th.in/packers-and-movers-ahmedabad/ http://www.expert9th.in/packers-and-movers-chandigarh/ http://www.expert9th.in/packers-and-movers-jamshedpur/

    reply

  • Packers Movers - 4 months, 1 week ago

    Thanks for Nice and Informative Post. This article is really contains lot more information about This Topic http://www.top9th.in/packers-and-movers-bangalore/ http://www.top9th.in/packers-and-movers-hyderabad/ http://www.top9th.in/packers-and-movers-mumbai/ http://www.top9th.in/packers-and-movers-delhi/ http://www.top9th.in/packers-and-movers-gurgaon/ http://www.top9th.in/


    Thanks for post this helpful post - Please visit for More information about: http://www.top9th.in/packers-and-movers-pune/ http://www.top9th.in/packers-and-movers-noida/ http://www.top9th.in/packers-and-movers-chennai/ http://www.top9th.in/packers-and-movers-kolkata/ http://www.top9th.in/packers-and-movers-ahmedabad/ http://www.top9th.in/packers-and-movers-surat/

    reply

  • imo for pc - 4 months, 1 week ago

    You may know IMO messenger app merges various IM services. The app as well allows you make and receive free calls to users in your IMO contacts.

    reply

  •  likesplanet php script - 4 months ago

    I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

    reply

  • John - 4 months ago

    Thank for introducing this topic to us and providing details on the python and ruby. It will help us in study

    reply

  • Australian Open live streaming - 1 month, 3 weeks ago

    Thank for introducing this topic to us and providing details on the python and ruby. It will help us in study trf.

    reply

  • Bar Brothers System Review - 4 months ago

    This program will train you on how to perform a set of scientifically designed exercises that focus mainly on fixing your fat burning hormones.

    reply

  • Australian Open 2016 - 1 month, 3 weeks ago

    Thank for introducing this topic to us and providing details on the python and ruby. It will help us in study

    reply

  • cat results 2015 - 1 month, 3 weeks ago

    All the graduate student who want take admission for MBA are eagerly waiting for the CAT Admission Form, CAT Exam Date 2015 to appear for the exam. So here we are providing the all the detail information of CAT in our implied header.

    reply

  • Wrestlemania 32 Live Stream - 1 month, 3 weeks ago

    WrestleMania 32 is most popular WWE Wrestling Pay-Per-View Event and this year WrestleMania 32 is scheduled on 3rd April 2016. It is scheduled to take place on April 3, 2016, at AT&T Stadium in Arlington, Texas. If you are a big fan and want to watch it online then wait for out article on WrestleMania 32 live streaming channels.

    reply

  • visit this site - 3 months, 4 weeks ago

    SHAREit for PC or COmputer downloading tutorial is much easy and useful.

    reply

  • valentines day quotes - 1 month, 3 weeks ago

    I have bookmarked your website because this site contains valuable information in it. I am really happy with articles quality and presentation. Thanks a lot for keeping great stuff.

    reply

  • best adjustable beds - 1 month, 3 weeks ago

    I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.

    reply

  • XMAS 2015 MESSAGES - 1 month, 3 weeks ago

    Xmas Messages

    reply

  • Yutopia - 1 month, 3 weeks ago

    Very useful information to learn more about software testing and i am interested to learn more. kindly suggest any good Software Testing Training institute in Chennai

    reply

  • Anonymous - 1 month, 1 week ago

    <a href="http://www.apssc10results2016.in/">ap ssc results 2016</a>

    reply

  • ap ssc results 2016 - 1 month, 1 week ago

    nice one

    reply

  • Happy Republic Day SMS 2016 - 1 month, 1 week ago

    The Republic Day is celebrated on 26th January<a href="http://www.happyrepublicday2016.co.in/">Happy Republic Day SMS 2016</a>On this day people greet each other by saying Happy Republic Day

    reply

  • Mobil Sewa Surabaya - 1 month, 1 week ago

    I'm really enjoying "Introduction To Unit Testing In Python & Ruby". It's a very easy on the eyes which makes it much more pleasant for me

    reply

  • SHAREit for PC Download - 1 month, 1 week ago

    I don't know about this kind of thinks and thanks for shared or I really enjoyed to reading this post.

    reply

  • YU - 1 month, 1 week ago

    Check how to <a href="http://www.yuyutopia.in/2015/12/buy-yu-yutopia-yu5050-from-amazon-1000-off.html">buy Yutopia at discount</a>.

    reply

  • Buy Yutopia - 1 month, 1 week ago

    Nice

    reply

  • oscar 2016 live stream - 1 month ago

    Oscar 2016 is coming and this year this award is scheduled in February 2016. The 88th Academy Awards ceremony will honor the best films of 2015 and will take place on February 28, 2016, at the Dolby Theatre in Hollywood, California.

    reply

  • xbox error codes - 1 month ago

    Check all the error codes of xbo games and solve it possible way. You can also check all the solutions for error codes here.

    reply

  • bmw wheels for sale - 1 month ago

    Hey – great blog, just looking around some blogs, seems a really nice platform you are using. I’m currently using WordPress for a few of my blogs but looking to change one of them over to a platform similar to yours as a trial run. Anything in particular you would recommend about it?

    reply

  • gate result civil - 1 month ago

    nice one<a href="http://gateresult.co.in/"> gate result civil, </a>check it

    reply

  • Download Clean Master for PChttp://cleanmasterforp - 1 month ago

    In this kind of code is seriously used and developer its may help a lot, thanks for shared and I appreciated of this work. Thumb's up.. :)

    reply

  • probiotic america reviews - 4 weeks, 1 day ago

    “It’s a supplement deals with gastro issues like indigestion, bloating, chronic diarrhea, chronic bad breath, constipation, excess intestinal gas and too little or no intestinal gas, unusual abdominal pain due to overeating or any other digestive discomforts.

    reply

  • Shareit for pc - 4 weeks ago

    very nice collection <a href=http://www.shareitforpcfreedownload.com/> shareit for pc</a> <a href=http://www.shareitforpcfreedownload.com/>shareit-for-pc-free-download-for-windows-7-8-8-1-10 </a>

    reply

  • xender for pc - 4 weeks ago

    <a href=http://www.xenderforpcc.com/>xender for pc</a>

    reply

  • love quotes - 4 weeks ago

    <a href=http://www.lovequotesforalll.com/>lovequotesforall</a>

    reply

  • Kung fu panda 3 stream - 3 weeks, 4 days ago

    I think we ought to let more individuals to give careful consideration to your web journal.

    reply

  • Placements Now - 3 weeks, 1 day ago

    Join Us and Get Your Dream Job NOW.

    reply

  • Black magic specialist in Mumbai - 3 weeks, 4 days ago

    Wonderful work it is thanks for share it.

    reply

  • Game Of War For PC - 3 weeks, 1 day ago

    To Know the Amazing Secrets Of Game of War.Check Below

    reply

  • Placements Now - 3 weeks, 1 day ago

    Join Us and Get Your Dream Job NOW. This is an educational platform helping millions of people around the world. Let your Dream grow its wings.

    reply

  • GameOfWarforPC - 3 weeks ago

    Thanks For this wonderful article. It is really helpful. To Know the Weird Amazing Secrets Of Game of War.Check Below http://www.gameofwarforpc.com/game-war-pc-game-war-fire-age-pc/

    reply

  • Super Bowl 2016 Live Stream - 3 weeks ago

    Thanks For this wonderful article. It is really helpful. T

    reply

  • Love problem solution astrologer - 2 weeks, 6 days ago

    Great work you share.

    reply

  • Srinivasan - 2 weeks, 5 days ago

    Very interesting blog. Alot of blogs I see these days don't really provide anything that I'm interested in, but I'm most definately interested in this one.

    reply

  • Vashikaran Specialist - 2 weeks, 4 days ago

    Nice Blog share. I like your all post.

    reply

  • Love marriage Specialist - 2 weeks, 4 days ago

    Nice Blog share. I like your post...

    reply

  • Love marriage problem solution - 2 weeks, 4 days ago

    lovely post share. I like your all post. thanks for share that post.

    reply

  • download shareit - 2 weeks, 4 days ago

    VERY INFORMATION ARTICLE. THANKS

    reply

  • mp 12th results 2016 - 2 weeks ago

    Check madhya pradesh intermediate results 2016

    reply

  • how to get instagram followers fast ! instagram li - 1 week, 6 days ago

    Good Collection introduction to unit testing in python and ruby More Details......

    reply

  • imo for pc - 1 week, 5 days ago

    THANKS

    reply

  • chriss77 - 1 week, 5 days ago

    thanks for sharing

    reply

  • Zedge for PC - 1 week, 2 days ago

    Python is the most recent days popular language where it's very easy to use and different kind technology to compare of it, it's quite good.

    reply

  • hipstore for ios 9, 9.1 devicess - 1 week, 1 day ago

    very informative thanks

    reply

  • Packers and Movers Pune - 1 week ago

    Get a free quote instantly by best Packers and Movers in Pune Visit:- http://www.expert5th.in/packers-and-movers-pune/ Get a free quote instantly by best Packers and Movers in Bangalore Visit:- http://www.expert5th.in/packers-and-movers-bangalore/ Get a free quote instantly by best Packers and Movers in Hyderabad Visit:- http://www.expert5th.in/packers-and-movers-hyderabad/

    reply

  • Packers and Movers Delhi - 1 week ago

    Get a free quote instantly by best Packers and Movers in Delhi Visit:- http://www.expert5th.in/packers-and-movers-delhi/ Get a free quote instantly by best Packers and Movers in Gurgaon Visit:- http://www.expert5th.in/packers-and-movers-gurgaon/ Get a free quote instantly by best Packers and Movers in Mumbai Visit:- http://www.expert5th.in/packers-and-movers-mumbai/

    reply

  • Packers and Movers Chennai - 1 week ago

    Get a free quote instantly by best Packers and Movers in Chennai Visit:- http://www.expert5th.in/packers-and-movers-chennai/ Get a free quote instantly by best Packers and Movers in Faridabad Visit:- http://www.expert5th.in/packers-and-movers-faridabad/ Get a free quote instantly by best Packers and Movers in Noida Visit:- http://www.expert5th.in/packers-and-movers-noida/ Get a free quote instantly by best Packers and Movers in Ghaziabad Visit:- http://www.expert5th.in/packers-and-movers-ghaziabad/ Get a free quote instantly by best Packers and Movers in Thane Visit:- http://www.expert5th.in/packers-and-movers-thane/ Get a free quote instantly by best Packers and Movers in Navi Mumbai Visit:- http://www.expert5th.in/packers-and-movers-navimumbai/

    reply

  • Packers and Movers Ahmedabad - 1 week ago

    Get a free quote instantly by best Packers and Movers in India Visit:- http://www.expert5th.in/packers-and-movers-ahmedabad/ http://www.expert5th.in/packers-and-movers-surat/ http://www.expert5th.in/packers-and-movers-vadodara/ http://www.expert5th.in/packers-and-movers-rajkot/

    reply

  • gmail for iphone - 6 days, 7 hours ago

    On the iPhone many, if not most, users run Gmail through the default Mail app. The interface is .... If you don't have it, it's worth a download from the App Store

    <a href="http://anymaillogin.com/">gmail app for iphone</a>

    reply

  • ishqkarangsafedtv.com - 5 days, 8 hours ago

    Kanak looks at them and is irked. Dhaani asks Viplav to look there.

    reply

  • Obat Bekas cacar Air Di Wajah - 3 days, 4 hours ago

    artikel na beuhh manfaat pisan kanggo sim abdi

    reply

  • tubemate video downloader - 3 days, 3 hours ago

    good

    reply

  • 192.168.1.1 - 1 day, 23 hours ago

    This is a very good post which I really enjoy reading. It is not every day that I have the possibility to see something like this.

    reply

  • PELANGSING BIOLO - 14 hours ago

    SALAM SEMANAT

    reply

  • PELANGSING badan cepat - 12 hours ago

    BETUL GAN nice info

    reply

  • pelangsing BIOLO SLIMMING - 12 hours ago

    MAKASIH YA ATAS BERITANYA

    reply

  • oBAT pelangsing ampuh - 11 hours ago

    makasih informasinya

    reply

  • OBAT PELANGSING AMAN - 10 hours ago

    SALAM SEMANGAT

    reply

  • Obat pelangsing badan cepat dan ampuh wsc biolo - 10 hours ago

    Obat pelangsing badan cepat dan ampuh wsc biolo

    reply

  • InstaSize App - 6 hours ago

    Giving bunches of information of python and ruby that how to used programming language, thanks for shared.

    reply