Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
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)
Exemplo n.º 4
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))