from pySVM import * import sys SV=SparseVector v = SV() v[0]=1.0 v[10]=2.0 w = SV([0, -1.0, 0, 0, 0, 0, 0, 0, 0, 0, -2.0, 0]) w[1]=-1.0 w[10]=-2.0 diff = v+w - SV([1.0, -1.0]) if diff.entries() != 0: sys.exit(1) if diff: sys.exit(1) if v.lastIndex() != 10: sys.exit(1) if v.entries() != 2: sys.exit(1) n = v.norm() if abs(n*n-v*v)>.0001: sys.exit(1) sum=0 fun = lambda x: 1.0 -x ww = v.map(fun) itx = iter(ww) del ww for x in itx: sum += x[0] if sum != 10: sys.exit(1) v2 = SV() v2[1] = 1.0 v2[11] = 2.0 if v*v2 != 0.0: sys.exit(1) if 2.0*v-v.map(lambda x: 2.0*x) : sys.exit(1) if v-v: sys.exit(1) if v/v2 or v2/v: sys.exit(1) w = v*2 # // w *= .5 w = w*.5 if w + (-v): sys.exit(1) sum = 0 for x in AnyIter(v,v2): sum += x[0] if sum != 22: sys.exit(1) for x in BothIter(v,v2): sys.exit(1) sum = 0 for x in FullIter(v,v2): sum += x[0] if sum != 66: sys.exit(1) if abs(norm(v)*norm(v) -dot(v,v)) > .001: sys.exit(1) lx= [ x[1] for x in v if x[1]] if len(lx) != 2: sys.exit(1)