From 023bb8107234bf85fefe5de222cc7e2014c4a320 Mon Sep 17 00:00:00 2001 From: Quoc-Tuan Truong <tuantq.vnu@gmail.com> Date: Thu, 20 Dec 2018 17:56:29 +0800 Subject: [PATCH] Add tests for base_strategy and ratio_split --- cornac/eval_strategies/tests/__init__.py | 0 .../tests/test_base_strategy.py | 34 +++++++++++++ .../eval_strategies/tests/test_ratio_split.py | 49 +++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 cornac/eval_strategies/tests/__init__.py create mode 100644 cornac/eval_strategies/tests/test_base_strategy.py create mode 100644 cornac/eval_strategies/tests/test_ratio_split.py diff --git a/cornac/eval_strategies/tests/__init__.py b/cornac/eval_strategies/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/cornac/eval_strategies/tests/test_base_strategy.py b/cornac/eval_strategies/tests/test_base_strategy.py new file mode 100644 index 00000000..67963136 --- /dev/null +++ b/cornac/eval_strategies/tests/test_base_strategy.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- + +""" +@author: Quoc-Tuan Truong <tuantq.vnu@gmail.com> +""" + +from ..base_strategy import BaseStrategy + + +def test_init(): + bs = BaseStrategy(None, verbose=True) + + assert not bs.exclude_unknowns + assert 1. == bs.rating_threshold + + +def test_trainset_none(): + bs = BaseStrategy(None, verbose=True) + + try: + bs.evaluate(None, {}, False) + except ValueError: + assert True + + +def test_testset_none(): + bs = BaseStrategy(None, train_set=[], verbose=True) + + try: + bs.evaluate(None, {}, False) + except ValueError: + assert True + + diff --git a/cornac/eval_strategies/tests/test_ratio_split.py b/cornac/eval_strategies/tests/test_ratio_split.py new file mode 100644 index 00000000..25b06463 --- /dev/null +++ b/cornac/eval_strategies/tests/test_ratio_split.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- + +""" +@author: Quoc-Tuan Truong <tuantq.vnu@gmail.com> +""" + +from ..ratio_split import RatioSplit + + +def test_validate_size(): + train_size, val_size, test_size = RatioSplit._validate_sizes(0.1, 0.2, 10) + assert 7 == train_size + assert 1 == val_size + assert 2 == test_size + + train_size, val_size, test_size = RatioSplit._validate_sizes(None, 0.5, 10) + assert 5 == train_size + assert 0 == val_size + assert 5 == test_size + + train_size, val_size, test_size = RatioSplit._validate_sizes(None, None, 10) + assert 10 == train_size + assert 0 == val_size + assert 0 == test_size + + train_size, val_size, test_size = RatioSplit._validate_sizes(2, 2, 10) + assert 6 == train_size + assert 2 == val_size + assert 2 == test_size + + try: + RatioSplit._validate_sizes(-1, 0.2, 10) + except ValueError: + assert True + + try: + RatioSplit._validate_sizes(11, 0.2, 10) + except ValueError: + assert True + + try: + RatioSplit._validate_sizes(0, 11, 10) + except ValueError: + assert True + + try: + RatioSplit._validate_sizes(3, 8, 10) + except ValueError: + assert True \ No newline at end of file -- GitLab