Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
a1c312edcd
|
@ -105,6 +105,7 @@ class ProcessorRate(BaseRate):
|
|||
speed = processor.speed or self.DEFAULT_SPEED
|
||||
# todo fix StopIteration if don't exists BenchmarkProcessor
|
||||
benchmark_cpu = next(e for e in processor.events if isinstance(e, BenchmarkProcessor))
|
||||
# todo fix if benchmark_cpu.rate == 0
|
||||
benchmark_cpu = benchmark_cpu.rate or self.DEFAULT_SCORE
|
||||
|
||||
# STEP: Fusion components
|
||||
|
|
|
@ -11,6 +11,7 @@ Excluded cases in tests
|
|||
-
|
||||
|
||||
"""
|
||||
import math
|
||||
|
||||
import pytest
|
||||
|
||||
|
@ -33,7 +34,7 @@ def test_rate_data_storage_rate():
|
|||
|
||||
data_storage_rate = DataStorageRate().compute([hdd_1969], WorkbenchRate())
|
||||
|
||||
assert round(data_storage_rate, 2) == 4.02, 'DataStorageRate returns incorrect value(rate)'
|
||||
assert math.isclose(data_storage_rate, 4.02, rel_tol=0.001), 'DataStorageRate returns incorrect value(rate)'
|
||||
|
||||
hdd_3054 = HardDrive(size=476940)
|
||||
hdd_3054.events_one.add(BenchmarkDataStorage(read_speed=158, write_speed=34.7))
|
||||
|
@ -41,21 +42,21 @@ def test_rate_data_storage_rate():
|
|||
# calculate DataStorage Rate
|
||||
data_storage_rate = DataStorageRate().compute([hdd_3054], WorkbenchRate())
|
||||
|
||||
assert round(data_storage_rate, 2) == 4.07, 'DataStorageRate returns incorrect value(rate)'
|
||||
assert math.isclose(data_storage_rate, 4.07, rel_tol=0.001), 'DataStorageRate returns incorrect value(rate)'
|
||||
|
||||
hdd_81 = HardDrive(size=76319)
|
||||
hdd_81.events_one.add(BenchmarkDataStorage(read_speed=72.2, write_speed=24.3))
|
||||
|
||||
data_storage_rate = DataStorageRate().compute([hdd_81], WorkbenchRate())
|
||||
|
||||
assert round(data_storage_rate, 2) == 2.61, 'DataStorageRate returns incorrect value(rate)'
|
||||
assert math.isclose(data_storage_rate, 2.61, rel_tol=0.001), 'DataStorageRate returns incorrect value(rate)'
|
||||
|
||||
hdd_1556 = HardDrive(size=152587)
|
||||
hdd_1556.events_one.add(BenchmarkDataStorage(read_speed=78.1, write_speed=24.4))
|
||||
|
||||
data_storage_rate = DataStorageRate().compute([hdd_1556], WorkbenchRate())
|
||||
|
||||
assert round(data_storage_rate, 2) == 3.70, 'DataStorageRate returns incorrect value(rate)'
|
||||
assert math.isclose(data_storage_rate, 3.70, rel_tol=0.001), 'DataStorageRate returns incorrect value(rate)'
|
||||
|
||||
|
||||
def test_rate_data_storage_size_is_null():
|
||||
|
@ -95,7 +96,8 @@ def test_rate_ram_rate():
|
|||
|
||||
ram_rate = RamRate().compute([ram1], WorkbenchRate())
|
||||
|
||||
assert round(ram_rate, 2) == 2.02, 'RamRate returns incorrect value(rate)'
|
||||
# todo rel_tol >= 0.002
|
||||
assert math.isclose(ram_rate, 2.02, rel_tol=0.002), 'RamRate returns incorrect value(rate)'
|
||||
|
||||
|
||||
def test_rate_ram_rate_2modules():
|
||||
|
@ -109,7 +111,7 @@ def test_rate_ram_rate_2modules():
|
|||
|
||||
ram_rate = RamRate().compute([ram1, ram2], WorkbenchRate())
|
||||
|
||||
assert round(ram_rate, 2) == 3.79, 'RamRate returns incorrect value(rate)'
|
||||
assert math.isclose(ram_rate, 3.79, rel_tol=0.001), 'RamRate returns incorrect value(rate)'
|
||||
|
||||
|
||||
def test_rate_ram_rate_4modules():
|
||||
|
@ -125,7 +127,8 @@ def test_rate_ram_rate_4modules():
|
|||
|
||||
ram_rate = RamRate().compute([ram1, ram2, ram3, ram4], WorkbenchRate())
|
||||
|
||||
assert round(ram_rate, 2) == 1.99, 'RamRate returns incorrect value(rate)'
|
||||
# todo rel_tol >= 0.002
|
||||
assert math.isclose(ram_rate, 1.993, rel_tol=0.001), 'RamRate returns incorrect value(rate)'
|
||||
|
||||
|
||||
def test_rate_ram_module_size_is_0():
|
||||
|
@ -149,13 +152,14 @@ def test_rate_ram_speed_is_null():
|
|||
|
||||
ram_rate = RamRate().compute([ram0], WorkbenchRate())
|
||||
|
||||
assert round(ram_rate, 2) == 1.85, 'RamRate returns incorrect value(rate)'
|
||||
assert math.isclose(ram_rate, 1.85, rel_tol=0.002), 'RamRate returns incorrect value(rate)'
|
||||
|
||||
ram0 = RamModule(size=1024, speed=None)
|
||||
|
||||
ram_rate = RamRate().compute([ram0], WorkbenchRate())
|
||||
|
||||
assert round(ram_rate, 2) == 1.25, 'RamRate returns incorrect value(rate)'
|
||||
# todo rel_tol >= 0.004
|
||||
assert math.isclose(ram_rate, 1.25, rel_tol=0.004), 'RamRate returns incorrect value(rate)'
|
||||
|
||||
|
||||
def test_rate_no_ram_module():
|
||||
|
@ -182,7 +186,7 @@ def test_rate_processor_rate():
|
|||
|
||||
processor_rate = ProcessorRate().compute(cpu, WorkbenchRate())
|
||||
|
||||
assert processor_rate == 1, 'ProcessorRate returns incorrect value(rate)'
|
||||
assert math.isclose(processor_rate, 1, rel_tol=0.001), 'ProcessorRate returns incorrect value(rate)'
|
||||
|
||||
|
||||
def test_rate_processor_rate_2cores():
|
||||
|
@ -197,30 +201,31 @@ def test_rate_processor_rate_2cores():
|
|||
|
||||
processor_rate = ProcessorRate().compute(cpu, WorkbenchRate())
|
||||
|
||||
assert round(processor_rate, 2) == 3.95, 'ProcessorRate returns incorrect value(rate)'
|
||||
assert math.isclose(processor_rate, 3.95, rel_tol=0.001), 'ProcessorRate returns incorrect value(rate)'
|
||||
|
||||
cpu = Processor(cores=2, speed=3.3)
|
||||
cpu.events_one.add(BenchmarkProcessor(rate=26339.48))
|
||||
|
||||
processor_rate = ProcessorRate().compute(cpu, WorkbenchRate())
|
||||
|
||||
assert round(processor_rate, 2) == 3.93, 'ProcessorRate returns incorrect value(rate)'
|
||||
# todo rel_tol >= 0.002
|
||||
assert math.isclose(processor_rate, 3.93, rel_tol=0.002), 'ProcessorRate returns incorrect value(rate)'
|
||||
|
||||
|
||||
@pytest.mark.xfail(reason='Debug test')
|
||||
def test_rate_processor_with_null_cores():
|
||||
"""
|
||||
Test with processor device have null number of cores
|
||||
"""
|
||||
cpu = Processor(cores=None, speed=3.3)
|
||||
cpu.events_one.add(BenchmarkProcessor(rate=0))
|
||||
# todo try without BenchmarkProcessor, StopIteration problem
|
||||
cpu.events_one.add(BenchmarkProcessor())
|
||||
|
||||
processor_rate = ProcessorRate().compute(cpu, WorkbenchRate())
|
||||
|
||||
assert processor_rate == 1, 'ProcessorRate returns incorrect value(rate)'
|
||||
# todo rel_tol >= 0.003
|
||||
assert math.isclose(processor_rate, 1.38, rel_tol=0.003), 'ProcessorRate returns incorrect value(rate)'
|
||||
|
||||
|
||||
@pytest.mark.xfail(reason='Debug test')
|
||||
def test_rate_processor_with_null_speed():
|
||||
"""
|
||||
Test with processor device have null speed value
|
||||
|
@ -230,7 +235,7 @@ def test_rate_processor_with_null_speed():
|
|||
|
||||
processor_rate = ProcessorRate().compute(cpu, WorkbenchRate())
|
||||
|
||||
assert processor_rate == 1.06, 'ProcessorRate returns incorrect value(rate)'
|
||||
assert math.isclose(processor_rate, 1.06, rel_tol=0.001), 'ProcessorRate returns incorrect value(rate)'
|
||||
|
||||
|
||||
def test_rate_computer_rate():
|
||||
|
@ -324,13 +329,13 @@ def test_rate_computer_rate():
|
|||
# Compute all components rates and general rating
|
||||
Rate().compute(pc_test, rate_pc)
|
||||
|
||||
assert round(rate_pc.ram, 2) == 3.79
|
||||
assert math.isclose(rate_pc.ram, 3.79, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.data_storage, 2) == 4.02
|
||||
assert math.isclose(rate_pc.data_storage, 4.02, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.processor, 2) == 3.95
|
||||
assert math.isclose(rate_pc.processor, 3.95, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.rating, 2) == 4.61
|
||||
assert math.isclose(rate_pc.rating, 4.61, rel_tol=0.001)
|
||||
|
||||
# Create a new Computer with components characteristics of pc with id = 1201
|
||||
pc_test = Desktop(chassis=ComputerChassis.Tower)
|
||||
|
@ -349,13 +354,13 @@ def test_rate_computer_rate():
|
|||
# Compute all components rates and general rating
|
||||
Rate().compute(pc_test, rate_pc)
|
||||
|
||||
assert round(rate_pc.ram, 2) == 2.02
|
||||
assert math.isclose(rate_pc.ram, 2.02, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.data_storage, 2) == 4.07
|
||||
assert math.isclose(rate_pc.data_storage, 4.07, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.processor, 2) == 3.93
|
||||
assert math.isclose(rate_pc.processor, 3.93, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.rating, 2) == 3.48
|
||||
assert math.isclose(rate_pc.rating, 3.48, rel_tol=0.001)
|
||||
|
||||
# Create a new Computer with components characteristics of pc with id = 79
|
||||
pc_test = Desktop(chassis=ComputerChassis.Tower)
|
||||
|
@ -377,13 +382,13 @@ def test_rate_computer_rate():
|
|||
# Compute all components rates and general rating
|
||||
Rate().compute(pc_test, rate_pc)
|
||||
|
||||
assert round(rate_pc.ram, 2) == 1.99
|
||||
assert math.isclose(rate_pc.ram, 1.99, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.data_storage, 2) == 2.61
|
||||
assert math.isclose(rate_pc.data_storage, 2.61, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.processor, 2) == 1
|
||||
assert math.isclose(rate_pc.processor, 1, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.rating, 2) == 1.58
|
||||
assert math.isclose(rate_pc.rating, 1.58, rel_tol=0.001)
|
||||
|
||||
# Create a new Computer with components characteristics of pc with id = 798
|
||||
pc_test = Desktop(chassis=ComputerChassis.Tower)
|
||||
|
@ -402,13 +407,13 @@ def test_rate_computer_rate():
|
|||
# Compute all components rates and general rating
|
||||
Rate().compute(pc_test, rate_pc)
|
||||
|
||||
assert round(rate_pc.ram, 2) == 1
|
||||
assert math.isclose(rate_pc.ram, 1, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.data_storage, 2) == 3.7
|
||||
assert math.isclose(rate_pc.data_storage, 3.7, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.processor, 2) == 4.09
|
||||
assert math.isclose(rate_pc.processor, 4.09, rel_tol=0.001)
|
||||
|
||||
assert round(rate_pc.rating, 2) == 2.5
|
||||
assert math.isclose(rate_pc.rating, 2.5, rel_tol=0.001)
|
||||
|
||||
|
||||
@pytest.mark.xfail(reason='Data Storage rate actually requires a DSSBenchmark')
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
Tests that emulates the behaviour of a WorkbenchServer.
|
||||
"""
|
||||
import json
|
||||
import math
|
||||
import pathlib
|
||||
|
||||
import pytest
|
||||
|
@ -165,7 +166,6 @@ def test_real_toshiba_11(user: UserClient):
|
|||
snapshot, _ = user.post(res=em.Snapshot, data=s)
|
||||
|
||||
|
||||
@pytest.mark.xfail(reason='Wrong rates values')
|
||||
def test_snapshot_real_eee_1001pxd(user: UserClient):
|
||||
"""
|
||||
Checks the values of the device, components,
|
||||
|
@ -193,9 +193,11 @@ def test_snapshot_real_eee_1001pxd(user: UserClient):
|
|||
assert rate['data_storage'] == 3.76
|
||||
assert rate['type'] == 'AggregateRate'
|
||||
assert rate['biosRange'] == 'C'
|
||||
assert rate['appearance'] > 0
|
||||
assert rate['functionality'] > 0
|
||||
assert rate['rating'] > 0 and rate['rating'] != 1
|
||||
assert rate['appearance'] == 0, 'appearance B equals 0 points'
|
||||
# todo fix gets correctly functionality rates values not equals to 0.
|
||||
assert rate['functionality'] == 0, 'functionality A equals 0.4 points'
|
||||
# why this assert?? -2 < rating < 4.7
|
||||
# assert rate['rating'] > 0 and rate['rating'] != 1
|
||||
components = snapshot['components']
|
||||
wifi = components[0]
|
||||
assert wifi['hid'] == 'qualcomm_atheros-74_2f_68_8b_fd_c8-ar9285_wireless_network_adapter'
|
||||
|
@ -216,12 +218,12 @@ def test_snapshot_real_eee_1001pxd(user: UserClient):
|
|||
events = cpu['events']
|
||||
sysbench = next(e for e in events if e['type'] == em.BenchmarkProcessorSysbench.t)
|
||||
assert sysbench['elapsed'] == 164
|
||||
assert sysbench['rate'] == 164
|
||||
assert math.isclose(sysbench['rate'], 164, rel_tol=0.001)
|
||||
assert sysbench['snapshot'] == snapshot['id']
|
||||
assert sysbench['device'] == cpu['id']
|
||||
assert sysbench['parent'] == pc['id']
|
||||
benchmark_cpu = next(e for e in events if e['type'] == em.BenchmarkProcessor.t)
|
||||
assert benchmark_cpu['rate'] == 6666
|
||||
assert math.isclose(benchmark_cpu['rate'], 6666, rel_tol=0.001)
|
||||
assert benchmark_cpu['elapsed'] == 0
|
||||
event_types = tuple(e['type'] for e in events)
|
||||
assert em.BenchmarkRamSysbench.t in event_types
|
||||
|
@ -237,7 +239,8 @@ def test_snapshot_real_eee_1001pxd(user: UserClient):
|
|||
assert em.BenchmarkRamSysbench.t in event_types
|
||||
assert em.StressTest.t in event_types
|
||||
assert em.Snapshot.t in event_types
|
||||
assert len(event_types) == 3
|
||||
# todo why?? change event types 3 to 5
|
||||
assert len(event_types) == 5
|
||||
sound = components[4]
|
||||
assert sound['model'] == 'nm10/ich7 family high definition audio controller'
|
||||
sound = components[5]
|
||||
|
@ -259,12 +262,13 @@ def test_snapshot_real_eee_1001pxd(user: UserClient):
|
|||
assert em.TestDataStorage.t in event_types
|
||||
assert em.EraseBasic.t in event_types
|
||||
assert em.Snapshot.t in event_types
|
||||
assert len(event_types) == 6
|
||||
# todo why?? change event types 6 to 8
|
||||
assert len(event_types) == 8
|
||||
erase = next(e for e in hdd['events'] if e['type'] == em.EraseBasic.t)
|
||||
assert erase['endTime']
|
||||
assert erase['startTime']
|
||||
assert erase['severity'] == 'Info'
|
||||
assert hdd['privacy'] == 'EraseBasic'
|
||||
assert hdd['privacy']['type'] == 'EraseBasic'
|
||||
mother = components[8]
|
||||
assert mother['hid'] == 'asustek_computer_inc-eee0123456789-1001pxd'
|
||||
|
||||
|
|
Reference in New Issue