def testConversionToK(self): ik = _arraytok(self.ia) fk = _arraytok(self.fa) sk = _arraytok(self.sa) self.failUnlessEqual(_ktoarray(ik), self.ia, "integer list") self.failUnlessEqual(_ktoarray(fk), self.fa, "double list") self.failUnlessEqual(_ktoarray(sk), self.sa, "symbol list")
def testConversionFromK(self): ika = _ktoarray(self.ik) fka = _ktoarray(self.fk) ska = _ktoarray(self.sk) self.failUnlessEqual(ika, self.ia, "integer list") self.failUnlessEqual(ika.typecode(), self.ia.typecode(), "integer list type") self.failUnlessEqual(fka, self.fa, "double list") self.failUnlessEqual(fka.typecode(), self.fa.typecode(), "double list type") self.failUnlessEqual(ska, self.sa, "symbol list") self.failUnlessEqual(ska.typecode(), self.sa.typecode(), "symbol list type")
def __array__(self, typecode=None): """Special hook for Numeric. Converts to Numeric if possible. >>> from Numeric import asarray >>> x = k("1 2 3 4 5 6") >>> asarray(x) array([1, 2, 3, 4, 5, 6]) Note that data is not copied in conversion and the resulting numeric array refers to the same data as the original K object. >>> asarray(x)[0] = 42 >>> print x 42 2 3 4 5 6 """ a = _ktoarray(self) if typecode is None: return a return a.astype(typecode)
def __array__ (self, typecode = None): """Special hook for Numeric. Converts to Numeric if possible. >>> from Numeric import asarray >>> x = k("1 2 3 4 5 6") >>> asarray(x) array([1, 2, 3, 4, 5, 6]) Note that data is not copied in conversion and the resulting numeric array refers to the same data as the original K object. >>> asarray(x)[0] = 42 >>> print x 42 2 3 4 5 6 """ a = _ktoarray(self) if typecode is None: return a return a.astype(typecode)
def testDataSharing(self): ika = _ktoarray(self.ik) ika[0] = 3 ikb = _ktoarray(self.ik) self.failUnlessEqual(ikb[0], 3, "integer")
def testDictionaryConversionFromK(self): # just test that we don't crash for now d = _ksk('.((`a; 1;);(`b; 2;.,(`c;4)))') a = _ktoarray(_ktoarray(d)[1])