Skip to content

Instantly share code, notes, and snippets.

@nakagami
Created March 12, 2015 13:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nakagami/859e0cb70ba3109d353e to your computer and use it in GitHub Desktop.
Save nakagami/859e0cb70ba3109d353e to your computer and use it in GitHub Desktop.
Test for STDDEV_POP(), STDDEV_SAMP(), VAR_POP() and VAR_SAMP() functions with Firebird3
# coding:utf-8
import unittest
import tempfile
import firebirdsql
class TestStdDev(unittest.TestCase):
host='localhost'
port=3050
user='sysdba'
password='masterkey'
def setUp(self):
self.database=tempfile.mktemp()
self.connection = firebirdsql.create_database(
host=self.host,
port=self.port,
database=self.database,
user=self.user,
password=self.password)
cur = self.connection.cursor()
cur.execute("""
create table test_stddev (
i integer,
d double precision
)
""")
self.connection.commit()
self.connection.begin()
cur = self.connection.cursor()
for i in range(10):
cur.execute("insert into test_stddev (i, d) values (?, ?)", (i+1, i+1))
self.connection.commit()
def tearDown(self):
self.connection.close()
def test_stddev_pop(self):
cur = self.connection.cursor()
cur.execute("select stddev_pop(d) from test_stddev")
self.assertEqual(cur.fetchone()[0], 2.8722813232690143)
cur.execute("select stddev_pop(i) from test_stddev")
self.assertEqual(cur.fetchone()[0], 2.8722813232690143)
def test_stddev_samp(self):
cur = self.connection.cursor()
cur.execute("select stddev_samp(d) from test_stddev")
self.assertEqual(cur.fetchone()[0], 3.0276503540974917)
cur.execute("select stddev_samp(i) from test_stddev")
self.assertEqual(cur.fetchone()[0], 3.0276503540974917)
def test_var_pop(self):
cur = self.connection.cursor()
cur.execute("select var_pop(d) from test_stddev")
self.assertEqual(cur.fetchone()[0], 8.25)
cur.execute("select var_pop(i) from test_stddev")
self.assertEqual(cur.fetchone()[0], 8.25)
def test_var_samp(self):
cur = self.connection.cursor()
cur.execute("select var_samp(d) from test_stddev")
self.assertEqual(cur.fetchone()[0], 9.166666666666666)
cur.execute("select var_samp(i) from test_stddev")
self.assertEqual(cur.fetchone()[0], 9.166666666666666)
if __name__ == "__main__":
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment