Subversion Repositories SmartDukaan

Rev

Rev 7973 | Rev 8024 | 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
2655 rajveer 11
 
2663 rajveer 12
    category = struct.get("category")
2655 rajveer 13
    max_screen_size = 5
14
    min_screen_size = 1.5
15
    max_resolution = 409920
16
    min_resolution = 16384
17
 
18
    if category == "Tablets":
19
        max_screen_size = 10
20
        min_screen_size = 5
21
        max_resolution = 1024000
22
        min_resolution = 200000
23
 
78 naveen 24
    if struct.has_key("features") :
25
        features = struct.get("features")
26
 
27
        # Screen Size : <=2 - 1, <=2.5 - 2, > 2.5 - 3
1915 rajveer 28
        if features.has_key("Screen size") :
29
            ss = features.get("Screen size")
78 naveen 30
 
31
            if len(ss) > 0 :
32
                ss = ss[0]
33
                ss = float(ss)
1915 rajveer 34
                print "Screen Size=" + `ss`
78 naveen 35
 
2655 rajveer 36
                if  ss >= max_screen_size :
1915 rajveer 37
                    screen_size_score = 10
78 naveen 38
 
2655 rajveer 39
                elif  ss <= min_screen_size :
1915 rajveer 40
                    screen_size_score = 0
78 naveen 41
 
1915 rajveer 42
                else :
2655 rajveer 43
                    screen_size_score = ((ss**2) - (min_screen_size**2))/((max_screen_size**2) - (min_screen_size**2))*10
78 naveen 44
 
45
        # Resolution : 320x240 px - 1, 480x360 px - 2
46
        if features.has_key("Resolution") :
47
            res = features.get("Resolution")
48
 
49
            if len(res) > 1 :
50
                width = int(res[0])
51
                height = int(res[1])
1915 rajveer 52
                area = height * width
78 naveen 53
                print "width=" + `width`
54
                print "height=" + `height`
55
 
2655 rajveer 56
                if  area < min_resolution :
1915 rajveer 57
                    screen_resolution_score = 0
78 naveen 58
 
2655 rajveer 59
                elif  area >= max_resolution :
1915 rajveer 60
                    screen_resolution_score = 10
61
 
62
                else :
2655 rajveer 63
                    screen_resolution_score = (area - min_resolution) / (max_resolution - min_resolution) * 10
1915 rajveer 64
 
78 naveen 65
        # Number of Colors : 64 K - 0.5, 256 K - 1, 16 M - 1.5, 4 B - 2
1915 rajveer 66
        if features.has_key("Number of colors") :
67
            nfcs = features.get("Number of colors")
78 naveen 68
 
69
            if len(nfcs) > 0 :
70
                nfcs = nfcs[0]
71
 
1915 rajveer 72
                if nfcs == "64 K" :
73
                    number_of_colors_score = 2
2201 rajveer 74
 
75
                if nfcs == "65 K" :
76
                    number_of_colors_score = 2
1915 rajveer 77
 
78
                elif nfcs == "256 K" :
79
                    number_of_colors_score = 6
2201 rajveer 80
 
81
                elif nfcs == "262 K" :
82
                    number_of_colors_score = 6.5
83
 
1915 rajveer 84
                elif nfcs == "16 M" :
85
                    number_of_colors_score = 9
86
 
87
                elif nfcs == "4 B" :
88
                    number_of_colors_score = 10
89
 
90
        # Type :
91
        '''
92
            Super AMOLED   10
93
            AMOLED         8
94
            OLED           6
95
            TFT LCD        6
96
            CSTN LCD       4
97
            STN LCD        2
98
        '''
78 naveen 99
 
100
        if features.has_key("Type") :
101
            type = features.get("Type")
1915 rajveer 102
            print type
78 naveen 103
            if len(type) > 0 :
104
                type = type[0]
1915 rajveer 105
                #print "Type=" + type
106
 
5244 amit.gupta 107
                if type == "HD Super AMOLED" :
108
                    type_score = 10
5245 amit.gupta 109
                elif type == "Super AMOLED Plus" :
5244 amit.gupta 110
                    type_score = 9.5
2302 rajveer 111
                elif type == "Retina Display":
5244 amit.gupta 112
                    type_score = 9
2302 rajveer 113
                elif type == "Nova Display":
5244 amit.gupta 114
                    type_score = 8.5                        
5632 amit.gupta 115
                elif type == "Ultra AMOLED" :
116
                    type_score = 8
2051 rajveer 117
                elif type == "Super AMOLED" :
5244 amit.gupta 118
                    type_score = 8
5472 amit.gupta 119
                elif type == "Super IPS LCD 2":
120
                    type_score = 8                   
2150 rajveer 121
                elif type == "Super Clear LCD":
5244 amit.gupta 122
                    type_score = 7.5
2150 rajveer 123
                elif type == "Super LCD":
5244 amit.gupta 124
                    type_score = 7.5                   
2302 rajveer 125
                elif type == "AMOLED":
5244 amit.gupta 126
                    type_score = 7.0
1915 rajveer 127
                elif type == "OLED" :
5244 amit.gupta 128
                    type_score = 5.5
1915 rajveer 129
                elif type == "TFT LCD" :
5244 amit.gupta 130
                    type_score = 5.5
1915 rajveer 131
                elif type == "CSTN LCD" :
5244 amit.gupta 132
                    type_score = 3.5
1915 rajveer 133
                elif type == "STN LCD" :
134
                    type_score = 2
6485 amit.gupta 135
                elif type == "IPS LCD" :
136
                    type_score = 7.0
6320 amit.gupta 137
                elif type == "True HD IPS Plus":
138
                    type_score = 8                   
6523 amit.gupta 139
                elif type == "Super LCD 3":
140
                    type_score = 8.5                   
2655 rajveer 141
 
142
                if category == "Tablets":
6485 amit.gupta 143
                    if type == "IPS LCD":
144
                        type_score = 9.0
2655 rajveer 145
                    if type == "TFT LCD" :
146
                        type_score = 8.5
2656 rajveer 147
                    elif type == "Super LCD":
6320 amit.gupta 148
                        type_score = 9.5
2656 rajveer 149
 
1915 rajveer 150
 
2150 rajveer 151
 
1915 rajveer 152
    print "type_score" + str(type_score)
153
    print "screen_size_score: " + str(screen_size_score)
154
    print "screen_resolution_score"  + str(screen_resolution_score)
155
    print "number_of_colors_score" + str(number_of_colors_score)
156
 
157
 
1927 rajveer 158
    score = (type_score * 30.0 + screen_size_score * 50.0 + screen_resolution_score * 15.0 + number_of_colors_score * 5.0)/100
1915 rajveer 159
    return score