1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
# -*- coding: utf-8 -*-
# Portions Copyright (C) 2010, Manfred Moitzi under a BSD licence
from unittest import TestCase
import xlrd
from .helpers import from_sample
try:
ascii
except NameError:
# For Python 2
def ascii(s):
a = repr(s)
if a.startswith(('u"', "u'")):
a = a[1:]
return a
class TestFormulas(TestCase):
def setUp(self):
book = xlrd.open_workbook(from_sample('formula_test_sjmachin.xls'))
self.sheet = book.sheet_by_index(0)
def get_value(self, col, row):
return ascii(self.sheet.col_values(col)[row])
def test_cell_B2(self):
self.assertEqual(
self.get_value(1, 1),
r"'\u041c\u041e\u0421\u041a\u0412\u0410 \u041c\u043e\u0441\u043a\u0432\u0430'",
)
def test_cell_B3(self):
self.assertEqual(self.get_value(1, 2), '0.14285714285714285')
def test_cell_B4(self):
self.assertEqual(self.get_value(1, 3), "'ABCDEF'")
def test_cell_B5(self):
self.assertEqual(self.get_value(1, 4), "''")
def test_cell_B6(self):
self.assertEqual(self.get_value(1, 5), '1')
def test_cell_B7(self):
self.assertEqual(self.get_value(1, 6), '7')
def test_cell_B8(self):
self.assertEqual(
self.get_value(1, 7),
r"'\u041c\u041e\u0421\u041a\u0412\u0410 \u041c\u043e\u0441\u043a\u0432\u0430'",
)
class TestNameFormulas(TestCase):
def setUp(self):
book = xlrd.open_workbook(from_sample('formula_test_names.xls'))
self.sheet = book.sheet_by_index(0)
def get_value(self, col, row):
return ascii(self.sheet.col_values(col)[row])
def test_unaryop(self):
self.assertEqual(self.get_value(1, 1), '-7.0')
def test_attrsum(self):
self.assertEqual(self.get_value(1, 2), '4.0')
def test_func(self):
self.assertEqual(self.get_value(1, 3), '6.0')
def test_func_var_args(self):
self.assertEqual(self.get_value(1, 4), '3.0')
def test_if(self):
self.assertEqual(self.get_value(1, 5), "'b'")
def test_choose(self):
self.assertEqual(self.get_value(1, 6), "'C'")
|