/
testEBFormatters.py
65 lines (51 loc) · 3.37 KB
/
testEBFormatters.py
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
import unittest
import pygsti
from .testFormatter import FormatterBaseTestCase
class EBFormatterTest(FormatterBaseTestCase):
def setUp(self):
super(EBFormatterTest, self).setUp()
self.ebLatexString1 = '\\begin{tabular}[l]{|c|}\n\\hline\n$ \\begin{array}{c} %s \\\\ \\pm %s \\end{array} $ \\\\ \\hline\n\\end{tabular}\n'
self.ebLatexString2 = '\\begin{tabular}[l]{|c|}\n\\hline\n%s \\\\ \\hline\n\\end{tabular}\n'
self.ebPrecise1 = self.ebLatexString1 % (self.arbitraryNum, self.arbitraryNum)
self.ebPrecise2 = self.ebLatexString2 % self.arbitraryNum
self.ebImprecise1 = self.ebLatexString1 % (self.roundedNum, self.roundedNum)
self.ebImprecise2 = self.ebLatexString2 % self.roundedNum
formatters = ['Normal']
self.ebtable1 = pygsti.report.table.ReportTable([(self.arbitraryNum, self.arbitraryNum)],
formatters)
self.ebtable2 = pygsti.report.table.ReportTable([(self.arbitraryNum, None)],
formatters)
def test_EB_formatter(self):
self.assertEqual(self.ebPrecise1, self.ebtable1.render('latex', precision=6)['latex'])
self.assertEqual(self.ebPrecise2, self.ebtable2.render('latex', precision=6)['latex'])
self.assertEqual(self.ebImprecise1, self.ebtable1.render('latex', precision=2)['latex'])
self.assertEqual(self.ebImprecise2, self.ebtable2.render('latex', precision=2)['latex'])
class PiEBFormatterTest(FormatterBaseTestCase):
def setUp(self):
super(PiEBFormatterTest, self).setUp()
# Constant values for checking against
self.piLatexString1 = '\\begin{tabular}[l]{|c|}\n\\hline\n$ \\begin{array}{c}(%s \\\\ \\pm %s)\\pi \\end{array} $ \\\\ \\hline\n\\end{tabular}\n'
self.piLatexString2 = '\\begin{tabular}[l]{|c|}\n\\hline\n%s$\\pi$ \\\\ \\hline\n\\end{tabular}\n'
self.piPrecise1 = self.piLatexString1 % (self.arbitraryNum, self.arbitraryNum)
self.piPrecise2 = self.piLatexString2 % self.arbitraryNum
self.piImprecise1 = self.piLatexString1 % (self.roundedNum, self.roundedNum)
self.piImprecise2 = self.piLatexString2 % self.roundedNum
formatters = ['Pi'] # Just 'Pi' should work....
self.piebtable1 = pygsti.report.table.ReportTable([(self.arbitraryNum, self.arbitraryNum)],
formatters)
self.piebtable2 = pygsti.report.table.ReportTable([(self.arbitraryNum, None)],
formatters)
# Pretend to create a confidence region that wants non markovian error bars
class MockCRI(object):
def __init__(self):
self.nonMarkRadiusSq = 1
self.piebtable3 = pygsti.report.table.ReportTable([(self.arbitraryNum, .1)],
formatters, confidenceRegionInfo=MockCRI())
def test_PiEB_formatter(self):
self.assertEqual(self.piPrecise1, self.piebtable1.render('latex', precision=6)['latex'])
self.assertEqual(self.piPrecise2, self.piebtable2.render('latex', precision=6)['latex'])
self.assertEqual(self.piImprecise1, self.piebtable1.render('latex', precision=2)['latex'])
self.assertEqual(self.piImprecise2, self.piebtable2.render('latex', precision=2)['latex'])
print(self.piebtable3.render('html', precision=6)['html'])
if __name__ == '__main__':
unittest.main(verbosity=2)