Subversion Repositories SmartDukaan

Rev

Rev 2201 | Rev 2655 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
78 naveen 1
import math
2
 
71 naveen 3
def getscore(struct):
77 naveen 4
 
78 naveen 5
    score = 0.0
77 naveen 6
 
1915 rajveer 7
    type_score = 0.0
8
    screen_size_score = 0.0
9
    screen_resolution_score = 0.0
10
    number_of_colors_score = 0.0
11
 
78 naveen 12
    if struct.has_key("features") :
13
        features = struct.get("features")
14
 
15
        # Screen Size : <=2 - 1, <=2.5 - 2, > 2.5 - 3
1915 rajveer 16
        if features.has_key("Screen size") :
17
            ss = features.get("Screen size")
78 naveen 18
 
19
            if len(ss) > 0 :
20
                ss = ss[0]
21
                ss = float(ss)
1915 rajveer 22
                print "Screen Size=" + `ss`
78 naveen 23
 
1915 rajveer 24
                if  ss >= 5 :
25
                    screen_size_score = 10
78 naveen 26
 
1915 rajveer 27
                elif  ss <= 1.5 :
28
                    screen_size_score = 0
78 naveen 29
 
1915 rajveer 30
                else :
31
                    screen_size_score = ((ss**2) - (1.5**2))/((5**2) - (1.5**2))*10
78 naveen 32
 
33
        # Resolution : 320x240 px - 1, 480x360 px - 2
34
        if features.has_key("Resolution") :
35
            res = features.get("Resolution")
36
 
37
            if len(res) > 1 :
38
                width = int(res[0])
39
                height = int(res[1])
1915 rajveer 40
                area = height * width
78 naveen 41
                print "width=" + `width`
42
                print "height=" + `height`
43
 
1915 rajveer 44
                if  area < 16384 :
45
                    screen_resolution_score = 0
78 naveen 46
 
1915 rajveer 47
                elif  area >= 409920 :
48
                    screen_resolution_score = 10
49
 
50
                else :
51
                    screen_resolution_score = (area - 16384) / (409920 - 16384) * 10
52
 
78 naveen 53
        # Number of Colors : 64 K - 0.5, 256 K - 1, 16 M - 1.5, 4 B - 2
1915 rajveer 54
        if features.has_key("Number of colors") :
55
            nfcs = features.get("Number of colors")
78 naveen 56
 
57
            if len(nfcs) > 0 :
58
                nfcs = nfcs[0]
59
 
1915 rajveer 60
                if nfcs == "64 K" :
61
                    number_of_colors_score = 2
2201 rajveer 62
 
63
                if nfcs == "65 K" :
64
                    number_of_colors_score = 2
1915 rajveer 65
 
66
                elif nfcs == "256 K" :
67
                    number_of_colors_score = 6
2201 rajveer 68
 
69
                elif nfcs == "262 K" :
70
                    number_of_colors_score = 6.5
71
 
1915 rajveer 72
                elif nfcs == "16 M" :
73
                    number_of_colors_score = 9
74
 
75
                elif nfcs == "4 B" :
76
                    number_of_colors_score = 10
77
 
78
        # Type :
79
        '''
80
            Super AMOLED   10
81
            AMOLED         8
82
            OLED           6
83
            TFT LCD        6
84
            CSTN LCD       4
85
            STN LCD        2
86
        '''
78 naveen 87
 
88
        if features.has_key("Type") :
89
            type = features.get("Type")
1915 rajveer 90
            print type
78 naveen 91
            if len(type) > 0 :
92
                type = type[0]
1915 rajveer 93
                #print "Type=" + type
94
 
2051 rajveer 95
                if type == "Super AMOLED Plus" :
1915 rajveer 96
                    type_score = 10
2302 rajveer 97
                elif type == "Retina Display":
98
                    type_score = 9.5
99
                elif type == "Nova Display":
100
                    type_score = 9                        
2051 rajveer 101
                elif type == "Super AMOLED" :
2302 rajveer 102
                    type_score = 8.5
2150 rajveer 103
                elif type == "Super Clear LCD":
2302 rajveer 104
                    type_score = 8.0
2150 rajveer 105
                elif type == "Super LCD":
2302 rajveer 106
                    type_score = 8.0                   
107
                elif type == "AMOLED":
108
                    type_score = 7.5
1915 rajveer 109
                elif type == "OLED" :
110
                    type_score = 6
111
                elif type == "TFT LCD" :
112
                    type_score = 6
113
                elif type == "CSTN LCD" :
114
                    type_score = 4
115
                elif type == "STN LCD" :
116
                    type_score = 2
77 naveen 117
 
1915 rajveer 118
 
2150 rajveer 119
 
120
 
1915 rajveer 121
    print "type_score" + str(type_score)
122
    print "screen_size_score: " + str(screen_size_score)
123
    print "screen_resolution_score"  + str(screen_resolution_score)
124
    print "number_of_colors_score" + str(number_of_colors_score)
125
 
126
 
1927 rajveer 127
    score = (type_score * 30.0 + screen_size_score * 50.0 + screen_resolution_score * 15.0 + number_of_colors_score * 5.0)/100
1915 rajveer 128
    return score