Exemple #1
0
 def testTwoTimeSeries(self):
     '''Get a timeseries and a function and check for consistency'''
     res = dynts.parse('gs:yahoo,min(gs:yahoo,window=30)')
     self.assertEqual(res.symbols(),['GS:YAHOO'])
     self.assertEqual(len(res),2)
     self.assertEqual(str(res[0]),'GS:YAHOO')
     self.assertEqual(str(res[1]),'min(GS:YAHOO,window=30)')
Exemple #2
0
 def testSpecialSymbol2(self):
     '''Symbol can be included by character'''
     res = dynts.parse('`EURSW6M2YR_2.2`')
     names = res.symbols()
     self.assertEqual(len(names),1)
     self.assertEqual(str(res),'`EURSW6M2YR_2.2`')
     self.assertEqual(names[0],'EURSW6M2YR_2.2')
Exemple #3
0
 def testAdditionOperation(self):
     res = dynts.parse('YHOO+GOOG')
     self.assertEqual(len(res.children), 2)
     names = res.symbols()
     self.assertEqual(len(names), 2)
     self.assertEqual(names[0], str(res.left))
     self.assertEqual(names[1], str(res.right))
Exemple #4
0
 def testSpecialSymbol2(self):
     '''Symbol can be included by character'''
     res = dynts.parse('`EURSW6M2YR_2.2`')
     names = res.symbols()
     self.assertEqual(len(names), 1)
     self.assertEqual(str(res), '`EURSW6M2YR_2.2`')
     self.assertEqual(names[0], 'EURSW6M2YR_2.2')
Exemple #5
0
 def testAdditionOperation(self):
     res = dynts.parse('YHOO+GOOG')
     self.assertEqual(len(res.children),2)
     names = res.symbols()
     self.assertEqual(len(names),2)
     self.assertEqual(names[0],str(res.left))
     self.assertEqual(names[1],str(res.right))
Exemple #6
0
 def testTwoTimeSeries(self):
     '''Get a timeseries and a function and check for consistency'''
     res = dynts.parse('gs:yahoo, min(gs:yahoo, window=30)')
     self.assertEqual(res.symbols(), ['GS:YAHOO'])
     self.assertEqual(len(res), 2)
     self.assertEqual(str(res[0]), 'GS:YAHOO')
     self.assertEqual(str(res[1]), 'min(GS:YAHOO, window=30)')
Exemple #7
0
 def testTimesMinus(self):
     result = dynts.parse('EUR*-3')
     self.assertEqual(result.symbols(),['EUR'])
     self.assertEqual(len(result),2)
     self.assertEqual(str(result[0]),'EUR')
     self.assertEqual(str(result[1]),'-3')
     
Exemple #8
0
 def testOperationOrder(self):
     res = dynts.parse('2*GOOG+4*YHOO')
     self.assertEqual(len(res.children), 2)
     self.assertTrue(isinstance(res, dsl.PlusOp))
     res1 = res.children[0]
     self.assertTrue(isinstance(res1, dsl.MultiplyOp))
     res2 = res.children[1]
     self.assertTrue(isinstance(res2, dsl.MultiplyOp))
Exemple #9
0
 def testSpecialSymbol(self):
     '''Symbol can be included by character'''
     res = dynts.parse('`FX-15`+amzn')
     self.assertEqual(len(res.children),2)
     names = res.symbols()
     self.assertEqual(len(names),2)
     self.assertEqual(names[0],'FX-15')
     self.assertEqual(names[1],'AMZN')
Exemple #10
0
 def testOperationOrder(self):
     res = dynts.parse('2*GOOG+4*YHOO')
     self.assertEqual(len(res.children),2)
     self.assertTrue(isinstance(res,dsl.PlusOp))
     res1 = res.children[0]
     self.assertTrue(isinstance(res1,dsl.MultiplyOp))
     res2 = res.children[1]
     self.assertTrue(isinstance(res2,dsl.MultiplyOp))
Exemple #11
0
 def testSpecialSymbol(self):
     '''Symbol can be included by character'''
     res = dynts.parse('`FX-15`+amzn')
     self.assertEqual(len(res.children), 2)
     names = res.symbols()
     self.assertEqual(len(names), 2)
     self.assertEqual(names[0], 'FX-15')
     self.assertEqual(names[1], 'AMZN')
Exemple #12
0
    def __call__(self, args, **kwargs):
        import dynts
        expression = dynts.parse(self.composite)

        if args:
            data = dict((('X{0}'.format(n+1),ts) for n,ts in enumerate(args)))
            backend = args[0].type
            return expression.unwind(data, backend, **kwargs)
        else:
            raise ValueError
Exemple #13
0
    def __call__(self, args, **kwargs):
        import dynts
        expression = dynts.parse(self.composite)

        if args:
            data = dict(
                (('X{0}'.format(n + 1), ts) for n, ts in enumerate(args)))
            backend = args[0].type
            return expression.unwind(data, backend, **kwargs)
        else:
            raise ValueError
