These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			563 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			563 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from pybench import Test
 | |
| from string import join
 | |
| 
 | |
| class ConcatStrings(Test):
 | |
| 
 | |
|     version = 2.0
 | |
|     operations = 10 * 5
 | |
|     rounds = 100000
 | |
| 
 | |
|     def test(self):
 | |
| 
 | |
|         # Make sure the strings are *not* interned
 | |
|         s = join(map(str,range(100)))
 | |
|         t = join(map(str,range(1,101)))
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
|             t + s
 | |
| 
 | |
|     def calibrate(self):
 | |
| 
 | |
|         s = join(map(str,range(100)))
 | |
|         t = join(map(str,range(1,101)))
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
|             pass
 | |
| 
 | |
| 
 | |
| class CompareStrings(Test):
 | |
| 
 | |
|     version = 2.0
 | |
|     operations = 10 * 5
 | |
|     rounds = 200000
 | |
| 
 | |
|     def test(self):
 | |
| 
 | |
|         # Make sure the strings are *not* interned
 | |
|         s = join(map(str,range(10)))
 | |
|         t = join(map(str,range(10))) + "abc"
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t < s
 | |
|             t > s
 | |
|             t == s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|     def calibrate(self):
 | |
| 
 | |
|         s = join(map(str,range(10)))
 | |
|         t = join(map(str,range(10))) + "abc"
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
|             pass
 | |
| 
 | |
| 
 | |
| class CompareInternedStrings(Test):
 | |
| 
 | |
|     version = 2.0
 | |
|     operations = 10 * 5
 | |
|     rounds = 300000
 | |
| 
 | |
|     def test(self):
 | |
| 
 | |
|         # Make sure the strings *are* interned
 | |
|         s = intern(join(map(str,range(10))))
 | |
|         t = s
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|             t == s
 | |
|             t == s
 | |
|             t >= s
 | |
|             t > s
 | |
|             t < s
 | |
| 
 | |
|     def calibrate(self):
 | |
| 
 | |
|         s = intern(join(map(str,range(10))))
 | |
|         t = s
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
|             pass
 | |
| 
 | |
| 
 | |
| class CreateStringsWithConcat(Test):
 | |
| 
 | |
|     version = 2.0
 | |
|     operations = 10 * 5
 | |
|     rounds = 200000
 | |
| 
 | |
|     def test(self):
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
|             s = 'om'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|             s = s + 'xax'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|             s = s + 'xax'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|             s = s + 'xax'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|             s = s + 'xax'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|             s = s + 'xax'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|             s = s + 'xax'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|             s = s + 'xax'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|             s = s + 'xax'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|             s = s + 'xax'
 | |
|             s = s + 'xbx'
 | |
|             s = s + 'xcx'
 | |
|             s = s + 'xdx'
 | |
|             s = s + 'xex'
 | |
| 
 | |
|     def calibrate(self):
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
|             pass
 | |
| 
 | |
| 
 | |
| class StringSlicing(Test):
 | |
| 
 | |
|     version = 2.0
 | |
|     operations = 5 * 7
 | |
|     rounds = 160000
 | |
| 
 | |
|     def test(self):
 | |
| 
 | |
|         s = join(map(str,range(100)))
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
| 
 | |
|             s[50:]
 | |
|             s[:25]
 | |
|             s[50:55]
 | |
|             s[-1:]
 | |
|             s[:1]
 | |
|             s[2:]
 | |
|             s[11:-11]
 | |
| 
 | |
|             s[50:]
 | |
|             s[:25]
 | |
|             s[50:55]
 | |
|             s[-1:]
 | |
|             s[:1]
 | |
|             s[2:]
 | |
|             s[11:-11]
 | |
| 
 | |
|             s[50:]
 | |
|             s[:25]
 | |
|             s[50:55]
 | |
|             s[-1:]
 | |
|             s[:1]
 | |
|             s[2:]
 | |
|             s[11:-11]
 | |
| 
 | |
|             s[50:]
 | |
|             s[:25]
 | |
|             s[50:55]
 | |
|             s[-1:]
 | |
|             s[:1]
 | |
|             s[2:]
 | |
