https://github.com/GPflow/GPflow
Tip revision: 445112bcb708b6ddce327577cdd9c4a76a185fdf authored by John Bradshaw on 24 October 2017, 10:52:48 UTC
Merge remote-tracking branch 'origin/GPflow-1.0-RC' into john-bradshaw/binary-class-GP
Merge remote-tracking branch 'origin/GPflow-1.0-RC' into john-bradshaw/binary-class-GP
Tip revision: 445112b
test_config.py
import unittest
import os
import tensorflow as tf
import gpflow
from gpflow.test_util import GPflowTestCase
class TestConfigParsing(GPflowTestCase):
def setUp(self):
directory = os.path.dirname(os.path.realpath(__file__))
f = os.path.join(directory, 'gpflowrc_test.txt')
self.conf = gpflow._settings.read_config_file(f)
self.settings = gpflow._settings.namedtuplify(self.conf._sections)
def test(self):
self.assertTrue(all([
self.settings.first_section.a_bool is False,
self.settings.first_section.a_float == 1e-3,
self.settings.first_section.a_string == 'hello',
self.settings.first_section.a_type is tf.float64,
self.settings.second_section.a_bool is True,
self.settings.second_section.another_bool is True,
self.settings.second_section.yet_another_bool is False]))
def test_config_not_found(self):
"""GPflow config cannot be found."""
filename = "./config_not_found.txt"
self.assertRaises(RuntimeError, gpflow._settings.read_config_file, filename)
def test_parser(self):
with self.assertRaises(ValueError):
gpflow._settings.parse(None)
with self.assertRaises(ValueError):
gpflow._settings.parse(12)
with self.assertRaises(ValueError):
gpflow._settings.parse([])
self.assertTrue(gpflow._settings.parse('false') is False)
self.assertTrue(gpflow._settings.parse('False') is False)
self.assertTrue(gpflow._settings.parse('true') is True)
self.assertTrue(gpflow._settings.parse('True') is True)
self.assertTrue(gpflow._settings.parse('int32') is tf.int32)
self.assertTrue(gpflow._settings.parse('32') is 32)
self.assertTrue(gpflow._settings.parse('32.') == 32.)
self.assertTrue(gpflow._settings.parse('int') == 'int')
self.assertTrue(gpflow._settings.parse('hello') == 'hello')
self.assertTrue(gpflow._settings.parse('1E2') == 1e2)
self.assertTrue(gpflow._settings.parse('1e-9') == 1e-9)
class TestSettingsManager(GPflowTestCase):
def testRaises(self):
with self.assertRaises(AttributeError):
gpflow.settings.undefined_setting_to_raise_error
def testMutability(self):
orig = gpflow.settings.verbosity.hmc_verb
gpflow.settings.verbosity.hmc_verb = False
self.assertTrue(gpflow.settings.verbosity.hmc_verb is False)
gpflow.settings.verbosity.hmc_verb = True
self.assertTrue(gpflow.settings.verbosity.hmc_verb is True)
gpflow.settings.verbosity.hmc_verb = orig
def testContextManager(self):
orig = gpflow.settings.verbosity.hmc_verb
gpflow.settings.verbosity.hmc_verb = True
config = gpflow.settings.get_settings()
config.verbosity.hmc_verb = False
self.assertTrue(gpflow.settings.verbosity.hmc_verb is True)
with gpflow.settings.temp_settings(config):
self.assertTrue(gpflow.settings.verbosity.hmc_verb is False)
self.assertTrue(gpflow.settings.verbosity.hmc_verb is True)
gpflow.settings.verbosity.hmc_verb = orig
if __name__ == "__main__":
unittest.main()