Exemple #14
0
 def testDataProvider(self):
     result = dynts.evaluate('2*GOOG, GOOG')
     self.assertEqual(len(result.data), 1)
     self.assertEqual(result.expression, dynts.parse('2*GOOG, GOOG'))
     data = result.ts()
     self.assertTrue(dynts.istimeseries(data))
     self.assertEqual(data.count(), 2)
     ts1 = data.serie(0)
     ts2 = data.serie(1)
     for v1, v2 in zip(ts1, ts2):
         self.assertAlmostEqual(v1, 2. * v2)
Exemple #15
0
 def testDataProvider(self):
     result = dynts.evaluate('2*GOOG,GOOG')
     self.assertEqual(len(result.data),1)
     self.assertEqual(result.expression,dynts.parse('2*GOOG,GOOG'))
     data = result.ts()
     self.assertTrue(dynts.istimeseries(data))
     self.assertEqual(data.count(),2)
     ts1 = data.serie(0)
     ts2 = data.serie(1)
     for v1,v2 in zip(ts1,ts2):
         self.assertAlmostEqual(v1,2.*v2)
Exemple #16
0
 def testBinOpSerieFunction(self):
     '''Get a timeseries and a function and check for consistency'''
     res = dynts.parse('goog:yahoo-ma(goog:yahoo, window=30)')
     self.assertEqual(res.symbols(), ['GOOG:YAHOO'])
     self.assertEqual(len(res), 2)
     self.assertEqual(str(res[0]), 'GOOG:YAHOO')
     self.assertEqual(str(res[1]), 'ma(GOOG:YAHOO, window=30)')
     result = dynts.evaluate(res)
     self.assertEqual(len(result.data), 1)
     data = result.ts()
     self.assertTrue(dynts.istimeseries(data))
     self.assertEqual(data.count(), 1)
Exemple #17
0
 def testBinOpSerieFunction(self):
     '''Get a timeseries and a function and check for consistency'''
     res = dynts.parse('goog:yahoo-ma(goog:yahoo,window=30)')
     self.assertEqual(res.symbols(),['GOOG:YAHOO'])
     self.assertEqual(len(res),2)
     self.assertEqual(str(res[0]),'GOOG:YAHOO')
     self.assertEqual(str(res[1]),'ma(GOOG:YAHOO,window=30)')
     result = dynts.evaluate(res)
     self.assertEqual(len(result.data),1)
     data = result.ts()
     self.assertTrue(dynts.istimeseries(data))
     self.assertEqual(data.count(),1)
Exemple #18
0
 def testName(self):
     for name in self.names:
         res = dynts.parse(name)
         self.assertTrue(isinstance(res, dsl.Symbol))
         self.assertEqual(name.upper(), str(res))
Exemple #19
0
 def testQuotedLinearSuperimposition(self):
     res = dynts.parse("4*`eur:rm@bla`-8*`abc:56`+4*`a-b-c:-20`")
     self.assertEqual(len(res),2)
Exemple #20
0
 def testSyntaxError2(self):
     '''Symbol can be included by character'''
     res = dynts.parse('yahoo, delta(goog')
     self.assertTrue(res.malformed())
Exemple #21
0
 def testName(self):
     for name in self.names:
         res = dynts.parse(name)
         self.assertTrue(isinstance(res,dsl.Symbol))
         self.assertEqual(name.upper(),str(res))
Exemple #22
0
 def testBinaryOperation(self):
     res = dynts.parse('2*GOOG')
     self.assertEqual(len(res.children),2)
     names = res.symbols()
     self.assertEqual(len(names),1)
     self.assertEqual(names[0],str(res.right))
Exemple #23
0
 def testQuote(self):
     res = dynts.parse('"FX-15"+amzn')
     self.assertEqual(len(res.children), 2)
     names = res.symbols()
     self.assertEqual(len(names), 1)
     self.assertEqual(names[0], str(res.right))
Exemple #24
0
 def testQuote(self):
     res = dynts.parse('"FX-15"+amzn')
     self.assertEqual(len(res.children),2)
     names = res.symbols()
     self.assertEqual(len(names),1)
     self.assertEqual(names[0],str(res.right))
Exemple #25
0
 def testSyntaxError2(self):
     '''Symbol can be included by character'''
     res = dynts.parse('yahoo,delta(goog')
     self.assertTrue(res.malformed())
Exemple #26
0
 def testBinaryOperation(self):
     res = dynts.parse('2*GOOG')
     self.assertEqual(len(res.children), 2)
     names = res.symbols()
     self.assertEqual(len(names), 1)
     self.assertEqual(names[0], str(res.right))
Exemple #27
0
 def testTimesMinus(self):
     result = dynts.parse('EUR*-3')
     self.assertEqual(result.symbols(), ['EUR'])
     self.assertEqual(len(result), 2)
     self.assertEqual(str(result[0]), 'EUR')
     self.assertEqual(str(result[1]), '-3')
Exemple #28
0
 def testQuotedLinearSuperimposition(self):
     res = dynts.parse("4*`eur:rm@bla`-8*`abc:56`+4*`a-b-c:-20`")
     self.assertEqual(len(res), 2)