File: test_formulas.py

package info (click to toggle)
python-xlrd 2.0.1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,832 kB
  • sloc: python: 7,531; makefile: 118; sh: 7
file content (81 lines) | stat: -rw-r--r-- 2,173 bytes parent folder | download
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'")