class StatTest(unittest.TestCase): def setUp(self): self.config = { "window_size": 10 } TestUtil.write_file('config_stat.json', json.dumps(self.config)) self.srv = TestUtil.fork_process('stat', port, 'config_stat.json') try: self.cli = Stat(host, port, 'name') except: TestUtil.kill_process(self.srv) raise def tearDown(self): TestUtil.kill_process(self.srv) def test_get_client(self): self.assertTrue(isinstance(self.cli.get_client(), msgpackrpc.client.Client)) def test_get_config(self): config = self.cli.get_config() self.assertEqual(json.dumps(json.loads(config), sort_keys=True), json.dumps(self.config, sort_keys=True)) def test_sum(self): self.cli.push("sum", 1.0) self.cli.push("sum", 2.0) self.cli.push("sum", 3.0) self.cli.push("sum", 4.0) self.cli.push("sum", 5.0) self.assertEqual(self.cli.sum("sum"), 15.0) def test_stddev(self): self.cli.push("stddev", 1.0) self.cli.push("stddev", 2.0) self.cli.push("stddev", 3.0) self.cli.push("stddev", 4.0) self.cli.push("stddev", 5.0) self.assertEqual(self.cli.stddev("stddev"), sqrt(2.0)) def test_max(self): self.cli.push("max", 1.0) self.cli.push("max", 2.0) self.cli.push("max", 3.0) self.cli.push("max", 4.0) self.cli.push("max", 5.0) self.assertEqual(self.cli.max("max"), 5.0) def test_min(self): self.cli.push("min", 1.0) self.cli.push("min", 2.0) self.cli.push("min", 3.0) self.cli.push("min", 4.0) self.cli.push("min", 5.0) self.assertEqual(self.cli.min("min"), 1.0) def test_entropy(self): self.cli.push("entropy", 1.0) self.cli.push("entropy", 2.0) self.cli.push("entropy", 3.0) self.cli.push("entropy", 4.0) self.cli.push("entropy", 5.0) self.assertEqual(self.cli.entropy("entropy"), 0.0) def test_moment(self): self.cli.push("moment", 1.0) self.cli.push("moment", 2.0) self.cli.push("moment", 3.0) self.cli.push("moment", 4.0) self.cli.push("moment", 5.0) self.assertEqual(self.cli.moment("moment", 1, 1.0), 2.0) def test_save(self): self.assertEqual(self.cli.save("stat.save_test.model"), True) def test_load(self): model_name = "stat.load_test.model" self.cli.save(model_name) self.assertEqual(self.cli.load(model_name), True) def test_get_status(self): self.cli.get_status()
class StatTest(unittest.TestCase): def setUp(self): self.config = {"window_size": 10} TestUtil.write_file('config_stat.json', json.dumps(self.config)) self.srv = TestUtil.fork_process('stat', port, 'config_stat.json') try: self.cli = Stat(host, port, 'name') except: TestUtil.kill_process(self.srv) raise def tearDown(self): if self.cli: self.cli.get_client().close() TestUtil.kill_process(self.srv) def test_get_client(self): self.assertTrue( isinstance(self.cli.get_client(), msgpackrpc.client.Client)) def test_get_config(self): config = self.cli.get_config() self.assertEqual(json.dumps(json.loads(config), sort_keys=True), json.dumps(self.config, sort_keys=True)) def test_sum(self): self.cli.push("sum", 1.0) self.cli.push("sum", 2.0) self.cli.push("sum", 3.0) self.cli.push("sum", 4.0) self.cli.push("sum", 5.0) self.assertEqual(self.cli.sum("sum"), 15.0) def test_stddev(self): self.cli.push("stddev", 1.0) self.cli.push("stddev", 2.0) self.cli.push("stddev", 3.0) self.cli.push("stddev", 4.0) self.cli.push("stddev", 5.0) self.assertEqual(self.cli.stddev("stddev"), sqrt(2.0)) def test_max(self): self.cli.push("max", 1.0) self.cli.push("max", 2.0) self.cli.push("max", 3.0) self.cli.push("max", 4.0) self.cli.push("max", 5.0) self.assertEqual(self.cli.max("max"), 5.0) def test_min(self): self.cli.push("min", 1.0) self.cli.push("min", 2.0) self.cli.push("min", 3.0) self.cli.push("min", 4.0) self.cli.push("min", 5.0) self.assertEqual(self.cli.min("min"), 1.0) def test_entropy(self): self.cli.push("entropy", 1.0) self.cli.push("entropy", 2.0) self.cli.push("entropy", 3.0) self.cli.push("entropy", 4.0) self.cli.push("entropy", 5.0) self.assertEqual(self.cli.entropy("entropy"), 0.0) def test_moment(self): self.cli.push("moment", 1.0) self.cli.push("moment", 2.0) self.cli.push("moment", 3.0) self.cli.push("moment", 4.0) self.cli.push("moment", 5.0) self.assertEqual(self.cli.moment("moment", 1, 1.0), 2.0) def test_save(self): self.assertEqual(len(self.cli.save("stat.save_test.model")), 1) def test_load(self): model_name = "stat.load_test.model" self.cli.save(model_name) self.assertEqual(self.cli.load(model_name), True) def test_get_status(self): self.cli.get_status()
# -*- coding: utf-8 -*- import sys from jubatus.stat.client import Stat NAME = "stat_tri" if __name__ == '__main__': # 1. Jubatus Serverへの接続設定 stat = Stat("127.0.0.1", 9199, NAME) # 2. 学習用データの準備 for line in open('../dat/fruit.csv'): fruit, diameter, weight, price = line[:-1].split(',') # 3. データの学習(学習モデルの更新) stat.push(fruit + "dia", float(diameter)) stat.push(fruit + "wei", float(weight)) stat.push(fruit + "pri", float(price)) # 4. 結果の出力 for fr in ["orange", "apple", "melon"]: for par in ["dia", "wei", "pri"]: print "sum :", fr + par, stat.sum(fr + par) print "sdv :", fr + par, stat.stddev(fr + par) print "max :", fr + par, stat.max(fr + par) print "min :", fr + par, stat.min(fr + par) print "ent :", fr + par, stat.entropy(fr + par) print "mmt :", fr + par, stat.moment(fr + par, 1, 0.0)
# -*- coding: utf-8 -*- import sys from jubatus.stat.client import Stat NAME = "stat_tri"; if __name__ == '__main__': # 1. Jubatus Serverへの接続設定 stat = Stat("127.0.0.1", 9199, NAME) # 2. 学習用データの準備 for line in open('../dat/fruit.csv'): fruit, diameter, weight , price = line[:-1].split(',') # 3. データの学習(学習モデルの更新) stat.push(fruit + "dia", float(diameter)) stat.push(fruit + "wei", float(weight)) stat.push(fruit + "pri", float(price)) # 4. 結果の出力 for fr in ["orange", "apple","melon"]: for par in ["dia","wei", "pri"]: print("sum :", fr + par,stat.sum(fr + par)) print("sdv :", fr + par,stat.stddev(fr + par)) print("max :", fr + par,stat.max(fr + par)) print("min :", fr + par,stat.min(fr + par)) print("ent :", fr + par,stat.entropy(fr + par)) print("mmt :", fr + par,stat.moment(fr + par, 1, 0.0))