X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=test%2Ftest_perf_01.py;fp=test%2Ftest_perf_01.py;h=3e02241a56674176f38f8e7d02f95e976f56518a;hb=23463956b04e8eea1c10e6450d20693f51561b5d;hp=0000000000000000000000000000000000000000;hpb=a847e2c6495ef248da62fb22dca24e4875d4f16f;p=modules%2Fgeom.git diff --git a/test/test_perf_01.py b/test/test_perf_01.py new file mode 100644 index 000000000..3e02241a5 --- /dev/null +++ b/test/test_perf_01.py @@ -0,0 +1,49 @@ +from contextlib import contextmanager +from datetime import datetime, timedelta +from inspect import getfile +from os.path import abspath, dirname, join +from unittest import TestCase, main + +import salome +salome.salome_init_without_session() + +from salome.geom import geomBuilder +geom_builder = geomBuilder.New() + +data_dir = abspath(join(dirname(getfile(lambda: None)), 'data')) + +@contextmanager +def no_longer_than(seconds): + """ + Context mananger to check that an execution of given code does not + exceed maximum expected time. + + Example of usage: + + with wait(5): + do_something_that_should_take_no_more_than_five_seconds() + + Arguments: + seconds: max time limit + + Raises: + AssertionError: if time limit is exceeded. + """ + expected = timedelta(seconds=seconds) + start = datetime.now() + yield + end = datetime.now() + spent = end-start + assert spent <= expected, f'Expected maximum delay is exceeded: {spent.total_seconds():.2f} > {seconds:.2f}!' + +class TesselationTest(TestCase): + """Test Tesselate() method.""" + + def test_performance_01(self): + """Check performance of Tesselate() method: case 01.""" + shape = geom_builder.ImportBREP(join(data_dir, 'test_performance_01.brep')) + with no_longer_than(5): + geom_builder.Tesselate(shape, 0.17, False, 20) + +if __name__ == "__main__": + main()