6f296e0b54
This modernizes python code without breaking Py2 compat. Ran with command: futurize --stage1 -w tools/testrunner/testpro Manual fixup to util_unittest to modify import paths and change to absolute imports. Bug: v8:9871 Change-Id: I2ac29622aff5daebc9dc42145c1d96dff8258546 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2252549 Reviewed-by: Tamer Tas <tmrts@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#68492}
71 lines
1.9 KiB
Python
71 lines
1.9 KiB
Python
#!/usr/bin/env python
|
|
# Copyright 2020 the V8 project authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
from __future__ import absolute_import
|
|
|
|
import os
|
|
import sys
|
|
import unittest
|
|
|
|
TOOLS_PATH = os.path.dirname(os.path.dirname(os.path.dirname(
|
|
os.path.abspath(__file__))))
|
|
sys.path.append(TOOLS_PATH)
|
|
|
|
from testrunner.testproc.util import FixedSizeTopList
|
|
|
|
class TestOrderedFixedSizeList(unittest.TestCase):
|
|
def test_empty(self):
|
|
ofsl = FixedSizeTopList(3)
|
|
self.assertEqual(ofsl.as_list(), [])
|
|
|
|
def test_12(self):
|
|
ofsl = FixedSizeTopList(3)
|
|
ofsl.add(1)
|
|
ofsl.add(2)
|
|
self.assertEqual(ofsl.as_list(), [2,1])
|
|
|
|
def test_4321(self):
|
|
ofsl = FixedSizeTopList(3)
|
|
ofsl.add(4)
|
|
ofsl.add(3)
|
|
ofsl.add(2)
|
|
ofsl.add(1)
|
|
data = ofsl.as_list()
|
|
self.assertEqual(data, [4,3,2])
|
|
|
|
def test_544321(self):
|
|
ofsl = FixedSizeTopList(4)
|
|
ofsl.add(5)
|
|
ofsl.add(4)
|
|
ofsl.add(4)
|
|
ofsl.add(3)
|
|
ofsl.add(2)
|
|
ofsl.add(1)
|
|
data = ofsl.as_list()
|
|
self.assertEqual(data, [5, 4, 4, 3])
|
|
|
|
def test_withkey(self):
|
|
ofsl = FixedSizeTopList(3,key=lambda x: x['val'])
|
|
ofsl.add({'val':4, 'something': 'four'})
|
|
ofsl.add({'val':3, 'something': 'three'})
|
|
ofsl.add({'val':-1, 'something': 'minusone'})
|
|
ofsl.add({'val':5, 'something': 'five'})
|
|
ofsl.add({'val':0, 'something': 'zero'})
|
|
data = [e['something'] for e in ofsl.as_list()]
|
|
self.assertEqual(data, ['five', 'four', 'three'])
|
|
|
|
def test_withkeyclash(self):
|
|
# Test that a key clash does not throw exeption
|
|
ofsl = FixedSizeTopList(2,key=lambda x: x['val'])
|
|
ofsl.add({'val':2, 'something': 'two'})
|
|
ofsl.add({'val':2, 'something': 'two'})
|
|
ofsl.add({'val':0, 'something': 'zero'})
|
|
data = [e['something'] for e in ofsl.as_list()]
|
|
self.assertEqual(data, ['two', 'two'])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|