diff --git a/TestON/examples/Assert/Assert.params b/TestON/examples/Assert/Assert.params
new file mode 100644
index 0000000..00cf47b
--- /dev/null
+++ b/TestON/examples/Assert/Assert.params
@@ -0,0 +1,3 @@
+<PARAMS>
+    <testcases> 1 </testcases>
+</PARAMS>    
\ No newline at end of file
diff --git a/TestON/examples/Assert/Assert.py b/TestON/examples/Assert/Assert.py
new file mode 100644
index 0000000..bc2ce2e
--- /dev/null
+++ b/TestON/examples/Assert/Assert.py
@@ -0,0 +1,46 @@
+'''
+
+    TestON 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 2 of the License, or
+    (at your option) any later version.
+
+    TestON 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 TestON.  If not, see <http://www.gnu.org/licenses/>.		
+
+
+'''
+class Assert :
+
+    def __init__(self) :
+        self.default = ''
+
+    def CASE1(self,main) :
+
+    
+        main.case("Using assert to verify the result")
+        main.step("Using assert_equal to verify the result is equivalent or not")
+        expect = main.TRUE
+        actual = main.TRUE
+        main.log.warn(main.response_parser('<real></real><imag>2</imag><__complex__>true</__complex__>', "json"))
+        utilities.assert_equals(expect=expect,actual=actual,onpass="expect is equal to actual",onfail="expect is not equal to actual")
+    
+        main.step("Using assert_matches to verify the result matches or not")
+        expect = "Res(.*)"
+        actual = "Result"
+        utilities.assert_matches(expect=expect,actual=actual,onpass="expect is macthes to actual",onfail="expect is not matches to actual")
+    
+        main.step("Using assert_greater to verify the result greater or not")
+        expect = 10
+        actual = 5
+        utilities.assert_greater(expect=actual,actual=expect,onpass="expect is greater than the actual",onfail="expect is not greater than the actual")
+    
+        main.step("Using assert_lesser to verify the result lesser or not")
+        expect = 5
+        actual = 10
+        utilities.assert_lesser(expect=actual,actual=expect,onpass="expect is lesser than the actual",onfail="expect is not lesser than the actual")
diff --git a/TestON/examples/Assert/Assert.topo b/TestON/examples/Assert/Assert.topo
new file mode 100644
index 0000000..47438e7
--- /dev/null
+++ b/TestON/examples/Assert/Assert.topo
@@ -0,0 +1,5 @@
+<TOPOLOGY>    
+
+    <COMPONENT>
+    </COMPONENT>
+</TOPOLOGY>
\ No newline at end of file
diff --git a/TestON/examples/Assert/__init__.py b/TestON/examples/Assert/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/TestON/examples/Assert/__init__.py
diff --git a/TestON/examples/Assert/readme b/TestON/examples/Assert/readme
new file mode 100644
index 0000000..4ad1374
--- /dev/null
+++ b/TestON/examples/Assert/readme
@@ -0,0 +1,35 @@
+This example shows the usage of the assert
+assert_equal :
+-------------
+utilities.assert_equals(expect=1,actual=1,
+      onpass="Expected result equal to Actual",
+      onfail="Expected result not equal to Actual") 
+
+assert_matches:
+--------------
+expect = "Res(.*)"
+actual = "Result : Test Passed"
+utilities.assert_equals(expect=expect,actual=actual,
+          onpass="Expected result matches with Actual",
+          onfail="Expected result didn't matched with Actual")
+
+assert_greater:
+--------------
+expect = 10
+        actual = 5
+        utilities.assert_greater(expect=expect,actual=actual,
+              onpass=str(expect)+" greater than the "+str(actual),
+              onfail=str(expect)+" is not greater than "+str(actual))
+
+assert_lesser:
+-------------
+expect = 5
+        actual = 10
+        utilities.assert_lesser(expect=expect,actual=actual,
+                 onpass=str(expect)+" is lesser than the "+str(actual),
+                 onfail=str(expect)+" is not lesser than the "+str(actual))
+                 
+
+cd ~/bin/
+./launcher --example Assert 
+   will execute this example.
\ No newline at end of file