|             s[11:-11]
 | |
| 
 | |
|             s[50:]
 | |
|             s[:25]
 | |
|             s[50:55]
 | |
|             s[-1:]
 | |
|             s[:1]
 | |
|             s[2:]
 | |
|             s[11:-11]
 | |
| 
 | |
|     def calibrate(self):
 | |
| 
 | |
|         s = join(map(str,range(100)))
 | |
| 
 | |
|         for i in xrange(self.rounds):
 | |
|             pass
 | |
| 
 | |
| ### String methods
 | |
| 
 | |
| if hasattr('', 'lower'):
 | |
| 
 | |
|     class StringMappings(Test):
 | |
| 
 | |
|         version = 2.0
 | |
|         operations = 3 * (5 + 4 + 2 + 1)
 | |
|         rounds = 70000
 | |
| 
 | |
|         def test(self):
 | |
| 
 | |
|             s = join(map(chr,range(20)),'')
 | |
|             t = join(map(chr,range(50)),'')
 | |
|             u = join(map(chr,range(100)),'')
 | |
|             v = join(map(chr,range(256)),'')
 | |
| 
 | |
|             for i in xrange(self.rounds):
 | |
| 
 | |
|                 s.lower()
 | |
|                 s.lower()
 | |
|                 s.lower()
 | |
|                 s.lower()
 | |
|                 s.lower()
 | |
| 
 | |
|                 s.upper()
 | |
|                 s.upper()
 | |
|                 s.upper()
 | |
|                 s.upper()
 | |
|                 s.upper()
 | |
| 
 | |
|                 s.title()
 | |
|                 s.title()
 | |
|                 s.title()
 | |
|                 s.title()
 | |
|                 s.title()
 | |
| 
 | |
|                 t.lower()
 | |
|                 t.lower()
 | |
|                 t.lower()
 | |
|                 t.lower()
 | |
| 
 | |
|                 t.upper()
 | |
|                 t.upper()
 | |
|                 t.upper()
 | |
|                 t.upper()
 | |
| 
 | |
|                 t.title()
 | |
|                 t.title()
 | |
|                 t.title()
 | |
|                 t.title()
 | |
| 
 | |
|                 u.lower()
 | |
|                 u.lower()
 | |
| 
 | |
|                 u.upper()
 | |
|                 u.upper()
 | |
| 
 | |
|                 u.title()
 | |
|                 u.title()
 | |
| 
 | |
|                 v.lower()
 | |
| 
 | |
|                 v.upper()
 | |
| 
 | |
|                 v.title()
 | |
| 
 | |
|         def calibrate(self):
 | |
| 
 | |
|             s = join(map(chr,range(20)),'')
 | |
|             t = join(map(chr,range(50)),'')
 | |
|             u = join(map(chr,range(100)),'')
 | |
|             v = join(map(chr,range(256)),'')
 | |
| 
 | |
|             for i in xrange(self.rounds):
 | |
|                 pass
 | |
| 
 | |
|     class StringPredicates(Test):
 | |
| 
 | |
|         version = 2.0
 | |
|         operations = 10 * 7
 | |
|         rounds = 100000
 | |
| 
 | |
|         def test(self):
 | |
| 
 | |
|             data = ('abc', '123', '   ', '\xe4\xf6\xfc', '\xdf'*10)
 | |
|             len_data = len(data)
 | |
| 
 | |
|             for i in xrange(self.rounds):
 | |
|                 s = data[i % len_data]
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|                 s.isalnum()
 | |
|                 s.isalpha()
 | |
|                 s.isdigit()
 | |
|                 s.islower()
 | |
|                 s.isspace()
 | |
|                 s.istitle()
 | |
|                 s.isupper()
 | |
| 
 | |
|         def calibrate(self):
 | |
| 
 | |
|             data = ('abc', '123', '   ', '\u1234\u2345\u3456', '\uFFFF'*10)
 | |
|             data = ('abc', '123', '   ', '\xe4\xf6\xfc', '\xdf'*10)
 | |
|             len_data = len(data)
 | |
| 
 | |
|             for i in xrange(self.rounds):
 | |
|                 s = data[i % len_data]
 |