Rev 2051 | Rev 8045 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
import mathfrom math import sqrt, logdef getscore(struct):score = 0.0builtin_score = 0.0expansion_type_score = 0.0expansion_capacity_score = 0.0if 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 <= 1024:builtin_score = 0.0elif builtin < 1024*128:builtin_score = 1.0elif builtin >= 64*1024*1024 :builtin_score = 10.0else :builtin_score = log(builtin/(1024*64), 2)# REVISIT# Expansion Type : microSD-2, others-1if 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 = 10else :expansion_type_score = 0.0# Expansion Capacity : 2, 4, 8, 16, 32if features.has_key("Expansion capacity") :expansion_capacity = features.get("Expansion capacity")if len(expansion_capacity) > 0 :expansion_capacity = float(expansion_capacity[0])print "expansion_capacity=" + `expansion_capacity`if expansion_capacity < 2*1024*1024 :expansion_capacity_score = 0.0elif expansion_capacity >= 32*1024*1024 :expansion_capacity_score = 10else :expansion_capacity_score = (sqrt(32*1024*1024) - sqrt(expansion_capacity)) / (sqrt(32*1024*1024) - sqrt(2*1024)) * 10print "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)/100return score