1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#! /usr/bin/env python
import pygame, time
pygame.init()
print "Scale Test - Authors Dave Silverman and Scott Mengel"
print "Set size window to 600 x 400 px"
print "Running..."
#--------------------------------------------------------------
#CONSTANTS AND VARIABLES
make=input("How many images would you like to load?\n>")
trial=input("How many runs per trial?\n>")
sizeTo=input("What would you like to resize to? Seperate with a comma, eg: x,y\n>" )
img={}
ft="" #filetype
r=0 #frame refreshes
i=1 #cycles images
size = width, height = 600,400 #screen sizes
t=0 #trial number n
colorkey=(255, 152, 0)
ftArr=[ ["bmp","BMP16100/"] ,
["bmp","BMP16173/"] ,
["bmp","BMP16200/"] ,
["bmp","BMP16400/"] ,
["bmp","BMP24100/"] ,
["bmp","BMP24173/"] ,
["bmp","BMP24200/"] ,
["bmp","BMP24400/"] ,
["gif","GIF100/"] ,
["gif","GIF173/"] ,
["gif","GIF200/"] ,
["gif","GIF400/"] ,
["gif","GIFT100/"] ,
["gif","GIFT173/"] ,
["gif","GIFT200/"] ,
["gif","GIFT400/"] ,
["png","PNG100/"] ,
["png","PNG173/"] ,
["png","PNG200/"] ,
["png","PNG400/"] ,
["png","PNGT100/"] ,
["png","PNGT173/"] ,
["png","PNGT200/"] ,
["png","PNGT400/"] ]
screen = pygame.display.set_mode(size) #Screen Set 600x400
background = 152, 251, 152 # pale green
#23456789123456789212345678931234567894123456789512345678961234567897123456789*
# This is the beginning of the actual test loops; this program is a very rough
# learning exercise which we desire to polish to such a state that it can be
# used to accurately benchmark the XO laptop's speed capabilities
while 1:
cnt=make
ft=ftArr[t]
print "Testing: "+ft[1]+" extension "+ft[0]
trialthis=trial
start=time.time()
# This timer will reflect the time taken to load and resize images in memory
switcher = {
# This is also where we need advise regarding implementing convert()
1: pygame.transform.scale( pygame.image.load("%s2.%s"%(ft[1],ft[0])).convert(),(sizeTo[0],sizeTo[1] )),
2: pygame.transform.scale( pygame.image.load("%s3.%s"%(ft[1],ft[0])).convert(),(sizeTo[0],sizeTo[1] )),
3: pygame.transform.scale( pygame.image.load("%s4.%s"%(ft[1],ft[0])).convert(),(sizeTo[0],sizeTo[1] )),
4: pygame.transform.scale( pygame.image.load("%s5.%s"%(ft[1],ft[0])).convert(),(sizeTo[0],sizeTo[1] )),
5: pygame.transform.scale( pygame.image.load("%s6.%s"%(ft[1],ft[0])).convert(),(sizeTo[0],sizeTo[1] )),
6: pygame.transform.scale( pygame.image.load("%s7.%s"%(ft[1],ft[0])).convert(),(sizeTo[0],sizeTo[1] )),
7: pygame.transform.scale( pygame.image.load("%s8.%s"%(ft[1],ft[0])).convert(),(sizeTo[0],sizeTo[1] )),
8: pygame.transform.scale( pygame.image.load("%s9.%s"%(ft[1],ft[0])).convert(),(sizeTo[0],sizeTo[1] )),
9: pygame.transform.scale( pygame.image.load("%s1.%s"%(ft[1],ft[0])).convert(),(sizeTo[0],sizeTo[1] ))
}
print "Time taken to load this test at ",
print sizeTo
print " pixels was "
print time.time()-start
# Here ends the loading section, and hereafter we jump into the main loop
while trialthis>0:
while cnt>0:
# establish the initial state for the images of the next trial
img[cnt,0]= pygame.image.load("%s1.%s"%(ft[1],ft[0]))
img[cnt,0]= pygame.transform.scale(img[cnt,0],(sizeTo[0], sizeTo[1]))
img[cnt,1]= img[cnt,0].get_rect()
img[cnt,2]= [2,2] #speed
m=cnt*40
# Here I move images to avoid indistinguishable stacks of image rectangles
img[cnt,1]=img[cnt,1].move(m,m)
cnt=cnt-1
r=0
start=time.time()
while 1:
# This loop is the 'main event' so to speak, as it is the section that is
# measured in terms of frames per second
cnt=make # For each 'ball' icon loaded
while cnt>0: # Cycle and check if the 'ball' should bounce off the wall
print cnt
img[cnt,0]=switcher.get(i,None)
if img[cnt,1].left < 0 or img[cnt,1].right > width:
img[cnt,2]=[ -img[cnt,2][0], img[cnt,2][1] ]
if img[cnt,1].top < 0 or img[cnt,1].bottom > height:
img[cnt,2]=[ img[cnt,2][0], -img[cnt,2][1] ]
img[cnt,1] = img[cnt,1].move(img[cnt,2])
# Move the 'ball' image accordingly, plot the change
screen.blit(img[cnt,0],img[cnt,1])
cnt=cnt-1
pygame.display.flip()
# "Make it so, number two," on those changes above
i=i+1
if i>9: i=1
screen.fill(background)
r=r+1
if r>500: break
# After 500 frames, we print the average frame rate to the terminal
print 1/((time.time()-start)/r)
trialthis=trialthis-1
t=t+1
|