0ad/source/tools/lobbybots/tests/test_utils.py
user1 dd19cc3444 Major improvements to the lobby bots XpartaMuPP and EcheLOn.
Reviewers: elexis, Dunedan

Fixes: #5914

Differential Revision: https://code.wildfiregames.com/D2630
This was SVN commit r25424.
2021-05-12 15:40:50 +00:00

45 lines
1.6 KiB
Python

# Copyright (C) 2021 Wildfire Games.
# This file is part of 0 A.D.
#
# 0 A.D. is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# 0 A.D. is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with 0 A.D. If not, see <http://www.gnu.org/licenses/>.
"""Tests for utility functions."""
from unittest import TestCase
from hypothesis import given
from hypothesis import strategies as st
from xpartamupp.utils import LimitedSizeDict
class TestLimitedSizeDict(TestCase):
"""Test limited size dict."""
@given(st.integers(min_value=2, max_value=2**10))
def test_max_items(self, size_limit):
"""Test max items of dicts.
Test that the dict doesn't grow indefinitely and that the
oldest entries are removed first.
"""
test_dict = LimitedSizeDict(size_limit=size_limit)
for i in range(size_limit):
test_dict[i] = i
self.assertEqual(size_limit, len(test_dict))
test_dict[size_limit + 1] = size_limit + 1
self.assertEqual(size_limit, len(test_dict))
self.assertFalse(0 in test_dict.values())
self.assertTrue(1 in test_dict.values())
self.assertTrue(size_limit + 1 in test_dict.values())