def test_dict(self): k = _ksk(".((`a;1;.,(`z;42));(`b;2))") a = _Ki(k['a']) self.failIf(a != 1, 'got "%s" instead of 1' % a) k['a'] = _gi(2) a = _Ki(k['a']) self.failIf(a != 2, 'got "%s" instead of 2' % a) z = _Ki(k['a.']['z']) self.failIf(z != 42, 'attribute - got %s, expected 42')
def test_ksk(self): k = _ksk("1+2") p = _Ki(k) self.failIf(p != 3, 'got %s, expected 3' % p) k = _ksk("{x+y}", _gk(self.f, self.i)) p = _Kf(k) self.failIf(p != 10.0, 'got %s, expected 10.0' % p) self.failUnlessRaises(kerr, _ksk, ')')
def testValue(self): "Test that pyk object got the value with which it was created" i=_Ki(self.i) f=_Kf(self.f) c=_Kc(self.c) s=_Ks(self.s) self.failIf(i != 5, 'assigned a value 5 but came out as %s' % i) self.failIf(f != 5.0, 'assigned a value 5.0 but came out as %s' % f) self.failIf(c != 'c', 'assigned a value \'c\' but came out as %s' % c) self.failIf(s != "abc", 'assigned a value "abc" but came out as %s' % s)
def __nonzero__(self): """returns true for non-empty composite objects, non-zero numbers, functions and non-zero characters, false for _n >>> k('_n') or k('0') or k('0.0') or k('`') or k('""') or False False >>> k('20.5') and k('"x"') and k('{}') and k('0 0 0') and k(".()") and True True """ return _Ki(_nonzero(self))
def testValue(self): "Test that pyk object got the value with which it was created" i = _Ki(self.i) f = _Kf(self.f) c = _Kc(self.c) s = _Ks(self.s) self.failIf(i != 5, 'assigned a value 5 but came out as %s' % i) self.failIf(f != 5.0, 'assigned a value 5.0 but came out as %s' % f) self.failIf(c != 'c', 'assigned a value \'c\' but came out as %s' % c) self.failIf(s != "abc", 'assigned a value "abc" but came out as %s' % s)
def testReassign(self): "Test that we can change the value of a pyk object" ki = _sKi(self.i, 10) i = _Ki(ki) kf = _sKf(self.f, 10.0) f = _Kf(kf) kc = _sKc(self.c, 'd') c = _Kc(kc) ks = _sKs(self.s, 'xyz') s = _Ks(ks) self.failIf(i != 10, 'reassigned a value 10 but came out as %s' % i) self.failIf(f != 10.0, 'reassigned a value 10.0 but came out as %s' % f) self.failIf(c != 'd', 'reassigned a value \'d\' but came out as %s' % c) self.failIf(s != "xyz", 'reassigned a value "xyz" but came out as %s' % s)
def __int__(self): return _Ki(self)
def __contains__(self, item): """ >>> 2 in k('1 2 3 4') True """ return _Ki(k('{(x?y)<#x}')(self, asK(item)))