[tracker/rss-enclosures] Performance test... not sure what it does
- From: Roberto Guido <rguido src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/rss-enclosures] Performance test... not sure what it does
- Date: Wed, 24 Nov 2010 01:23:58 +0000 (UTC)
commit 6a99cef5aafaf9546abe25876ba6288888e91272
Author: Ivan Frade <ivan frade nokia com>
Date: Wed Aug 18 18:42:03 2010 +0300
Performance test... not sure what it does
tests/functional-tests/performance-tc-modified.py | 3506 +++++++++++++++++++++
1 files changed, 3506 insertions(+), 0 deletions(-)
---
diff --git a/tests/functional-tests/performance-tc-modified.py b/tests/functional-tests/performance-tc-modified.py
new file mode 100644
index 0000000..94934eb
--- /dev/null
+++ b/tests/functional-tests/performance-tc-modified.py
@@ -0,0 +1,3506 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2010, Nokia <ivan frade nokia com>
+#
+# This program 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.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+
+import sys,os
+import dbus
+import commands, signal
+import unittest
+import time
+import random
+import datetime
+import htmldoc as hd
+
+TRACKER = 'org.freedesktop.Tracker1'
+TRACKER_OBJ = '/org/freedesktop/Tracker1/Resources'
+RESOURCES_IFACE = "org.freedesktop.Tracker1.Resources"
+
+
+
+"""import .ttl files """
+"""
+def stats() :
+ a1=commands.getoutput("tracker-stats |grep %s " %(stats[i]))
+ b1=a1.split()
+ after=b1[2]
+ return after
+
+def import_ttl (music_ttl):
+ 1. Checking the tracker stats before importing the ttl file .
+ 2. Importing the ttl file .
+ 3. Check the tracker-stats after importing the ttl file.
+ 4. Check if the stats got changed.
+ bus= dbus.SessionBus()
+ imp_obj = bus.get_object('org.freedesktop.Tracker1','/org/freedesktop/Tracker1/Resources')
+ imp_iface = dbus.Interface(imp_obj, 'org.freedesktop.Tracker1.Resources')
+ #stats_obj = bus.get_object('org.freedesktop.Tracker1','/org/freedesktop/Tracker1/Statistics')
+ #stats_iface = dbus.Interface(stats_obj, 'org.freedesktop.Tracker1.Statistics')
+
+ ttl=['040-nmm_Artist.ttl']
+ stats=['nmm:Artist','nmm:MusicAlbum']
+ for i in range(len(ttl)) :
+ file_ttl='file://' +music_ttl+'/'+ttl[i]
+ a=commands.getoutput("tracker-stats | grep %s " %(stats[i]) )
+ b=a.split()
+ imp_iface.Load(file_ttl)
+ a1=commands.getoutput("tracker-stats |grep %s " %(stats[i]))
+ b1=a1.split()
+ after=b1[2]
+ while (t < 2):
+ t=stats()
+ time.sleep(2)
+
+"""
+
+
+
+
+
+
+class TestUpdate (unittest.TestCase):
+
+ def setUp(self):
+ bus = dbus.SessionBus()
+ tracker = bus.get_object(TRACKER, TRACKER_OBJ)
+ self.resources = dbus.Interface (tracker,
+ dbus_interface=RESOURCES_IFACE)
+
+ def parsing(self, method, query):
+ f=open("./report/"+method.__name__+"_query.html", "w")
+ f.write(query)
+ f.close()
+ value=hd.parseDoc(method)
+ l=hd.Link(method.__name__+"_query", "report/"+method.__name__+"_query.html")
+ return value, l
+
+
+""" email performance test cases """
+class email(TestUpdate):
+
+
+ def test_email_01(self):
+
+ """
+ Time taken for querying the emails.
+ @param description: Time taken for querying the emails
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = "SELECT ?m ?From ?date ?email1 WHERE { \
+ ?m a nmo:Email ; \
+ nmo:receivedDate ?date ;\
+ nmo:from ?From . ?from nco:hasEmailAddress ?email1 } LIMIT 10000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ """Query for emails """
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+
+ print "Time taken for querying emails = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(email.test_email_01, query)
+ t.rows.append(hd.TableRow([email.test_email_01.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+""" calls performance test cases """
+class calls(TestUpdate):
+
+
+ def test_calls_01(self):
+
+ """
+ Time taken for querying duration of calls from phonenumbers.
+ @param description: Time taken for querying duration of calls from phonenumbers
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = "SELECT ?duration ?phonenumber WHERE {\
+ ?call a nmo:Call ;\
+ nmo:duration ?duration ;\
+ nmo:from [a nco:Contact ; nco:hasPhoneNumber ?phonenumber] }LIMIT 10000"
+ list=[]
+ for i in range ( 0, iterations ):
+
+ """Querying the duration of calls of contacts """
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying duration of calls from phonenumbers = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(calls.test_calls_01, query)
+ t.rows.append(hd.TableRow([calls.test_calls_01.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_calls_02(self):
+
+ """
+ Time taken for querying dialed calls.
+ @param description: Time taken for querying dialed calls
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = "SELECT ?name ?date ?number ?duration \
+ WHERE {?m a nmo:Call; \
+ nmo:sentDate ?date ; \
+ nmo:duration ?duration; \
+ nmo:to ?contact . \
+ ?contact a nco:PersonContact; \
+ nco:hasPhoneNumber ?number . \
+ OPTIONAL { \
+ ?contact a nco:PersonContact ; \
+ nco:nameFamily ?name} \
+ FILTER (?duration > 0) .} \
+ ORDER BY desc(?date) LIMIT 1000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ """Querying the dialed calls"""
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying dialed calls = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(calls.test_calls_02, query)
+ t.rows.append(hd.TableRow([calls.test_calls_02.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_calls_03(self):
+
+ """
+ Time taken for querying received calls
+ @param description: Time taken for querying received calls
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = "SELECT ?name ?date ?number ?duration \
+ WHERE {?m a nmo:Call; \
+ nmo:receivedDate ?date ; \
+ nmo:duration ?duration; \
+ nmo:from ?contact . \
+ ?contact a nco:PersonContact; \
+ nco:hasPhoneNumber ?number . \
+ OPTIONAL { ?contact a nco:PersonContact ; nco:nameFamily ?name} \
+ FILTER (?duration > 0) .} \
+ ORDER BY desc(?date) LIMIT 1000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ """Querying the received calls"""
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying received calls = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(calls.test_calls_03, query)
+ t.rows.append(hd.TableRow([calls.test_calls_03.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_calls_04(self):
+
+ """
+ Time taken for querying missed calls.
+ @param description: Time taken for querying missed calls
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = "SELECT ?name ?date ?number ?duration \
+ WHERE {?m a nmo:Call; \
+ nmo:receivedDate ?date ; \
+ nmo:duration ?duration; \
+ nmo:from ?contact . \
+ ?contact a nco:PersonContact; \
+ nco:hasPhoneNumber ?number . \
+ OPTIONAL { ?contact a nco:PersonContact ; nco:nameFamily ?name}\
+ FILTER (?duration > 0) .} \
+ ORDER BY desc(?date) LIMIT 1000"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ """Querying the missed calls"""
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying missed calls = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(calls.test_calls_04, query)
+ t.rows.append(hd.TableRow([calls.test_calls_04.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+""" IM performance test cases """
+class instant_messages(TestUpdate):
+
+
+ def test_im_01(self):
+
+ """
+ Time taken for querying messages.
+ @param description: Time taken for querying messages
+ @param expected_value:
+ @param querytype:
+ """
+
+
+ query = "SELECT ?message ?from ?date ?content WHERE { \
+ ?message a nmo:IMMessage ; \
+ nmo:from ?from ; \
+ nmo:receivedDate ?date ; \
+ nie:plainTextContent ?content} LIMIT 10000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ """Querying the messages """
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying messages = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(instant_messages.test_im_01, query)
+ t.rows.append(hd.TableRow([instant_messages.test_im_01.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_im_02(self):
+
+ """
+ Time taken for querying status of contacts.
+ @param description: Time taken for querying status of contacts
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = "SELECT ?contact ?status WHERE{\
+ ?contact a nco:IMAccount; \
+ nco:imPresence ?status }LIMIT 10000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ """Querying the status of contacts every sec"""
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying status of contacts = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(instant_messages.test_im_02, query)
+ t.rows.append(hd.TableRow([instant_messages.test_im_02.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+""" rtcom performance test cases """
+class rtcom(TestUpdate):
+
+
+ def test_rtcom_01(self):
+
+ """
+ Time taken for querying (old) conversation view (without contact info).
+ @param description: Time taken for querying (old) conversation view (without contact info)
+ @param expected_value: 0.5 sec
+ @param querytype:
+ """
+
+ # A version of the next one that skips the contact parts that are not generated properly
+
+ query = "SELECT ?msg ?date ?text ?contact \
+ WHERE { \
+ ?msg nmo:communicationChannel <urn:channel:1> ; \
+ nmo:sentDate ?date ; \
+ nie:plainTextContent ?text . \
+ <urn:channel:1> nmo:hasParticipant ?contact . \
+ } ORDER BY DESC(?date) LIMIT 50"
+
+ #query = "SELECT ?msg ?date ?text ?contact \
+ # WHERE { \
+ # ?msg nmo:communicationChannel <urn:uuid:7585395544138154780> ; \
+ # nmo:sentDate ?date ; \
+ # nie:plainTextContent ?text ; \
+ # nmo:from [ nco:hasIMAddress ?fromAddress ] . \
+ # <urn:uuid:7585395544138154780> nmo:hasParticipant ?contact . \
+ # ?contact nco:hasIMAddress ?fromAddress . \
+ # } ORDER BY DESC(?date) LIMIT 50"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying (old) conversation view (without contact info) = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(rtcom.test_rtcom_01, query)
+ t.rows.append(hd.TableRow([rtcom.test_rtcom_01.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+ def test_rtcom_02(self):
+
+ """
+ Time taken for querying conversation view.
+ @param description: Time taken for querying conversation view
+ @param expected_value: 0.5 sec
+ @param querytype:
+ """
+
+ #
+ # Current rtcom queries, please do not "quietly optimize".
+ #
+
+ # requires secondary index support to be fast
+
+ query = " \
+ SELECT ?message ?date ?from ?to \
+ rdf:type(?message) \
+ tracker:coalesce(fn:concat(nco:nameGiven(?contact), ' ', nco:nameFamily(?contact)), nco:nickname(?contact)) \
+ nco:contactUID(?contact) \
+ nmo:communicationChannel(?message) \
+ nmo:isSent(?message) \
+ nmo:isDraft(?message) \
+ nmo:isRead(?message) \
+ nmo:isAnswered(?message) \
+ nmo:isDeleted(?message) \
+ nmo:messageId(?message) \
+ nmo:smsId(?message) \
+ nmo:sentDate(?message) \
+ nmo:receivedDate(?message) \
+ nie:contentLastModified(?message) \
+ nmo:messageSubject(?message) \
+ nie:plainTextContent(?message) \
+ nmo:deliveryStatus(?message) \
+ nmo:reportDelivery(?message) \
+ nie:url(?message) \
+ nfo:fileName(nmo:fromVCard(?message)) \
+ rdfs:label(nmo:fromVCard(?message)) \
+ nfo:fileName(nmo:toVCard(?message)) \
+ rdfs:label(nmo:toVCard(?message)) \
+ nmo:encoding(?message) \
+ nie:characterSet(?message) \
+ nie:language(?message) \
+ WHERE \
+ { \
+ SELECT \
+ ?message ?date ?from ?to \
+ (SELECT ?contact \
+ WHERE \
+ { \
+ { \
+ <urn:channel:1> nmo:hasParticipant ?participant . \
+ ?contact a nco:PersonContact . \
+ ?participant nco:hasIMAddress ?imaddress . \
+ ?contact nco:hasIMAddress ?imaddress . \
+ } \
+ UNION \
+ { \
+ <urn:channel:1> nmo:hasParticipant ?participant . \
+ ?contact a nco:PersonContact . \
+ ?participant nco:hasPhoneNumber ?participantNumber . \
+ ?participantNumber maemo:localPhoneNumber ?number . \
+ ?contact nco:hasPhoneNumber ?contactNumber . \
+ ?contactNumber maemo:localPhoneNumber ?number . \
+ } \
+ } \
+ ) AS ?contact \
+ WHERE \
+ { \
+ ?message a nmo:Message . \
+ ?message nmo:isDraft false . \
+ ?message nmo:isDeleted false . \
+ ?message nmo:sentDate ?date . \
+ ?message nmo:from ?fromContact . \
+ ?message nmo:to ?toContact . \
+ ?fromContact nco:hasContactMedium ?from . \
+ ?toContact nco:hasContactMedium ?to . \
+ ?message nmo:communicationChannel <urn:channel:1> . \
+ } \
+ ORDER BY DESC(?date) \
+ } \
+ LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying conversation view = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(rtcom.test_rtcom_02, query)
+ t.rows.append(hd.TableRow([rtcom.test_rtcom_02.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+ def test_rtcom_03(self):
+
+ """
+ Time taken for querying call history.
+ @param description: Time taken for querying call history
+ @param expected_value: 0.5 sec
+ @param querytype:
+ """
+
+ #
+ # Current rtcom queries, please do not "quietly optimize".
+ #
+
+ query = " \
+ SELECT ?call ?date ?from ?to \
+ rdf:type(?call) \
+ nmo:isSent(?call) \
+ nmo:isAnswered(?call) \
+ nmo:isRead(?call) \
+ nmo:sentDate(?call) \
+ nmo:receivedDate(?call) \
+ nmo:duration(?call) \
+ nie:contentLastModified(?call) \
+ (SELECT ?contact \
+ WHERE \
+ { \
+ { \
+ ?contact a nco:PersonContact . \
+ ?contact nco:contactUID ?contactId . \
+ { \
+ ?call nmo:to ?address . \
+ } \
+ UNION \
+ { \
+ ?call nmo:from ?address . \
+ } \
+ ?address nco:hasIMAddress ?imaddress . \
+ ?contact nco:hasIMAddress ?imaddress . \
+ } \
+ UNION \
+ { \
+ ?contact a nco:PersonContact . \
+ ?contact nco:contactUID ?contactId . \
+ { \
+ ?call nmo:to ?address . \
+ } \
+ UNION \
+ { \
+ ?call nmo:from ?address . \
+ } \
+ ?address nco:hasPhoneNumber ?addressNumber . \
+ ?addressNumber maemo:localPhoneNumber ?number . \
+ ?contact nco:hasPhoneNumber ?contactNumber . \
+ ?contactNumber maemo:localPhoneNumber ?number . \
+ } \
+ }) \
+ WHERE \
+ { \
+ { \
+ ?call a nmo:Call . \
+ ?call nmo:sentDate ?date . \
+ ?call nmo:from ?fromContact . \
+ ?call nmo:to ?toContact . \
+ ?fromContact nco:hasContactMedium ?from . \
+ ?toContact nco:hasContactMedium ?to . \
+ } \
+ } \
+ ORDER BY DESC(?date) LIMIT 50\
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying call history = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(rtcom.test_rtcom_03, query)
+ t.rows.append(hd.TableRow([rtcom.test_rtcom_03.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+ def test_rtcom_04(self):
+
+ """
+ Time taken for querying (old) conversation list view.
+ @param description: Time taken for querying (old) conversation list view
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = "SELECT ?channel ?participant nco:fullname(?participant) ?last_date nie:plainTextContent(?last_message) \
+ (SELECT COUNT(?message) AS ?message_count \
+ WHERE { ?message nmo:communicationChannel ?channel }) \
+ (SELECT COUNT(?message) AS ?message_count \
+ WHERE { ?message nmo:communicationChannel ?channel ; nmo:isRead true }) \
+ WHERE { SELECT ?channel ?participant ?last_date \
+ (SELECT ?message WHERE { ?message nmo:communicationChannel ?channel ; nmo:sentDate ?date } ORDER BY DESC(?date) LIMIT 1) AS ?last_message \
+ WHERE { \
+ ?channel a nmo:CommunicationChannel ; \
+ nmo:lastMessageDate ?last_date ; \
+ nmo:hasParticipant ?participant . \
+ FILTER (?participant != nco:default-contact-me ) \
+ } ORDER BY DESC(?last_date) LIMIT 50 }"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying (old) conversation list view = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(rtcom.test_rtcom_04, query)
+ t.rows.append(hd.TableRow([rtcom.test_rtcom_04.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_rtcom_05(self):
+
+ """
+ Time taken for querying (old) conversation view.
+ @param description: Time taken for querying (old) conversation view
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = "SELECT ?msg ?date ?text ?contact \
+ WHERE { \
+ ?msg nmo:communicationChannel <urn:channel:1> ; \
+ nmo:sentDate ?date ; \
+ nie:plainTextContent ?text ; \
+ nmo:from [ nco:hasIMAddress ?fromAddress ] . \
+ <urn:channel:1> nmo:hasParticipant ?contact . \
+ ?contact nco:hasIMAddress ?fromAddress . \
+ } ORDER BY DESC(?date) LIMIT 50"
+
+ #query = "SELECT ?msg ?date ?text ?contact \
+ # WHERE { \
+ # ?msg nmo:communicationChannel <urn:uuid:7585395544138154780> ; \
+ # nmo:sentDate ?date ; \
+ # nie:plainTextContent ?text ; \
+ # nmo:from [ nco:hasIMAddress ?fromAddress ] . \
+ # <urn:uuid:7585395544138154780> nmo:hasParticipant ?contact . \
+ # ?contact nco:hasIMAddress ?fromAddress . \
+ # } ORDER BY DESC(?date) LIMIT 50"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying (old) conversation view = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(rtcom.test_rtcom_05, query)
+ t.rows.append(hd.TableRow([rtcom.test_rtcom_05.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_rtcom_06(self):
+
+ """
+ Time taken for querying conversation list.
+ @param description: Time taken for querying conversation list
+ @param expected_value:
+ @param querytype:
+ """
+
+ #
+ # Current rtcom queries, please do not "quietly optimize".
+ #
+
+ query = " \
+ SELECT ?channel ?subject nie:generator(?channel) \
+ tracker:coalesce(fn:concat(nco:nameGiven(?contact), ' ', nco:nameFamily(?contact)), nco:nickname(?contact)) AS ?contactName \
+ nco:contactUID(?contact) AS ?contactUID \
+ ?lastDate ?lastMessage nie:plainTextContent(?lastMessage) \
+ nfo:fileName(nmo:fromVCard(?lastMessage)) \
+ rdfs:label(nmo:fromVCard(?lastMessage)) \
+ ( SELECT COUNT(?message) AS ?total_messages WHERE { ?message nmo:communicationChannel ?channel . }) \
+ ( SELECT COUNT(?message) AS ?total_unread WHERE { ?message nmo:communicationChannel ?channel . ?message nmo:isRead false .}) \
+ ( SELECT COUNT(?message) AS ?_total_sent WHERE { ?message nmo:communicationChannel ?channel . ?message nmo:isSent true . }) \
+ WHERE { \
+ SELECT ?channel ?subject ?lastDate \
+ \
+ ( SELECT ?message WHERE {?message nmo:communicationChannel ?channel . ?message nmo:sentDate ?sentDate .} ORDER BY DESC(?sentDate) LIMIT 1) AS ?lastMessage \
+ (SELECT ?contact \
+ WHERE { \
+ { \
+ ?channel nmo:hasParticipant ?participant . \
+ ?contact a nco:PersonContact . \
+ ?participant nco:hasIMAddress ?imaddress . \
+ ?contact nco:hasIMAddress ?imaddress . \
+ } \
+ UNION \
+ { \
+ ?channel nmo:hasParticipant ?participant . \
+ ?contact a nco:PersonContact . \
+ ?participant nco:hasPhoneNumber ?participantNumber . \
+ ?number maemo:localPhoneNumber ?localNumber . \
+ ?contact nco:hasPhoneNumber ?contactNumber . \
+ ?contactNumber maemo:localPhoneNumber ?localNumber . \
+ } \
+ }) AS ?contact \
+ WHERE { \
+ ?channel a nmo:CommunicationChannel . \
+ ?channel nie:subject ?subject . \
+ ?channel nmo:lastMessageDate ?lastDate . \
+ } \
+ } \
+ ORDER BY DESC(?lastDate) LIMIT 50\
+ "
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying conversation list = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(rtcom.test_rtcom_06, query)
+ t.rows.append(hd.TableRow([rtcom.test_rtcom_06.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+""" Audio, Video, Images performance test cases """
+class audio(TestUpdate):
+
+ def test_audio_01(self):
+
+ """
+ Time taken for querying all songs.
+ @param description: Time taken for querying all songs
+ @param expected_value: First 20 clips in 0.2 sec and the rest up to 10000 in 2 sec
+ @param querytype:
+ """
+
+ """Query all songs """
+
+ query = "SELECT ?title ?artist nmm:albumTitle (nmm:musicAlbum (?song))\
+ WHERE { { \
+ ?song a nmm:MusicPiece . \
+ ?song nie:title ?title .\
+ ?song nmm:performer ?perf . \
+ ?perf nmm:artistName ?artist .}} \
+ ORDER BY ?title "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result = self.resources.SparqlQuery(query,timeout = 1000)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all songs = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_01, query)
+ t.rows.append(hd.TableRow([audio.test_audio_01.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+ def test_audio_02 (self) :
+
+ """
+ Time taken for querying 5000 albums.
+ @param description: Time taken for querying 5000 albums
+ @param expected_value: First 20 albums in 0.2sec rest up to 1000 in 2 sec
+ @param querytype:
+ """
+
+ """Query all albums """
+
+ query = "SELECT nmm:albumTitle(?album) AS ?Album nmm:artistName (nmm:performer (?Songs)) COUNT(?Songs) AS ?Songs ?album \
+ WHERE { { ?Songs a nmm:MusicPiece .\
+ ?Songs nmm:musicAlbum ?album . \
+ }}GROUP BY ?album ORDER BY ?album LIMIT 5000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result = self.resources.SparqlQuery(query,timeout = 1000)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 5000 albums = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_02, query)
+ t.rows.append(hd.TableRow([audio.test_audio_02.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+ def test_audio_03 (self):
+
+ """
+ Time taken for querying 5000 artists.
+ @param description: Time taken for querying 5000 artists
+ @param expected_value: First 20 artists in 0.2 secrst up to 100 in 0.5sec
+ @param querytype:
+ """
+
+ """ Query all artists """
+ """simplified version of test_audio_08 """
+ query = "SELECT nmm:artistName(?artist) nmm:albumTitle(?album) COUNT(?album) ?artist WHERE { \
+ ?song a nmm:MusicPiece . \
+ ?song nmm:performer ?artist . \
+ OPTIONAL { ?song nmm:musicAlbum ?album . } } \
+ GROUP BY ?artist ORDER BY ?artist LIMIT 5000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+ print query
+ result = self.resources.SparqlQuery(query,timeout= 600)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 5000 artists = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_03, query)
+ t.rows.append(hd.TableRow([audio.test_audio_03.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+
+ def test_audio_04(self):
+
+ """
+ Time taken for querying Artist and finding the no.of albums in each artist.
+ @param description: Time taken for querying Artist and finding the no.of albums in each artist
+ @param expected_value: First 20 albums in 0.2sec and the rest up to 100 in 0.5 sec
+ @param querytype:
+ """
+
+ """ Querying for Artist and finding the no.of albums in each artist. """
+
+ query = "SELECT ?artist ?name COUNT(?album) COUNT (?song) \
+ WHERE { \
+ ?song a nmm:MusicPiece ; \
+ nmm:musicAlbum ?album; \
+ nmm:performer ?artist . \
+ ?artist nmm:artistName ?name. \
+ } GROUP BY ?artist"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying Artist and finding the no.of albums in each artist = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_04, query)
+ t.rows.append(hd.TableRow([audio.test_audio_04.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+ def test_audio_05(self):
+
+ """
+ Time taken for querying all artists and count their songs.
+ @param description: Time taken for querying all artists and count their songs
+ @param expected_value: First 20 clips in 0.2 sec and the rest up to 1000 in 2sec
+ @param querytype:
+ """
+
+ """Query all aritists also count of songs in each artists """
+
+ query= "SELECT nmm:artistName(?artist) COUNT(?songs) WHERE { \
+ ?mp a nmm:MusicPiece . \
+ ?mp nmm:performer ?artist ; \
+ nie:title ?songs . } \
+ GROUP BY ?artist ORDER BY DESC(nmm:artistName(?artist))"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result = self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all artists and count their songs = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_05, query)
+ t.rows.append(hd.TableRow([audio.test_audio_05.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+ def test_audio_06(self):
+
+ """
+ Time taken for querying all albums and count their songs.
+ @param description: Time taken for querying all albums and count their songs
+ @param expected_value: First 20 clips in 0.2 sec
+ @param querytype:
+ """
+
+ """Query all albums also count of songs in each album """
+
+ query= "SELECT nie:title(?a) COUNT(?songs) WHERE { \
+ ?a a nmm:MusicAlbum . \
+ ?mp nmm:musicAlbum ?a ; \
+ nie:title ?songs . } \
+ GROUP BY ?a ORDER BY DESC(nie:title(?a))"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result = self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all albums and count their songs = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_06, query)
+ t.rows.append(hd.TableRow([audio.test_audio_06.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+ def test_audio_07(self):
+
+ """
+ Time taken for querying all albums and count their songs.
+ @param description: Time taken for querying all albums and count their songs
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Query all albums also count of songs in each album """
+
+ query= "SELECT ?album COUNT(?songs) AS ?count WHERE { \
+ ?a a nmm:MusicAlbum; \
+ nie:title ?album. \
+ ?mp nmm:musicAlbum ?a;\
+ nie:title ?songs.\
+ }GROUP BY ?album ORDER BY DESC(?album)"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result = self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all albums and count their songs = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_07, query)
+ t.rows.append(hd.TableRow([audio.test_audio_07.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_audio_08 (self):
+
+ """
+ Time taken for querying 5000 artists.
+ @param description: Time taken for querying 5000 artists
+ @param expected_value: 1.5
+ @param querytype:
+ """
+
+ """ Query all artists """
+ query = " SELECT nmm:artistName(?artist) AS ?artistTitle (nmm:musicAlbum (?song)) (nmm:albumTitle (?album))COUNT(?album) AS ?album ?artist \
+ WHERE { \
+ ?song a nmm:MusicPiece .\
+ ?song nmm:performer ?artist . \
+ } GROUP BY ?artist ORDER BY ?artist LIMIT 5000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+ print query
+ result = self.resources.SparqlQuery(query,timeout= 600)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 5000 artists = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_08, query)
+ t.rows.append(hd.TableRow([audio.test_audio_08.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_audio_09 (self) :
+
+ """
+ Time taken for querying 100 albums.
+ @param description: Time taken for querying 100 albums
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Query 100 albums """
+
+ query = "SELECT nmm:albumTitle(?album) AS ?Album (nmm:performer(?Songs)) nmm:artistName COUNT(?Songs) AS ?Songs ?album \
+ WHERE { { ?Songs a nmm:MusicPiece .\
+ ?Songs nmm:musicAlbum ?album .\
+ }}GROUP BY ?album ORDER BY ?album LIMIT 100"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result = self.resources.SparqlQuery(query,timeout = 1000)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 100 albums = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_09, query)
+ t.rows.append(hd.TableRow([audio.test_audio_09.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_audio_10 (self):
+
+ """
+ Time taken for querying 100 artist.
+ @param description: Time taken for querying 100 artist
+ @param expected_value:
+ @param querytype:
+ """
+
+ """ Query 100 artists """
+
+ query = "SELECT nmm:artistName(?artist) AS ?artistTitle (nmm:musicAlbum (?song)) nmm:albumTitle COUNT(?album) AS\
+ ?album ?artist \
+ WHERE { \
+ ?song a nmm:MusicPiece .\
+ ?song nmm:performer ?artist . \
+ } GROUP BY ?artist ORDER BY ?artist LIMIT 100"""
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+ print query
+ result = self.resources.SparqlQuery(query,timeout=600)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 100 artist = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(audio.test_audio_10, query)
+ t.rows.append(hd.TableRow([audio.test_audio_10.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+ def test_audio_11 (self):
+
+ """
+ Time taken for querying 100 artist.
+ @param description: Time taken for querying 100 artist
+ @param expected_value:
+ @param querytype:
+ """
+
+ """ Query 100 artists """
+ """simplified version of test_audio_10 """
+
+ query = "SELECT nmm:artistName(?artist) nmm:albumTitle(?album) COUNT(?album) ?artist WHERE { \
+ ?song a nmm:MusicPiece . \
+ ?song nmm:performer ?artist . \
+ OPTIONAL { ?song nmm:musicAlbum ?album . } } \
+ GROUP BY ?artist ORDER BY ?artist LIMIT 100"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+ print query
+ result = self.resources.SparqlQuery(query,timeout=600)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 100 artist = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+ value, l=self.parsing(audio.test_audio_11, query)
+ t.rows.append(hd.TableRow([audio.test_audio_11.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+class gallery(TestUpdate):
+
+
+ def test_gallery_01(self):
+
+ """
+ Time taken for querying all images and videos.
+ @param description: Time taken for querying all images and videos
+ @param expected_value: Use streaming mode, get first 500 results in 0.1 second, all results in 2 second.
+ @param querytype:
+ """
+
+ """ Querying for all Images and Videos """
+
+ query = "SELECT ?url \
+ WHERE { \
+ ?media a nfo:Visual; \
+ nie:url ?url;\
+ nfo:fileName ?filename ;\
+ nfo:fileLastModified ?modified .\
+ OPTIONAL {?media nfo:width ?_width. } \
+ OPTIONAL { ?media nfo:height ?_height .} } \
+ ORDER BY ?modified LIMIT 10000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query, timeout=25)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all images and videos = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_01, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_01.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+
+ def test_gallery_02(self):
+
+ """
+ Time taken for querying all images and videos taken with phone's camera.
+ @param description: Time taken for querying all images and videos taken with phone's camera
+ @param expected_value: Use streaming mode, get first 500 results in 0.1 second, all results in 1.0 second.
+ @param querytype:
+ """
+
+ """Querying all images and videos taken with phone's camera """
+
+ query = "SELECT ?media WHERE { \
+ ?media a nfo:Visual; \
+ nfo:device 'NOKIA' }"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all images and videos taken with phone's camera = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_02, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_02.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+ def test_gallery_03(self):
+
+ """
+ Time taken for querying all images and videos with a tag.
+ @param description: Time taken for querying all images and videos with a tag
+ @param expected_value: Use streaming mode, get first 500 results in 0.1 second, all results in 2 second.
+ @param querytype:
+ """
+
+ """ Querying for images, videos which have tag TEST """
+
+ query = "SELECT ?media \
+ WHERE { \
+ ?media a nfo:Visual; \
+ nao:hasTag ?tag . \
+ ?tag nao:prefLabel 'TEST' }"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all images and videos with a tag = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_03, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_03.__name__, value[0], value[1], list, value[2], len(result), l], bgcolor="#C3FDB8"))
+
+
+ def test_gallery_04(self):
+
+ """
+ Time taken for querying all images and videos without OPTIONALS.
+ @param description: Time taken for querying all images and videos without OPTIONALS
+ @param expected_value:
+ @param querytype:
+ """
+
+ """ Querying for all Images and Videos without OPTIONALS"""
+
+ query = "SELECT ?url \
+ WHERE { \
+ ?media a nfo:Visual; \
+ nie:url ?url;\
+ nfo:fileName ?filename ;\
+ nfo:fileLastModified ?modified .}\
+ ORDER BY ?modified LIMIT 10000"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query, timeout=25)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all images and videos without OPTIONALS = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_04, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_04.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_gallery_05(self):
+
+ """
+ Time taken for querying 500 images and videos.
+ @param description: Time taken for querying 500 images and videos
+ @param expected_value:
+ @param querytype:
+ """
+
+ """ Querying for 500 Images and Videos """
+
+ query = "SELECT ?url \
+ WHERE { \
+ ?media a nfo:Visual; \
+ nie:url ?url;\
+ nfo:fileName ?filename ;\
+ nfo:fileLastModified ?modified .\
+ OPTIONAL {?media nfo:width ?_width. } \
+ OPTIONAL { ?media nfo:height ?_height .} } \
+ ORDER BY ?modified LIMIT 500"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query, timeout=25)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 500 images and videos = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_05, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_05.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+ def test_gallery_06(self):
+
+ """
+ Time taken for querying 100 images and videos without OPTIONALS.
+ @param description: Time taken for querying 100 images and videos without OPTIONALS
+ @param expected_value:
+ @param querytype:
+ """
+
+ """ Querying for 500 Images and Videos without OPTIONALS"""
+
+ query = "SELECT ?url \
+ WHERE { \
+ ?media a nfo:Visual; \
+ nie:url ?url;\
+ nfo:fileName ?filename ;\
+ nfo:fileLastModified ?modified .} \
+ ORDER BY ?modified LIMIT 500"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query, timeout=25)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 100 images and videos without OPTIONALS = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_06, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_06.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+ def test_gallery_07(self):
+
+ """
+ Time taken for querying 500 images and videos with a tag.
+ @param description: Time taken for querying 500 images and videos with a tag
+ @param expected_value: Use streaming mode, get first 500 results in 0.1 second, all results in 2 second.
+ @param querytype:
+ """
+
+ """ Querying for 500 images, videos which have tag TEST """
+ query = "SELECT ?media \
+ WHERE { \
+ ?media a nfo:Visual; \
+ nao:hasTag ?tag . \
+ ?tag nao:prefLabel 'TEST' } LIMIT 500"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 500 images and videos with a tag = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_07, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_07.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+ def test_gallery_08(self):
+
+ """
+ Time taken for querying 500 images and videos taken with phone's camera.
+ @param description: Time taken for querying 500 images and videos taken with phone's camera
+ @param expected_value: Use streaming mode, get first 500 results in 0.1 second, all results in 1.0 second.
+ @param querytype:
+ """
+
+ """Querying 500 images and videos taken with phone's camera """
+
+ query = "SELECT ?media WHERE { \
+ ?media a nfo:Visual; \
+ nfo:device 'NOKIA' } LIMIT 500"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 500 images and videos taken with phone's camera = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_08, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_08.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_gallery_09(self):
+
+ """
+ Time taken for querying all images.
+ @param description: Time taken for querying all images
+ @param expected_value: Use streaming mode, get first 500 results in 0.1 second, all results in 1.0 second.
+ @param querytype:
+ """
+
+ """Querying all images """
+
+ query = " SELECT ?url ?mime ?camera ?exposuretime ?fnumber ?focallength \
+ WHERE {\
+ ?image a nmm:Photo; \
+ nie:url ?url; \
+ nie:mimeType ?mime. \
+ OPTIONAL { ?image nfo:height ?height .}\
+ OPTIONAL { ?image nfo:width ?width .}\
+ OPTIONAL { ?image nfo:device ?camera .}\
+ OPTIONAL { ?image nmm:exposureTime ?exposuretime .}\
+ OPTIONAL { ?image nmm:fnumber ?fnumber .}\
+ OPTIONAL { ?image nmm:focalLength ?focallength .}} LIMIT 10000"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all images = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_09, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_09.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+
+ def test_gallery_10(self):
+
+ """
+ Time taken for querying 500 images.
+ @param description: Time taken for querying 500 images
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Querying 500 images """
+
+ query = " SELECT ?url ?mime ?camera ?exposuretime ?fnumber ?focallength \
+ WHERE {\
+ ?image a nmm:Photo; \
+ nie:url ?url; \
+ nie:mimeType ?mime. \
+ OPTIONAL { ?image nfo:height ?height .}\
+ OPTIONAL { ?image nfo:width ?width .}\
+ OPTIONAL { ?image nfo:device ?camera .}\
+ OPTIONAL { ?image nmm:exposureTime ?exposuretime .}\
+ OPTIONAL { ?image nmm:fnumber ?fnumber .}\
+ OPTIONAL { ?image nmm:focalLength ?focallength .}} LIMIT 500"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 500 images = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_10, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_10.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+ def test_gallery_11(self):
+
+ """
+ Time taken for querying 500 images and videos.
+ @param description: Time taken for querying 500 images and videos
+ @param expected_value:
+ @param querytype:
+ """
+
+ """ Querying for 500 Images and Videos with UNION for them """
+
+ query = "SELECT ?url \
+ WHERE { \
+ {?media a nmm:Photo.} UNION {?media a nmm:Video.} \
+ ?media nie:url ?url.\
+ ?media nfo:fileName ?filename .\
+ ?media nfo:fileLastModified ?modified .\
+ OPTIONAL {?media nfo:width ?_width. } \
+ OPTIONAL { ?media nfo:height ?_height .} } \
+ ORDER BY ?modified LIMIT 500"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query,timeout=1000)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 500 images and videos = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_11, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_11.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_gallery_12(self):
+
+ """
+ Time taken for querying all images.
+ @param description: TTime taken for querying all images
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Querying all images """
+ """simplified version of test_gallery_09 """
+
+ query = "SELECT nie:url(?image) nie:mimeType(?image) nfo:device(?image) nmm:exposureTime(?image) nmm:fnumber(?image) nmm:focalLength(?image) WHERE { ?image a nmm:Photo . } limit 10000"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying all images = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_12, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_12.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_gallery_13(self):
+
+ """
+ Time taken for querying 500 images.
+ @param description: Time taken for querying 500 images
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Querying 500 images """
+ """simplified version of test_gallery_10 """
+
+ query = "SELECT nie:url(?image) nie:mimeType(?image) nfo:device(?image) nmm:exposureTime(?image) nmm:fnumber(?image) nmm:focalLength(?image) WHERE { ?image a nmm:Photo . } limit 500"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for querying 500 images = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(gallery.test_gallery_13, query)
+ t.rows.append(hd.TableRow([gallery.test_gallery_13.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+class ftsmatch (TestUpdate) :
+
+ def test_fts_01 (self):
+
+ """
+ Time taken for searching an artist in 10000 music files.
+ @param description: Time taken for searching an artist in 10000 music files
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = " SELECT ?uri WHERE { \
+ ?uri a nie:InformationElement ; \
+ fts:match 'ArtistName' }"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for searching an artist in 10000 music files %s" %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(ftsmatch.test_fts_01, query)
+ t.rows.append(hd.TableRow([ftsmatch.test_fts_01.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_fts_02 (self) :
+
+ """
+ Time taken for searching a word.
+ @param description: Time taken for searching a word
+ @param expected_value:
+ @param querytype:
+ """
+
+ """ Searching for a word """
+ query = " SELECT ?uri WHERE { \
+ ?uri a nie:InformationElement ; \
+ fts:match 'WordInPlainText' . } "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for searching a word = %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(ftsmatch.test_fts_02, query)
+ t.rows.append(hd.TableRow([ftsmatch.test_fts_02.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_fts_03 (self):
+
+ """
+ Time taken for searching an artist in 10000 music files.
+ @param description: Time taken for searching an artist in 10000 music files
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Making a search for artist"""
+
+ query = " SELECT ?uri WHERE { \
+ ?uri a nie:InformationElement ; \
+ fts:match 'ArtistNa*'}"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for searching an artist in 10000 music files %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(ftsmatch.test_fts_03, query)
+ t.rows.append(hd.TableRow([ftsmatch.test_fts_03.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_fts_04 (self):
+
+ """
+ Time taken for searching an artist in 10000 music files.
+ @param description: Time taken for searching an artist in 10000 music files
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Making a search for artist"""
+
+ query = " SELECT ?uri WHERE { \
+ ?uri a nie:InformationElement ; \
+ fts:match 'Art*' }"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for searching an artist in 10000 music files %s" %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(ftsmatch.test_fts_04, query)
+ t.rows.append(hd.TableRow([ftsmatch.test_fts_04.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_fts_05 (self):
+
+ """
+ Time taken for searching an artist in 10000 music files.
+ @param description: Time taken for searching an artist in 10000 music files
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Making a search for artist"""
+
+ query = " SELECT ?uri WHERE { \
+ ?uri a nie:InformationElement ; \
+ fts:match 'Ar*'}"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for searching an artist in 10000 music files %s" %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(ftsmatch.test_fts_05, query)
+ t.rows.append(hd.TableRow([ftsmatch.test_fts_05.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_fts_06 (self):
+
+ """
+ Time taken for searching an artist in 10000 music files.
+ @param description: Time taken for searching an artist in 10000 music files
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Making a search for artist"""
+
+ query = " SELECT ?uri WHERE { \
+ ?uri a nie:InformationElement ; \
+ fts:match 'A*' }"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for searching an artist in 10000 music files %s" %elapse
+ print "no.of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(ftsmatch.test_fts_06, query)
+ t.rows.append(hd.TableRow([ftsmatch.test_fts_06.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_fts_07 (self):
+
+ """
+ Time taken for searching an artist in 10000 music files.
+ @param description: Time taken for searching an artist in 10000 music files
+ @param expected_value:
+ @param querytype:
+ """
+
+
+ """Making a search for artist"""
+
+ query = " SELECT ?uri WHERE { \
+ ?uri a nie:InformationElement ; \
+ fts:match 'A* p*' }"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for searching an artist in 10000 music files %s" %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(ftsmatch.test_fts_07, query)
+ t.rows.append(hd.TableRow([ftsmatch.test_fts_07.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_fts_08 (self):
+
+ """
+ Time taken for searching an artist in 10000 music files.
+ @param description: Time taken for searching an artist in 10000 music files
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Making a search for artist"""
+
+ query = " SELECT ?uri WHERE { \
+ ?uri a nie:InformationElement ; \
+ fts:match 'A* p* k*' }"
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken for searching an artist in 10000 music files %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(ftsmatch.test_fts_08, query)
+ t.rows.append(hd.TableRow([ftsmatch.test_fts_08.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+
+
+class content_manager (TestUpdate) :
+
+ def test_cm_01 (self):
+
+ """
+ Time taken to get 100 contacts that match fts and get relevant UI info for them.
+ @param description: Time taken to get 100 contacts that match fts and get relevant UI info for them
+ @param expected_value:
+ @param querytype:
+ """
+
+
+ """Get all the contacts that match fts and get relevant UI info for them"""
+
+ query = "SELECT ?url ?photourl ?imstatus tracker:coalesce(?family, ?given, ?orgname, ?nick, ?email, ?phone, ?blog) \
+ WHERE { { ?url a nco:PersonContact.?url fts:match 'fami*'. } \
+ UNION { ?url a nco:PersonContact. ?url nco:hasEmailAddress ?add.?add fts:match 'fami*'. } \
+ UNION { ?url a nco:PersonContact. ?url nco:hasPostalAddress ?post.?post fts:match 'fami*'. } \
+ OPTIONAL { ?url maemo:relevance ?relevance.} \
+ OPTIONAL { ?url nco:photo ?photo. ?photo nie:url ?photourl.} \
+ OPTIONAL { ?url nco:imContactStatusMessage ?imstatus.} \
+ OPTIONAL { ?url nco:nameFamily ?family.} \
+ OPTIONAL { ?url nco:nameFamily ?given.} \
+ OPTIONAL { ?url nco:org ?org. ?org nco:nameGiven ?orgname.} \
+ OPTIONAL { ?url nco:hasIMAccount ?acc. ?acc nco:imNickname ?nick.} \
+ OPTIONAL { ?url nco:hasEmailAddress ?hasemail. ?hasemail nco:emailAddress ?email.} \
+ OPTIONAL { ?url nco:hasPhoneNumber ?hasphone. ?hasphone nco:phoneNumber ?phone.} \
+ OPTIONAL { ?url nco:blogUrl ?blog.}} \
+ ORDER BY ?relevance \
+ LIMIT 100"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 100 contacts that match fts and get relevant UI info for them %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(content_manager.test_cm_01, query)
+ t.rows.append(hd.TableRow([content_manager.test_cm_01.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_cm_02 (self):
+
+ """
+ Time taken to get 100 contacts that match fts and get relevant UI info for them.
+ @param description: Time taken to get 100 contacts that match fts and get relevant UI info for them
+ @param expected_value: 6.13
+ @param querytype:
+ """
+
+
+ """Get all the contacts that match fts and get relevant UI info for them"""
+
+ query = "SELECT ?url tracker:coalesce(nco:nameFamily(?url), nco:nameGiven(?url), 'unknown') \
+ WHERE { \
+ { ?url a nco:PersonContact.?url fts:match 'fami*'. } \
+ UNION { ?url a nco:PersonContact. ?url nco:hasEmailAddress ?add.?add fts:match 'fami*'. } \
+ UNION { ?url a nco:PersonContact. ?url nco:hasPostalAddress ?post.?post fts:match 'fami*'. } \
+ } LIMIT 100"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 100 contacts that match fts and get relevant UI info for them %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(content_manager.test_cm_02, query)
+ t.rows.append(hd.TableRow([content_manager.test_cm_02.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_cm_03 (self):
+
+ """
+ Time taken to get 100 contacts that match fts and get relevant UI info for them.
+ @param description: Time taken to get 100 contacts that match fts and get relevant UI info for them
+ @param expected_value:
+ @param querytype:
+ """
+
+
+ """Get all the messages """
+
+ query = "SELECT ?url nie:title(?url) \
+ WHERE { \
+ { ?url a nmo:Message. ?url fts:match 'fami*'. } \
+ UNION { ?url a nmo:Message. ?url nmo:from ?from . ?from fts:match 'fami*'. } \
+ UNION { ?url a nmo:Message. ?url nmo:recipient ?to . ?to fts:match 'fami*'. } \
+ } LIMIT 100"
+
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 100 contacts that match fts and get relevant UI info for them %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(content_manager.test_cm_03, query)
+ t.rows.append(hd.TableRow([content_manager.test_cm_03.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_cm_04 (self):
+
+ """
+ Time taken to get 100 contacts that match fts and get relevant UI info for them.
+ @param description: Time taken to get 100 contacts that match fts and get relevant UI info for them
+ @param expected_value: 8.77
+ @param querytype:
+ """
+
+ """Get all the messages """
+
+ query = "SELECT ?url ?fileLastModified ?relevance ?fileName ?mimeType ?url2 \
+ WHERE { \
+ ?url a nfo:Image .\
+ ?url nfo:fileLastModified ?fileLastModified. \
+ ?url nfo:fileName ?fileName .\
+ ?url nie:mimeType ?mimeType .\
+ ?url nie:url ?url2 . \
+ OPTIONAL { ?url maemo:relevance ?relevance. } \
+ } ORDER BY ?_fileName"
+
+ list=[]
+ for i in range ( 0, iterations ):
+
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 100 contacts that match fts and get relevant UI info for them %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(content_manager.test_cm_04, query)
+ t.rows.append(hd.TableRow([content_manager.test_cm_04.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_cm_05 (self):
+
+ """
+ Time taken to get 100 content items that match fts without UI info for them.
+ @param description: Time taken to get 100 content items that match fts without UI info for them
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Get all the matching data """
+
+ query = "SELECT ?glob_url \
+ WHERE \
+ { \
+ { SELECT ?url as ?glob_url \
+ WHERE { ?url a nmo:Message . \
+ ?url fts:match 'fami*' . \
+ ?url nmo:from ?from . } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ WHERE { ?url a nmo:Message . \
+ ?url nmo:from ?from . \
+ ?from fts:match 'fami*'. } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ WHERE { ?url a nmo:Message . \
+ ?url nmo:to ?to . \
+ ?to fts:match 'fami*' . } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ WHERE { ?url a nmo:Message. \
+ ?url nmo:communicationChannel ?cha . \
+ ?cha fts:match 'fami*'. } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ WHERE { ?url a nco:PersonContact . \
+ ?url fts:match 'fami*'. } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ WHERE { ?url a nco:PersonContact . \
+ ?url nco:hasEmailAddress ?email . \
+ ?email fts:match 'fami*'. } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ WHERE { ?url a nco:PersonContact . \
+ ?url nco:hasPostalAddress ?post . \
+ ?post fts:match 'fami*'. } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ WHERE { ?url a nmm:MusicPiece . \
+ ?url nmm:performer ?artist . \
+ ?artist fts:match 'fami*' . } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ WHERE { ?url a nmm:MusicPiece . \
+ ?url nmm:musicAlbum ?album . \
+ ?album fts:match 'fami*' . } } \
+ } \
+ LIMIT 100"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 100 content items that match fts without UI info for them %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(content_manager.test_cm_05, query)
+ t.rows.append(hd.TableRow([content_manager.test_cm_05.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_cm_06 (self):
+
+ """
+ Time taken to get 100 content items that match fts and get relevant UI info for them.
+ @param description: Time taken to get 100 content items that match fts and get relevant UI info for them
+ @param expected_value:
+ @param querytype:
+ """
+
+ """Get all the matching data """
+
+ query = "SELECT ?glob_url ?first ?second \
+ WHERE \
+ { \
+ { SELECT ?url as ?glob_url \
+ nmo:messageSubject(?url) as ?first \
+ tracker:coalesce(nco:fullname(?from), nco:nameGiven(?from), nco:nameFamily(?from), nco:org(?from),'unknown') as ?second \
+ WHERE { ?url a nmo:Message . \
+ ?url fts:match 'fami*' . \
+ ?url nmo:from ?from . } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ nmo:messageSubject(?url) as ?first \
+ tracker:coalesce(nco:fullname(?from), nco:nameGiven(?from), nco:nameFamily(?from), nco:org(?from),'unknown') as ?second \
+ WHERE { ?url a nmo:Message . \
+ ?url nmo:from ?from . \
+ ?from fts:match 'fami*'. } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ nmo:messageSubject(?url) as ?first \
+ tracker:coalesce(nco:fullname(?from), nco:nameGiven(?from), nco:nameFamily(?from), nco:org(?from),'unknown') as ?second \
+ WHERE { ?url a nmo:Message . \
+ ?url nmo:to ?to . \
+ ?to fts:match 'fami*' . \
+ ?url nmo:from ?from . } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ nmo:messageSubject(?url) as ?first \
+ tracker:coalesce(nco:fullname(?from), nco:nameGiven(?from), nco:nameFamily(?from), nco:org(?from),'unknown') as ?second \
+ WHERE { ?url a nmo:Message. \
+ ?url nmo:communicationChannel ?cha . \
+ ?cha fts:match 'fami*'. \
+ ?url nmo:from ?from . } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ tracker:coalesce(nco:fullname(?url), nco:nameGiven(?url), nco:nameFamily(?url), nco:org(?url),'unknown') as ?first \
+ tracker:coalesce(nco:emailAddress(?email), nco:imNickname(?im), 'unknown') as ?second \
+ WHERE { ?url a nco:PersonContact . \
+ ?url fts:match 'fami*'. \
+ { SELECT ?em as ?email WHERE { ?url nco:hasEmailAddress ?em } LIMIT 1 } \
+ { SELECT ?imadd as ?im WHERE { ?url nco:hasIMAddress ?imadd } LIMIT 1 } } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ tracker:coalesce(nco:fullname(?url), nco:nameGiven(?url), nco:nameFamily(?url), nco:org(?url),'unknown') as ?first \
+ tracker:coalesce(nco:emailAddress(?email), nco:imNickname(?im), 'unknown') as ?second \
+ WHERE { ?url a nco:PersonContact . \
+ ?url nco:hasEmailAddress ?email . \
+ ?email fts:match 'fami*'. \
+ { SELECT ?imadd as ?im WHERE { ?url nco:hasIMAddress ?imadd } LIMIT 1 } } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ tracker:coalesce(nco:fullname(?url), nco:nameGiven(?url), nco:nameFamily(?url), nco:org(?url),'unknown') as ?first \
+ tracker:coalesce(nco:emailAddress(?email), nco:imNickname(?im), 'unknown') as ?second \
+ WHERE { ?url a nco:PersonContact . \
+ ?url nco:hasPostalAddress ?post . \
+ ?post fts:match 'fami*'. \
+ { SELECT ?em as ?email WHERE { ?url nco:hasEmailAddress ?em } LIMIT 1 } \
+ { SELECT ?imadd as ?im WHERE { ?url nco:hasIMAddress ?imadd } LIMIT 1 } } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ nie:title(?url) as ?first \
+ fn:concat(nmm:artistName(?artist),'-',nmm:albumTitle(?album)) \
+ WHERE { ?url a nmm:MusicPiece . \
+ ?url nmm:performer ?artist . \
+ ?artist fts:match 'fami*' . \
+ OPTIONAL { ?url nmm:musicAlbum ?album . } } } \
+ UNION \
+ { SELECT ?url as ?glob_url \
+ nie:title(?url) as ?first \
+ fn:concat(nmm:artistName(?artist),'-',nmm:albumTitle(?album)) \
+ WHERE { ?url a nmm:MusicPiece . \
+ ?url nmm:musicAlbum ?album . \
+ ?album fts:match 'fami*' . \
+ OPTIONAL { ?url nmm:performer ?artist }} } \
+ } \
+ LIMIT 100"
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 100 content items that match fts and get relevant UI info for them %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(content_manager.test_cm_06, query)
+ t.rows.append(hd.TableRow([content_manager.test_cm_06.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+class contacts (TestUpdate) :
+
+ def test_contacts_01 (self):
+
+ """
+ Time taken to get 50 contacts basic information (original).
+ @param description: Time taken to get 50 contacts basic information (original)(Bug : 176170)
+ @param expected_value:
+ @param querytype: Original
+ """
+
+ query = " \
+ SELECT \
+ ?_contact \
+ ?_Avatar_ImageUrl \
+ ?_Birthday_Birthday \
+ bound(?_Gender_Gender) AS ?_Gender_Gender_IsBound \
+ (?_Gender_Gender = nco:gender-female) AS ?_Gender_Gender_IsEqual_Female \
+ (?_Gender_Gender = nco:gender-male) AS ?_Gender_Gender_IsEqual_Male \
+ ?_Guid_Guid \
+ ?_Name_Prefix \
+ ?_Name_FirstName \
+ ?_Name_MiddleName \
+ ?_Name_LastName \
+ ?_Name_Suffix \
+ ?_Nickname_Nickname \
+ ?_Note_Note \
+ ?_Timestamp_CreationTimestamp \
+ ?_Timestamp_ModificationTimestamp \
+ WHERE \
+ { \
+ { \
+ ?_contact rdf:type nco:PersonContact . \
+ OPTIONAL { ?_contact nco:photo ?__1 . ?__1 nfo:fileUrl ?_Avatar_ImageUrl . } \
+ OPTIONAL { ?_contact nco:birthDate ?_Birthday_Birthday . } \
+ OPTIONAL { ?_contact nco:gender ?_Gender_Gender . } \
+ OPTIONAL { ?_contact nco:contactUID ?_Guid_Guid . } \
+ OPTIONAL { ?_contact nco:nameHonorificPrefix ?_Name_Prefix . } \
+ OPTIONAL { ?_contact nco:nameGiven ?_Name_FirstName . } \
+ OPTIONAL { ?_contact nco:nameAdditional ?_Name_MiddleName . } \
+ OPTIONAL { ?_contact nco:nameFamily ?_Name_LastName . } \
+ OPTIONAL { ?_contact nco:nameHonorificSuffix ?_Name_Suffix . } \
+ OPTIONAL { ?_contact nco:nickname ?_Nickname_Nickname . } \
+ OPTIONAL { ?_contact nco:note ?_Note_Note . } \
+ OPTIONAL { ?_contact nie:contentCreated ?_Timestamp_CreationTimestamp . } \
+ OPTIONAL { ?_contact nie:contentLastModified ?_Timestamp_ModificationTimestamp . } \
+ } \
+ } \
+ ORDER BY ?_contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts basic information (original) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_01, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_01.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_contacts_02 (self):
+
+ """
+ Time taken to get 50 contacts basic information (modified)
+ @param description: Time taken to get 50 contacts basic information (modified)
+ @param expected_value:
+ @param querytype: Modified
+ """
+
+ query = " \
+ SELECT \
+ ?_contact \
+ ?_Avatar_ImageUrl \
+ nco:birthDate(?_contact) \
+ bound(?_Gender_Gender) \
+ (?_Gender_Gender = nco:gender-female) \
+ (?_Gender_Gender = nco:gender-male) \
+ nco:contactUID(?_contact) \
+ nco:nameHonorificPrefix(?_contact) \
+ nco:nameGiven(?_contact) \
+ nco:nameAdditional(?_contact) \
+ nco:nameFamily(?_contact) \
+ nco:nameHonorificSuffix(?_contact) \
+ nco:nickname(?_contact) \
+ nco:note(?_contact) \
+ nie:contentCreated(?_contact) \
+ nie:contentLastModified(?_contact) \
+ WHERE \
+ { \
+ { \
+ ?_contact rdf:type nco:PersonContact . \
+ OPTIONAL { ?_contact nco:photo ?__1 . ?__1 nfo:fileUrl ?_Avatar_ImageUrl . } \
+ OPTIONAL { ?_contact nco:gender ?_Gender_Gender . } \
+ } \
+ } \
+ ORDER BY ?_contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts basic information (modified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_02, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_02.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_contacts_03 (self):
+
+ """
+ Time taken to get 50 contacts address information (original)
+ @param description: Time taken to get 50 contacts address information (original)
+ @param expected_value:
+ @param querytype: Original
+ """
+
+ query = " \
+ SELECT \
+ ?_contact \
+ ?_Address_Country \
+ ?_Address_Locality \
+ ?_Address_PostOfficeBox \
+ ?_Address_Postcode \
+ ?_Address_Region \
+ ?_Address_Street \
+ bound(?_Address_SubTypes_Domestic) AS ?_Address_SubTypes_Domestic_IsBound \
+ bound(?_Address_SubTypes_International) AS ?_Address_SubTypes_International_IsBound \
+ bound(?_Address_SubTypes_Parcel) AS ?_Address_SubTypes_Parcel_IsBound \
+ bound(?_Address_SubTypes_Postal) AS ?_Address_SubTypes_Postal_IsBound \
+ bound(?_Address_Context_Work) AS ?_Address_Context_Work_IsBound \
+ WHERE \
+ { \
+ { \
+ ?_contact rdf:type nco:PersonContact . \
+ { \
+ ?_contact nco:hasPostalAddress ?__1 . \
+ ?__1 nco:country ?_Address_Country . \
+ ?__1 nco:locality ?_Address_Locality . \
+ ?__1 nco:pobox ?_Address_PostOfficeBox . \
+ ?__1 nco:postalcode ?_Address_Postcode . \
+ ?__1 nco:region ?_Address_Region . \
+ ?__1 nco:streetAddress ?_Address_Street . \
+ OPTIONAL { \
+ ?__1 rdf:type ?_Address_SubTypes_Domestic . \
+ FILTER((?_Address_SubTypes_Domestic = nco:DomesticDeliveryAddress)) . \
+ } \
+ OPTIONAL { \
+ ?__1 rdf:type ?_Address_SubTypes_International . \
+ FILTER((?_Address_SubTypes_International = nco:InternationalDeliveryAddress)) . \
+ } \
+ OPTIONAL { \
+ ?__1 rdf:type ?_Address_SubTypes_Parcel . \
+ FILTER((?_Address_SubTypes_Parcel = nco:ParcelDeliveryAddress)) . \
+ } \
+ OPTIONAL { \
+ ?__1 rdf:type ?_Address_SubTypes_Postal . \
+ FILTER((?_Address_SubTypes_Postal = nco:PostalAddress)) . \
+ } \
+ } \
+ UNION \
+ { \
+ ?_contact nco:hasAffiliation ?_Address_Context_Work . \
+ ?_Address_Context_Work nco:hasPostalAddress ?__2 . \
+ ?__2 nco:country ?_Address_Country . \
+ ?__2 nco:locality ?_Address_Locality . \
+ ?__2 nco:pobox ?_Address_PostOfficeBox . \
+ ?__2 nco:postalcode ?_Address_Postcode . \
+ ?__2 nco:region ?_Address_Region . \
+ ?__2 nco:streetAddress ?_Address_Street . \
+ OPTIONAL { \
+ ?__2 rdf:type ?_Address_SubTypes_Domestic . \
+ FILTER((?_Address_SubTypes_Domestic = nco:DomesticDeliveryAddress)) . \
+ } \
+ OPTIONAL { \
+ ?__2 rdf:type ?_Address_SubTypes_International . \
+ FILTER((?_Address_SubTypes_International = nco:InternationalDeliveryAddress)) . \
+ } \
+ OPTIONAL { \
+ ?__2 rdf:type ?_Address_SubTypes_Parcel . \
+ FILTER((?_Address_SubTypes_Parcel = nco:ParcelDeliveryAddress)) . \
+ } \
+ OPTIONAL { \
+ ?__2 rdf:type ?_Address_SubTypes_Postal . \
+ FILTER((?_Address_SubTypes_Postal = nco:PostalAddress)) . \
+ } \
+ } \
+ } \
+ } \
+ ORDER BY ?_contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts address information (original) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_03, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_03.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_contacts_04 (self):
+
+ """
+ Time taken to get 50 contacts address information (modified)
+ @param description: Time taken to get 50 contacts address information (modified)
+ @param expected_value:
+ @param querytype: Modified
+ """
+
+ query = " \
+ SELECT \
+ ?contact \
+ nco:country(?postal) \
+ nco:locality(?postal) \
+ nco:pobox(?postal) \
+ nco:postalcode(?postal) \
+ nco:region(?postal) \
+ nco:streetAddress(?postal) \
+ bound(?work) \
+ WHERE \
+ { \
+ ?contact rdf:type nco:PersonContact . \
+ { ?contact nco:hasPostalAddress ?postal . } \
+ UNION \
+ { ?contact nco:hasAffiliation ?work . \
+ ?work nco:hasPostalAddress ?postal . \
+ } \
+ } \
+ ORDER BY ?contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts address information (modified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_04, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_04.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_contacts_05 (self):
+
+ """
+ Time taken to get 50 contacts email information (original)
+ @param description: Time taken to get 50 contacts email information (original)
+ @param expected_value:
+ @param querytype: Original
+ """
+
+
+ query = " \
+ SELECT \
+ ?_contact ?_EmailAddress ?_EmailAddress_EmailAddress \
+ bound(?_EmailAddress_Context_Work) AS ?_EmailAddress_Context_Work_IsBound \
+ WHERE \
+ { \
+ { \
+ ?_contact rdf:type nco:PersonContact . \
+ { \
+ ?_contact nco:hasEmailAddress ?_EmailAddress . \
+ ?_EmailAddress nco:emailAddress ?_EmailAddress_EmailAddress . \
+ } \
+ UNION \
+ { \
+ ?_contact nco:hasAffiliation ?_EmailAddress_Context_Work . \
+ ?_EmailAddress_Context_Work nco:hasEmailAddress ?_EmailAddress . \
+ ?_EmailAddress nco:emailAddress ?_EmailAddress_EmailAddress . \
+ } \
+ } \
+ } \
+ ORDER BY ?_contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts email information (original) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_05, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_05.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_contacts_06 (self):
+
+ """
+ Time taken to get 50 contacts email information (modified).
+ @param description: Time taken to get 50 contacts email information (modified)
+ @param expected_value:
+ @param querytype: Modified
+ """
+
+ query = " \
+ SELECT \
+ ?contact \
+ ?email \
+ nco:emailAddress(?email) \
+ bound(?work) \
+ WHERE \
+ { \
+ { \
+ ?contact rdf:type nco:PersonContact . \
+ { \
+ ?contact nco:hasEmailAddress ?email . \
+ } \
+ UNION \
+ { \
+ ?contact nco:hasAffiliation ?work . \
+ ?work nco:hasEmailAddress ?email . \
+ } \
+ } \
+ } \
+ ORDER BY ?_contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts email information (modified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_06, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_06.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_contacts_07 (self):
+
+ """
+ Time taken to get 50 contacts online information (original)
+ @param description: Time taken to get 50 contacts online information (original)
+ @param expected_value:
+ @param querytype: Original
+ """
+
+ query = " \
+ SELECT \
+ ?_contact \
+ ?_OnlineAccount \
+ ?_OnlineAccount_AccountUri \
+ ?_OnlineAccount_ServiceProvider \
+ bound(?_OnlineAccount_Capabilities) \
+ AS ?_OnlineAccount_Capabilities_IsBound \
+ (?_OnlineAccount_Capabilities = nco:im-capability-text-chat) \
+ AS ?_OnlineAccount_Capabilities_IsEqual_TextChat \
+ (?_OnlineAccount_Capabilities = nco:im-capability-media-calls) \
+ AS ?_OnlineAccount_Capabilities_IsEqual_MediaCalls \
+ (?_OnlineAccount_Capabilities = nco:im-capability-audio-calls) \
+ AS ?_OnlineAccount_Capabilities_IsEqual_AudioCalls \
+ (?_OnlineAccount_Capabilities = nco:im-capability-video-calls) \
+ AS ?_OnlineAccount_Capabilities_IsEqual_VideoCalls \
+ (?_OnlineAccount_Capabilities = nco:im-capability-upgrading-calls) \
+ AS ?_OnlineAccount_Capabilities_IsEqual_UpgradingCalls \
+ (?_OnlineAccount_Capabilities = nco:im-capability-file-transfers) \
+ AS ?_OnlineAccount_Capabilities_IsEqual_FileTransfers \
+ (?_OnlineAccount_Capabilities = nco:im-capability-stream-tubes) \
+ AS ?_OnlineAccount_Capabilities_IsEqual_StreamTubes \
+ (?_OnlineAccount_Capabilities = nco:im-capability-dbus-tubes) \
+ AS ?_OnlineAccount_Capabilities_IsEqual_DBusTubes \
+ bound(?_OnlineAccount_Context_Work) \
+ AS ?_OnlineAccount_Context_Work_IsBound \
+ WHERE \
+ { \
+ { \
+ ?_contact rdf:type nco:PersonContact . \
+ { \
+ ?_contact nco:hasIMAddress ?_OnlineAccount . \
+ ?_OnlineAccount nco:imID ?_OnlineAccount_AccountUri . \
+ ?_OnlineAccount nco:imCapability ?_OnlineAccount_Capabilities . \
+ OPTIONAL { ?_OnlineAccount_ServiceProvider nco:hasIMContact ?_OnlineAccount . } \
+ } \
+ UNION \
+ { \
+ ?_contact nco:hasAffiliation ?_OnlineAccount_Context_Work . \
+ ?_OnlineAccount_Context_Work nco:hasIMAddress ?_OnlineAccount .\
+ ?_OnlineAccount nco:imID ?_OnlineAccount_AccountUri . \
+ ?_OnlineAccount nco:imCapability ?_OnlineAccount_Capabilities . \
+ OPTIONAL { ?_OnlineAccount_ServiceProvider nco:hasIMContact ?_OnlineAccount . } \
+ } \
+ } \
+ } \
+ ORDER BY ?_contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts online information (original) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_07, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_07.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_contacts_08 (self):
+
+ """
+ Time taken to get 50 contacts online information (modified)
+ @param description: Time taken to get 50 contacts online information (modified)
+ @param expected_value:
+ @param querytype: Modified
+ """
+
+ query = " \
+ SELECT \
+ ?_contact \
+ ?_OnlineAccount \
+ ?_OnlineAccount_AccountUri \
+ ?_OnlineAccount_ServiceProvider \
+ bound(?ork) \
+ WHERE \
+ { \
+ ?_contact rdf:type nco:PersonContact . \
+ { \
+ ?_contact nco:hasIMAddress ?_OnlineAccount . \
+ ?_OnlineAccount nco:imID ?_OnlineAccount_AccountUri . \
+ OPTIONAL { ?_OnlineAccount_ServiceProvider nco:hasIMContact ?_OnlineAccount . } \
+ } \
+ UNION \
+ { \
+ ?_contact nco:hasAffiliation ?_OnlineAccount_Context_Work . \
+ ?_OnlineAccount_Context_Work nco:hasIMAddress ?_OnlineAccount . \
+ ?_OnlineAccount nco:imID ?_OnlineAccount_AccountUri . \
+ OPTIONAL { ?_OnlineAccount_ServiceProvider nco:hasIMContact ?_OnlineAccount . } \
+ } \
+ } \
+ ORDER BY ?_contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts online information (modified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_08, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_08.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_contacts_09 (self):
+
+ """
+ Time taken to get 50 contacts phone number information (original)
+ @param description: Time taken to get 50 contacts phone number information (original)
+ @param expected_value:
+ @param querytype: Original
+ """
+
+ query = " \
+ SELECT \
+ ?_contact ?_PhoneNumber ?_PhoneNumber_PhoneNumber \
+ bound(?_PhoneNumber_SubTypes_BulletinBoardSystem) AS ?_PhoneNumber_SubTypes_BulletinBoardSystem_IsBound \
+ bound(?_PhoneNumber_SubTypes_Car) AS ?_PhoneNumber_SubTypes_Car_IsBound \
+ bound(?_PhoneNumber_SubTypes_Fax) AS ?_PhoneNumber_SubTypes_Fax_IsBound \
+ bound(?_PhoneNumber_SubTypes_MessagingCapable) AS ?_PhoneNumber_SubTypes_MessagingCapable_IsBound \
+ bound(?_PhoneNumber_SubTypes_Mobile) AS ?_PhoneNumber_SubTypes_Mobile_IsBound \
+ bound(?_PhoneNumber_SubTypes_Modem) AS ?_PhoneNumber_SubTypes_Modem_IsBound \
+ bound(?_PhoneNumber_SubTypes_Pager) AS ?_PhoneNumber_SubTypes_Pager_IsBound \
+ bound(?_PhoneNumber_SubTypes_Video) AS ?_PhoneNumber_SubTypes_Video_IsBound \
+ bound(?_PhoneNumber_SubTypes_Voice) AS ?_PhoneNumber_SubTypes_Voice_IsBound \
+ bound(?_PhoneNumber_Context_Work) AS ?_PhoneNumber_Context_Work_IsBound \
+ WHERE \
+ { \
+ { \
+ ?_contact rdf:type nco:PersonContact . \
+ { \
+ ?_contact nco:hasPhoneNumber ?_PhoneNumber . \
+ ?_PhoneNumber nco:phoneNumber ?_PhoneNumber_PhoneNumber . \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_BulletinBoardSystem . \
+ FILTER((?_PhoneNumber_SubTypes_BulletinBoardSystem = nco:BbsNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Car . \
+ FILTER((?_PhoneNumber_SubTypes_Car = nco:CarPhoneNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Fax . \
+ FILTER((?_PhoneNumber_SubTypes_Fax = nco:FaxNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_MessagingCapable . \
+ FILTER((?_PhoneNumber_SubTypes_MessagingCapable = nco:MessagingNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Mobile . \
+ FILTER((?_PhoneNumber_SubTypes_Mobile = nco:CellPhoneNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Modem . \
+ FILTER((?_PhoneNumber_SubTypes_Modem = nco:ModemNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Pager . \
+ FILTER((?_PhoneNumber_SubTypes_Pager = nco:PagerNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Video . \
+ FILTER((?_PhoneNumber_SubTypes_Video = nco:VideoTelephoneNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Voice . \
+ FILTER((?_PhoneNumber_SubTypes_Voice = nco:VoicePhoneNumber)) . \
+ } \
+ } \
+ UNION \
+ { \
+ ?_contact nco:hasAffiliation ?_PhoneNumber_Context_Work . \
+ ?_PhoneNumber_Context_Work nco:hasPhoneNumber ?_PhoneNumber . \
+ ?_PhoneNumber nco:phoneNumber ?_PhoneNumber_PhoneNumber . \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_BulletinBoardSystem . \
+ FILTER((?_PhoneNumber_SubTypes_BulletinBoardSystem = nco:BbsNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Car . \
+ FILTER((?_PhoneNumber_SubTypes_Car = nco:CarPhoneNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Fax . \
+ FILTER((?_PhoneNumber_SubTypes_Fax = nco:FaxNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_MessagingCapable . \
+ FILTER((?_PhoneNumber_SubTypes_MessagingCapable = nco:MessagingNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Mobile . \
+ FILTER((?_PhoneNumber_SubTypes_Mobile = nco:CellPhoneNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Modem . \
+ FILTER((?_PhoneNumber_SubTypes_Modem = nco:ModemNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Pager . \
+ FILTER((?_PhoneNumber_SubTypes_Pager = nco:PagerNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Video . \
+ FILTER((?_PhoneNumber_SubTypes_Video = nco:VideoTelephoneNumber)) . \
+ } \
+ OPTIONAL \
+ { \
+ ?_PhoneNumber rdf:type ?_PhoneNumber_SubTypes_Voice . \
+ FILTER((?_PhoneNumber_SubTypes_Voice = nco:VoicePhoneNumber)) . \
+ } \
+ } \
+ } \
+ } \
+ ORDER BY ?_contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts phone number information (original) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_09, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_09.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_contacts_10 (self):
+
+ """
+ Time taken to get 50 contacts phone number information (modified)
+ @param description: Time taken to get 50 contacts phone number information (modified)
+ @param expected_value:
+ @param querytype: Modified
+ """
+
+ query = " \
+ SELECT \
+ ?contact \
+ ?phoneNumber \
+ nco:phoneNumber(?phoneNumber) \
+ bound(?work) \
+ WHERE \
+ { \
+ ?contact rdf:type nco:PersonContact . \
+ { \
+ ?contact nco:hasPhoneNumber ?phoneNumber . \
+ } \
+ UNION \
+ { \
+ ?contact nco:hasAffiliation ?work . \
+ ?work nco:hasPhoneNumber ?phoneNumber . \
+ } \
+ } \
+ ORDER BY ?_contact LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts phone number information (modified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_10, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_10.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_contacts_11 (self):
+
+ """
+ Time taken to get 50 contacts phone number information (modified)
+ @param description: Time taken to get 50 contacts phone number information (modified)
+ @param expected_value:
+ @param querytype:
+ """
+
+ query = " \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 contacts phone number information (modified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(contacts.test_contacts_10, query)
+ t.rows.append(hd.TableRow([contacts.test_contacts_10.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+class location (TestUpdate) :
+
+ def test_location_01 (self):
+
+ """
+ Time taken to get 50 landmarks (original).
+ @param description: Time taken to get 50 landmarks (original)
+ @param expected_value:
+ @param querytype: Original
+ """
+
+ query = " \
+ SELECT \
+ ?urn \
+ ?cLat ?cLon ?cAlt ?cRad \
+ ?nwLat ?nwLon ?nwAlt \
+ ?seLat ?seLon ?seAlt \
+ ?country ?district ?city ?street ?postalcode \
+ nie:title(?urn) \
+ nie:description(?urn) \
+ mlo:belongsToCategory(?urn) \
+ WHERE { \
+ ?urn a mlo:Landmark . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asPostalAddress \
+ [ \
+ a nco:PostalAddress ; \
+ nco:country ?country ; \
+ nco:region ?district ; \
+ nco:locality ?city ; \
+ nco:streetAddress ?street ; \
+ nco:postalcode ?postalcode \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asBoundingBox \
+ [ \
+ a mlo:GeoBoundingBox ; \
+ mlo:bbNorthWest \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?nwLat ; \
+ mlo:longitude ?nwLon ; \
+ mlo:altitude ?nwAlt \
+ ] ; \
+ mlo:bbSouthEast \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?seLat ; \
+ mlo:longitude ?seLon ; \
+ mlo:altitude ?seAlt \
+ ] \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?cLat ; \
+ mlo:longitude ?cLon \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:altitude ?cAlt \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:radius ?cRad \
+ ] \
+ ] \
+ } \
+ } ORDER BY ASC(?name) LIMIT 50 \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 landmarks (original) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(location.test_location_01, query)
+ t.rows.append(hd.TableRow([location.test_location_01.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_location_02 (self):
+
+ """
+ Time taken to get 50 landmarks within coords (original)
+ @param description: Time taken to get 50 landmarks within coords (original)
+ @param expected_value:
+ @param querytype: Original
+ """
+
+ query = " \
+ SELECT \
+ ?urn \
+ ?cLat ?cLon ?cAlt ?cRad \
+ ?nwLat ?nwLon ?nwAlt \
+ ?seLat ?seLon ?seAlt \
+ ?country ?district ?city ?street ?postalcode \
+ nie:title(?urn) \
+ nie:description(?urn) \
+ mlo:belongsToCategory(?urn) \
+ WHERE { \
+ ?urn a mlo:Landmark . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asPostalAddress \
+ [ \
+ a nco:PostalAddress ; \
+ nco:country ?country ; \
+ nco:region ?district ; \
+ nco:locality ?city ; \
+ nco:streetAddress ?street ; \
+ nco:postalcode ?postalcode \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asBoundingBox \
+ [ \
+ a mlo:GeoBoundingBox ; \
+ mlo:bbNorthWest \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?nwLat ; \
+ mlo:longitude ?nwLon ; \
+ mlo:altitude ?nwAlt \
+ ] ; \
+ mlo:bbSouthEast \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?seLat ; \
+ mlo:longitude ?seLon ; \
+ mlo:altitude ?seAlt \
+ ] \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?cLat ; \
+ mlo:longitude ?cLon \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:altitude ?cAlt \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:radius ?cRad \
+ ] \
+ ] \
+ } \
+ FILTER(?cLat >= 39.16 && ?cLat <= 40.17 && ?cLon >= 63.94 && ?cLon <= 64.96) \
+ } ORDER BY ASC(?name) LIMIT \
+ "
+
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 landmarks within coords (original) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(location.test_location_02, query)
+ t.rows.append(hd.TableRow([location.test_location_02.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_location_03 (self):
+
+ """
+ Time taken to get max 50 landmarks within certain range with bounding box (original).
+ @param description: Time taken to get max 50 landmarks within certain range with bounding box (original)
+ @param expected_value:
+ @param querytype: Original
+ """
+
+ query = " \
+ SELECT \
+ ?urn \
+ ?cLat ?cLon ?cAlt ?cRad \
+ ?nwLat ?nwLon ?nwAlt \
+ ?seLat ?seLon ?seAlt \
+ ?country ?district ?city ?street ?postalcode \
+ nie:title(?urn) \
+ nie:description(?urn) \
+ mlo:belongsToCategory(?urn) \
+ tracker:haversine-distance(xsd:double(?cLat),xsd:double(39.50),xsd:double(?cLon),xsd:double(64.50)) as ?distance \
+ WHERE { \
+ ?urn a mlo:Landmark . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asPostalAddress \
+ [ \
+ a nco:PostalAddress ; \
+ nco:country ?country ; \
+ nco:region ?district ; \
+ nco:locality ?city ; \
+ nco:streetAddress ?street ; \
+ nco:postalcode ?postalcode \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asBoundingBox \
+ [ \
+ a mlo:GeoBoundingBox ; \
+ mlo:bbNorthWest \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?nwLat ; \
+ mlo:longitude ?nwLon ; \
+ mlo:altitude ?nwAlt \
+ ] ; \
+ mlo:bbSouthEast \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?seLat ; \
+ mlo:longitude ?seLon ; \
+ mlo:altitude ?seAlt \
+ ] \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?cLat ; \
+ mlo:longitude ?cLon \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:altitude ?cAlt \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:radius ?cRad \
+ ] \
+ ] \
+ } \
+ FILTER(?cLat >= 39.16 && ?cLat <= 40.17 && \
+ ?cLon >= 63.94 && ?cLon <= 64.96 && \
+ tracker:haversine-distance(xsd:double(?cLat),xsd:double(39.50),xsd:double(?cLon),xsd:double(64.50)) <= 25000) \
+ } ORDER BY ASC(?distance) LIMIT 50 \
+ "
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get max 50 landmarks within certain range with bounding box (original) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(location.test_location_03, query)
+ t.rows.append(hd.TableRow([location.test_location_03.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_location_04 (self):
+
+ """
+ Time taken to get max 50 landmarks within certain range without bounding box (original).
+ @param description: Time taken to get max 50 landmarks within certain range without bounding box (original)
+ @param expected_value:
+ @param querytype: Original
+ """
+
+ query = " \
+ SELECT \
+ ?urn \
+ ?cLat ?cLon ?cAlt ?cRad \
+ ?nwLat ?nwLon ?nwAlt \
+ ?seLat ?seLon ?seAlt \
+ ?country ?district ?city ?street ?postalcode \
+ nie:title(?urn) \
+ nie:description(?urn) \
+ mlo:belongsToCategory(?urn) \
+ tracker:haversine-distance(xsd:double(?cLat),xsd:double(39.50),xsd:double(?cLon),xsd:double(64.50)) as ?distance \
+ WHERE { \
+ ?urn a mlo:Landmark . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asPostalAddress \
+ [ \
+ a nco:PostalAddress ; \
+ nco:country ?country ; \
+ nco:region ?district ; \
+ nco:locality ?city ; \
+ nco:streetAddress ?street ; \
+ nco:postalcode ?postalcode \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asBoundingBox \
+ [ \
+ a mlo:GeoBoundingBox ; \
+ mlo:bbNorthWest \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?nwLat ; \
+ mlo:longitude ?nwLon ; \
+ mlo:altitude ?nwAlt \
+ ] ; \
+ mlo:bbSouthEast \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?seLat ; \
+ mlo:longitude ?seLon ; \
+ mlo:altitude ?seAlt \
+ ] \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:latitude ?cLat ; \
+ mlo:longitude ?cLon \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:altitude ?cAlt \
+ ] \
+ ] \
+ } . \
+ OPTIONAL \
+ { \
+ ?urn mlo:location \
+ [ \
+ a mlo:GeoLocation ; \
+ mlo:asGeoPoint \
+ [ \
+ a mlo:GeoPoint ; \
+ mlo:radius ?cRad \
+ ] \
+ ] \
+ } \
+ FILTER(tracker:haversine-distance(xsd:double(?cLat),xsd:double(39.50),xsd:double(?cLon),xsd:double(64.50)) <= 25000) \
+ } ORDER BY ASC(?distance) LIMIT 50 \
+ "
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get max 50 landmarks within certain range without bounding box (original) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(location.test_location_04, query)
+ t.rows.append(hd.TableRow([location.test_location_04.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_location_05 (self):
+
+ """
+ Time taken to get 50 landmarks (simplified).
+ @param description: Time taken to get 50 landmarks (simplified)
+ @param expected_value: 6.42
+ @param querytype:
+ """
+
+ query = " \
+ SELECT \
+ ?urn \
+ mlo:latitude(?point) mlo:longitude(?point) mlo:altitude(?point) mlo:radius(?point) \
+ nie:title(?urn) \
+ nie:description(?urn) \
+ mlo:belongsToCategory(?urn) \
+ WHERE { \
+ ?urn a mlo:Landmark . \
+ ?urn mlo:location ?location . \
+ ?location mlo:asGeoPoint ?point . \
+ } ORDER BY ASC(?name) LIMIT 50 \
+ "
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get 50 landmarks (simplified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(location.test_location_05, query)
+ t.rows.append(hd.TableRow([location.test_location_05.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+ def test_location_06 (self):
+
+ """
+ Time taken to get max 50 landmarks within coords (simplified).
+ @param description: Time taken to get max 50 landmarks within coords (simplified)
+ @param expected_value: 0.43
+ @param querytype:
+ """
+
+ query = " \
+ SELECT \
+ ?urn \
+ ?cLat ?cLon mlo:altitude(?point) mlo:radius(?point) \
+ nie:title(?urn) \
+ nie:description(?urn) \
+ mlo:belongsToCategory(?urn) \
+ WHERE { \
+ ?urn a mlo:Landmark . \
+ ?urn mlo:location ?location . \
+ ?location mlo:asGeoPoint ?point . \
+ ?point mlo:latitude ?cLat . \
+ ?point mlo:longitude ?cLon . \
+ FILTER(?cLat >= 39.16 && ?cLat <= 40.17 && ?cLon >= 63.42 && ?cLon <= 64.96) \
+ } ORDER BY ASC(?name) LIMIT 50 \
+ "
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get max 50 landmarks within coords (simplified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(location.test_location_06, query)
+ t.rows.append(hd.TableRow([location.test_location_06.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_location_07 (self):
+
+ """
+ Time taken to get max 50 landmarks within range with bounding box (simplified).
+ @param description: Time taken to get max 50 landmarks within range with bounding box (simplified)
+ @param expected_value: 0.44
+ @param querytype:
+ """
+
+ query = " \
+ SELECT \
+ ?urn \
+ ?cLat ?cLon mlo:altitude(?point) mlo:radius(?point) \
+ nie:title(?urn) \
+ nie:description(?urn) \
+ mlo:belongsToCategory(?urn) \
+ tracker:haversine-distance(xsd:double(?cLat),xsd:double(39.50),xsd:double(?cLon),xsd:double(64.50)) as ?distance \
+ WHERE { \
+ ?urn a mlo:Landmark . \
+ ?urn mlo:location ?location . \
+ ?location mlo:asGeoPoint ?point . \
+ ?point mlo:latitude ?cLat . \
+ ?point mlo:longitude ?cLon . \
+ FILTER(?cLat >= 39.16 && ?cLat <= 40.17 && \
+ ?cLon >= 63.94 && ?cLon <= 64.96 && \
+ tracker:haversine-distance(xsd:double(?cLat),xsd:double(39.50),xsd:double(?cLon),xsd:double(64.50)) <= 25000) \
+ } ORDER BY ASC(?distance) LIMIT 50 \
+ "
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get max 50 landmarks within range with bounding box (simplified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(location.test_location_07, query)
+ t.rows.append(hd.TableRow([location.test_location_07.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+ def test_location_08 (self):
+
+ """
+ Time taken to get max 50 landmarks within range without bounding box (simplified).
+ @param description: Time taken to get max 50 landmarks within range without bounding box (simplified)
+ @param expected_value: 0.63
+ @param querytype:
+ """
+
+ query = " \
+ SELECT \
+ ?urn \
+ ?cLat ?cLon mlo:altitude(?point) mlo:radius(?point) \
+ nie:title(?urn) \
+ nie:description(?urn) \
+ mlo:belongsToCategory(?urn) \
+ tracker:haversine-distance(xsd:double(?cLat),xsd:double(39.50),xsd:double(?cLon),xsd:double(64.50)) as ?distance \
+ WHERE { \
+ ?urn a mlo:Landmark . \
+ ?urn mlo:location ?location . \
+ ?location mlo:asGeoPoint ?point . \
+ ?point mlo:latitude ?cLat . \
+ ?point mlo:longitude ?cLon . \
+ FILTER(tracker:haversine-distance(xsd:double(?cLat),xsd:double(39.50),xsd:double(?cLon),xsd:double(64.50)) <= 25000) \
+ } ORDER BY ASC(?distance) LIMIT 50 \
+ "
+ list=[]
+ for i in range ( 0, iterations ):
+ start=time.time()
+
+ result=self.resources.SparqlQuery(query)
+
+ elapse =time.time()-start
+ elapse = "%.3f" %elapse
+ print "Time taken to get max 50 landmarks within range without bounding box (simplified) %s " %elapse
+ print "no. of items retrieved: %d" %len(result)
+ list.append(elapse)
+
+ value, l=self.parsing(location.test_location_08, query)
+ t.rows.append(hd.TableRow([location.test_location_08.__name__, value[0], value[1], list, value[2], len(result), l]))
+
+
+def header(title):
+ global t
+ t=hd.Table(width='100%', col_width=('12%', '20%', '5%', '30%', '10%', '10%', '20%'))
+ doc.nodes.append(hd.Heading(size='2', heading=title))
+ t.rows.append(hd.TableRow(['Test', 'Description', 'ExpectedValue (sec)', 'ActualValue (sec)', 'Query type', 'No of items retrived', 'Query'], header=True))
+
+if __name__ == "__main__":
+
+ if not os.path.isdir("report"):
+ os.mkdir("report")
+ global iterations
+ iterations=10
+ doc=hd.HtmlDoc()
+ doc.nodes.append(hd.Heading(size='1', heading="Tracker Performance Test"))
+
+ dict={}
+ base={"email" : email, "calls": calls, "instant_messages": instant_messages, "rtcom":rtcom, "audio":audio, "gallery":gallery, "ftsmatch":ftsmatch, "content_manager":content_manager, "contacts":contacts, "location":location }
+ if len(sys.argv)==1:
+ dict=base
+ else:
+ for arg in range(1,len(sys.argv)):
+ print sys.argv[arg]
+ dict[sys.argv[arg]]=base[sys.argv[arg]]
+
+ for k, v in dict.items():
+ header(k)
+ unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromTestCase(v))
+ doc.nodes.append(t)
+
+ report=open("./perf_report.html", "a")
+ doc.toHtml(report)
+ report.close()
+
+ #unittest.main()
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]