--- /dev/null
+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()