Subversion Repositories SmartDukaan

Rev

Rev 1362 | Rev 1936 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

import math
from math import sqrt


def getscore(struct):
    
    score = 0.0
    builtin_score = 0.0
    expansion_type_score = 0.0
    expansion_capacity_score = 0.0
    
    if struct.has_key("features") :
        features = struct.get("features")
    
        if features.has_key("Built-in") :
            builtin = features.get("Built-in")
            
            if len(builtin) > 0 :
                builtin = float(builtin[0])
                print "builtin=" + `builtin`
                
                if builtin <= 1 :
                    builtin_score = 0.0
                    
                elif builtin >= 16*1024 :
                    builtin_score = 10.0 
                
                else :
                    builtin_score = 10 - (sqrt(16*1024) - sqrt(builtin)) / (sqrt(16*1024) - 1) * 10 
                      
        # REVISIT
        # Expansion Type : microSD-2, others-1
        if features.has_key("Expansion type") :
            expansion_type = features.get("Expansion type")
            if len(expansion_type) > 0 :
                expansion_type = expansion_type[0]
                if expansion_type ==  "MicroSD card" :
                    expansion_type_score = 10
                else :
                    expansion_type_score = 0.0
        # Expansion Capacity : 2, 4, 8, 16, 32
        if features.has_key("Expansion capacity") :
            expansion_capacity = features.get("Expansion capacity")
            
            if len(expansion_capacity) > 0 :
                expansion_capacity = int(expansion_capacity[0])
                print "expansion_capacity=" + `expansion_capacity`
                 
                if expansion_capacity < 2*1024 :
                    expansion_capacity_score = 0.0  
                    
                elif expansion_capacity >= 32*1024 :
                    expansion_capacity_score = 10
                
                else :
                    expansion_capacity_score = (sqrt(16*1024) - sqrt(expansion_capacity)) / (sqrt(16*1024) - 1) * 10

    print "builtin_score" + `builtin_score`
    print "expansion_type_score" + `expansion_type_score`
    print "expansion_capacity_score" + `expansion_capacity_score`
    
    score = (50*builtin_score + 10*expansion_type_score + 40*expansion_capacity_score)/100
    return score