Clone
1
run 1565 TEST commit 4e955a3
ci-bot edited this page 2025-08-04 12:23:49 +00:00

Test Report

View CI Run 1565 | Commit 4e955a3

🧪 Test Report

Generated on 2025-08-04 14:23:44 CEST

🧾 General Info

  • duration: 57.78132915496826
  • root: /workspace/tligui_y/slic
  • environment: {}

📋 Summary

  • Passed: 386
  • Failed: 47
  • Error: 1
  • Total: 434
  • Collected: 434

🔎 Tests

Passed (386)
  • 📄 test_utils_argfwd.py

    Function: test_split_at

    • Test 1
      params: lst=["a", "b", "c", "d"], index=2, expected="a", "b"], ["c", "d"

      📌 Runtime Parameters

      params:
        lst:
          - a
          - b
          - c
          - d
        index: 2
        expected:
          -       - a
            - b
          -       - c
            - d
      id: lst0-2-expected0
      

      📌 Setup phase

      duration:

      0.0006550750695168972
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018161628395318985
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002731839194893837
      

      outcome:

      passed
      
    • Test 2
      params: lst=["x", "y"], index=1, expected="x"], ["y"

      📌 Runtime Parameters

      params:
        lst:
          - x
          - y
        index: 1
        expected:
          -       - x
          -       - y
      id: lst1-1-expected1
      

      📌 Setup phase

      duration:

      0.0002967161126434803
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015987688675522804
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017383089289069176
      

      outcome:

      passed
      
    • Test 3
      params: lst=[], index=0, expected=], [

      📌 Runtime Parameters

      params:
        lst:
      []
        index: 0
        expected:
          - (vide)
          - (vide)
      id: lst2-0-expected2
      

      📌 Setup phase

      duration:

      0.00027196435257792473
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014024972915649414
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015060976147651672
      

      outcome:

      passed
      

    Function: test_merge_lists_unique

    • Test 4
      params: a=["a", "b"], b=["b", "c"], expected=["a", "b", "c"]

      📌 Runtime Parameters

      params:
        a:
          - a
          - b
        b:
          - b
          - c
        expected:
          - a
          - b
          - c
      id: a0-b0-expected0
      

      📌 Setup phase

      duration:

      0.0002835458144545555
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014496315270662308
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018103700131177902
      

      outcome:

      passed
      
    • Test 5
      params: a=[], b=["x"], expected=["x"]

      📌 Runtime Parameters

      params:
        a:
      []
        b:
          - x
        expected:
          - x
      id: a1-b1-expected1
      

      📌 Setup phase

      duration:

      0.0002718721516430378
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001405789516866207
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016294512897729874
      

      outcome:

      passed
      
    • Test 6
      params: a=["x", "y"], b=["x", "y"], expected=["x", "y"]

      📌 Runtime Parameters

      params:
        a:
          - x
          - y
        b:
          - x
          - y
        expected:
          - x
          - y
      id: a2-b2-expected2
      

      📌 Setup phase

      duration:

      0.00027335574850440025
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014457432553172112
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015813391655683517
      

      outcome:

      passed
      

    Function: test_merge_dicts_unique

    • Test 7
      params: a={"a": 1}, b={"b": 2}, expected={"a": 1, "b": 2}

      📌 Runtime Parameters

      params:
        a:
          a: 1
        b:
          b: 2
        expected:
          a: 1
          b: 2
      id: a0-b0-expected0
      

      📌 Setup phase

      duration:

      0.0002770517021417618
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016921712085604668
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015824101865291595
      

      outcome:

      passed
      
    • Test 8
      params: a={"x": 1}, b={"x": 9, "y": 3}, expected={"x": 1, "y": 3}

      📌 Runtime Parameters

      params:
        a:
          x: 1
        b:
          x: 9
          y: 3
        expected:
          x: 1
          y: 3
      id: a1-b1-expected1
      

      📌 Setup phase

      duration:

      0.00025934260338544846
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001464500091969967
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015558674931526184
      

      outcome:

      passed
      
    • Test 9
      params: a={}, b={"k": 4}, expected={"k": 4}

      📌 Runtime Parameters

      params:
        a:
      {}
        b:
          k: 4
        expected:
          k: 4
      id: a2-b2-expected2
      

      📌 Setup phase

      duration:

      0.00027576135471463203
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001392299309372902
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001652766950428486
      

      outcome:

      passed
      

    Function: test_make_params_pos_basic

    • Test 10
      params: pos=["a", "b"], expected_names=["a", "b"]

      📌 Runtime Parameters

      params:
        pos:
          - a
          - b
        expected_names:
          - a
          - b
      id: pos0-expected_names0
      

      📌 Setup phase

      duration:

      0.0002299170009791851
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016295397654175758
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014070793986320496
      

      outcome:

      passed
      
    • Test 11
      params: pos=["param1", "value_2", "Z"], expected_names=["param1", "value_2", "Z"]

      📌 Runtime Parameters

      params:
        pos:
          - param1
          - value_2
          - Z
        expected_names:
          - param1
          - value_2
          - Z
      id: pos1-expected_names1
      

      📌 Setup phase

      duration:

      0.0002334299497306347
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017686979845166206
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016070762649178505
      

      outcome:

      passed
      
    • Test 12
      params: pos=[], expected_names=[]

      📌 Runtime Parameters

      params:
        pos:
      []
        expected_names:
      []
      id: pos2-expected_names2
      

      📌 Setup phase

      duration:

      0.0002230568788945675
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001403558999300003
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014521414414048195
      

      outcome:

      passed
      

    Function: test_make_params_kw_basic

    • Test 13
      params: kw={"a": 1, "b": 2}, expected_keys=["a", "b"], expected_defaults=[1, 2]

      📌 Runtime Parameters

      params:
        kw:
          a: 1
          b: 2
        expected_keys:
          - a
          - b
        expected_defaults:
          - 1
          - 2
      id: kw0-expected_keys0-expected_defaults0
      

      📌 Setup phase

      duration:

      0.00027907220646739006
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016878033056855202
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015757093206048012
      

      outcome:

      passed
      
    • Test 14
      params: kw={"param_x": 0}, expected_keys=["param_x"], expected_defaults=[0]

      📌 Runtime Parameters

      params:
        kw:
          param_x: 0
        expected_keys:
          - param_x
        expected_defaults:
          - (vide)
      id: kw1-expected_keys1-expected_defaults1
      

      📌 Setup phase

      duration:

      0.0002777380868792534
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015505589544773102
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016186898574233055
      

      outcome:

      passed
      
    • Test 15
      params: kw={}, expected_keys=[], expected_defaults=[]

      📌 Runtime Parameters

      params:
        kw:
      {}
        expected_keys:
      []
        expected_defaults:
      []
      id: kw2-expected_keys2-expected_defaults2
      

      📌 Setup phase

      duration:

      0.0002667699009180069
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014674104750156403
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015375204384326935
      

      outcome:

      passed
      

    Function: test_make_signature_parametrized

    • Test 16
      params: pos=["x", "y"], kw={"z": 3}, expected_signature="(x, y, z=3)"

      📌 Runtime Parameters

      params:
        pos:
          - x
          - y
        kw:
          z: 3
        expected_signature: (x, y, z=3)
      id: pos0-kw0-(x, y, z=3)
      

      📌 Setup phase

      duration:

      0.00026725977659225464
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019522476941347122
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017437199130654335
      

      outcome:

      passed
      
    • Test 17
      params: pos=["a"], kw={"b": 1, "c": 2}, expected_signature="(a, b=1, c=2)"

      📌 Runtime Parameters

      params:
        pos:
          - a
        kw:
          b: 1
          c: 2
        expected_signature: (a, b=1, c=2)
      id: pos1-kw1-(a, b=1, c=2)
      

      📌 Setup phase

      duration:

      0.0002686958760023117
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001750071533024311
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001597180962562561
      

      outcome:

      passed
      
    • Test 18
      params: pos=[], kw={"flag": false}, expected_signature="(flag=False)"

      📌 Runtime Parameters

      params:
        pos:
      []
        kw:
          flag: False
        expected_signature: (flag=False)
      id: pos2-kw2-(flag=False)
      

      📌 Setup phase

      duration:

      0.0002816859632730484
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016741687431931496
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015031639486551285
      

      outcome:

      passed
      

    Function: test_get_args_parametrized

    • Test 19
      params: func=" at 0x7f86b892dc10>", expected_pos=["a", "b"], expected_kw={"c": 3, "d": 4}

      📌 Runtime Parameters

      params:
        func: <function <lambda> at 0x7f86b892dc10>
        expected_pos:
          - a
          - b
        expected_kw:
          c: 3
          d: 4
      id: <lambda>-expected_pos0-expected_kw0
      

      📌 Setup phase

      duration:

      0.0002794400788843632
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002120351418852806
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016863876953721046
      

      outcome:

      passed
      
    • Test 20
      params: func=" at 0x7f86b8934b80>", expected_pos=[], expected_kw="{'x': 1, 'y': , 'z': 0}"

      📌 Runtime Parameters

      params:
        func: <function <lambda> at 0x7f86b8934b80>
        expected_pos:
      []
        expected_kw: {'x': 1, 'y': <class 'inspect._empty'>, 'z': 0}
      id: <lambda>-expected_pos1-expected_kw1
      

      📌 Setup phase

      duration:

      0.00060992781072855
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00021816836670041084
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016763107851147652
      

      outcome:

      passed
      
    • Test 21
      params: func=" at 0x7f86b8934ca0>", expected_pos=[], expected_kw={}

      📌 Runtime Parameters

      params:
        func: <function <lambda> at 0x7f86b8934ca0>
        expected_pos:
      []
        expected_kw:
      {}
      id: <lambda>-expected_pos2-expected_kw2
      

      📌 Setup phase

      duration:

      0.00028778379783034325
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017610099166631699
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001630941405892372
      

      outcome:

      passed
      

    Function: test_signature_visible

    • Test 22
      params: func="", expected_sig="(a, b, d=30, c=10)"

      📌 Runtime Parameters

      params:
        func: <function wrap_all at 0x7f86b8934ee0>
        expected_sig: (a, b, d=30, c=10)
      id: wrap_all-(a, b, d=30, c=10)
      

      📌 Setup phase

      duration:

      0.00022519426420331
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017180293798446655
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001425100490450859
      

      outcome:

      passed
      
    • Test 23
      params: func="", expected_sig="(a, b, c=10, d=20)"

      📌 Runtime Parameters

      params:
        func: <function wrap_skip at 0x7f86b8934f70>
        expected_sig: (a, b, c=10, d=20)
      id: wrap_skip-(a, b, c=10, d=20)
      

      📌 Setup phase

      duration:

      0.00022038863971829414
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001772870309650898
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014766911044716835
      

      outcome:

      passed
      
    • Test 24
      params: func="", expected_sig="(x, y, c=10, d=20)"

      📌 Runtime Parameters

      params:
        func: <function wrap_ignore_all at 0x7f86b893d040>
        expected_sig: (x, y, c=10, d=20)
      id: wrap_ignore_all-(x, y, c=10, d=20)
      

      📌 Setup phase

      duration:

      0.00021553318947553635
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015135062858462334
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014348328113555908
      

      outcome:

      passed
      

    Function: test_wrapper_behavior

    • Test 25
      params: func="", args=[1, 2, 3], kwargs={}, expected_result=36

      📌 Runtime Parameters

      params:
        func: <function wrap_all at 0x7f86b8934ee0>
        args:
          - 1
          - 2
          - 3
        kwargs:
      {}
        expected_result: 36
      id: wrap_all-args0-kwargs0-36
      

      📌 Setup phase

      duration:

      0.0003232969902455807
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001481948420405388
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016065873205661774
      

      outcome:

      passed
      
    • Test 26
      params: func="", args=[1, 2, 3], kwargs={"d": 5}, expected_result=11

      📌 Runtime Parameters

      params:
        func: <function wrap_all at 0x7f86b8934ee0>
        args:
          - 1
          - 2
          - 3
        kwargs:
          d: 5
        expected_result: 11
      id: wrap_all-args1-kwargs1-11
      

      📌 Setup phase

      duration:

      0.0003142179921269417
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014232471585273743
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017452333122491837
      

      outcome:

      passed
      
    • Test 27
      params: func="", args=[0, 0], kwargs={"c": 3, "d": 4}, expected_result=10

      📌 Runtime Parameters

      params:
        func: <function wrap_skip at 0x7f86b8934f70>
        args:
          - (vide)
          - (vide)
        kwargs:
          c: 3
          d: 4
        expected_result: 10
      id: wrap_skip-args2-kwargs2-10
      

      📌 Setup phase

      duration:

      0.00031808530911803246
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014320993795990944
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016707228496670723
      

      outcome:

      passed
      
    • Test 28
      params: func="", args=[0, 0], kwargs={}, expected_result=10

      📌 Runtime Parameters

      params:
        func: <function wrap_ignore_all at 0x7f86b893d040>
        args:
          - (vide)
          - (vide)
        kwargs:
      {}
        expected_result: 10
      id: wrap_ignore_all-args3-kwargs3-10
      

      📌 Setup phase

      duration:

      0.00031860871240496635
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013816962018609047
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017385417595505714
      

      outcome:

      passed
      
  • 📄 test_utils_ask_yes_no.py

    Function: test_ask_yes_no

    • Test 29
      params: default=null, user_input="y", expected_output=true, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input: y
        expected_output: True
        expected_prompt: Question? [y/n] 
      id: None-y-True-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.00034439796581864357
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007323180325329304
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019363407045602798
      

      outcome:

      passed
      
    • Test 30
      params: default=null, user_input="yes", expected_output=true, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input: yes
        expected_output: True
        expected_prompt: Question? [y/n] 
      id: None-yes-True-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.0003458904102444649
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006074272096157074
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019033905118703842
      

      outcome:

      passed
      
    • Test 31
      params: default=null, user_input="n", expected_output=false, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input: n
        expected_output: False
        expected_prompt: Question? [y/n] 
      id: None-n-False-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.00034054694697260857
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005178279243409634
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020506326109170914
      

      outcome:

      passed
      
    • Test 32
      params: default=null, user_input="no", expected_output=false, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input: no
        expected_output: False
        expected_prompt: Question? [y/n] 
      id: None-no-False-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.0003237063065171242
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005827369168400764
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001868843100965023
      

      outcome:

      passed
      
    • Test 33
      params: default=null, user_input=["maybe", "y"], expected_output=true, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input:
          - maybe
          - y
        expected_output: True
        expected_prompt: Question? [y/n] 
      id: None-user_input4-True-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.0003330218605697155
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000543513335287571
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018868595361709595
      

      outcome:

      passed
      
    • Test 34
      params: default=null, user_input=["", "no"], expected_output=false, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input:
          - (vide)
          - no
        expected_output: False
        expected_prompt: Question? [y/n] 
      id: None-user_input5-False-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.00034304987639188766
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006312010809779167
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018733227625489235
      

      outcome:

      passed
      
    • Test 35
      params: default=null, user_input=["invalid", "", "invalid", "yes"], expected_output=true, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input:
          - invalid
          - (vide)
          - invalid
          - yes
        expected_output: True
        expected_prompt: Question? [y/n] 
      id: None-user_input6-True-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.0003463141620159149
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005464139394462109
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018390081822872162
      

      outcome:

      passed
      
    • Test 36
      params: default="y", user_input="y", expected_output=true, expected_prompt="Question? [Y/n] "

      📌 Runtime Parameters

      params:
        default: y
        user_input: y
        expected_output: True
        expected_prompt: Question? [Y/n] 
      id: y-y-True-Question? [Y/n] 
      

      📌 Setup phase

      duration:

      0.00032717082649469376
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005017672665417194
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001941518858075142
      

      outcome:

      passed
      
    • Test 37
      params: default="y", user_input="n", expected_output=false, expected_prompt="Question? [Y/n] "

      📌 Runtime Parameters

      params:
        default: y
        user_input: n
        expected_output: False
        expected_prompt: Question? [Y/n] 
      id: y-n-False-Question? [Y/n] 
      

      📌 Setup phase

      duration:

      0.0003445320762693882
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005179070867598057
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001790132373571396
      

      outcome:

      passed
      
    • Test 38
      params: default="y", user_input="", expected_output=true, expected_prompt="Question? [Y/n] "

      📌 Runtime Parameters

      params:
        default: y
        user_input: None
        expected_output: True
        expected_prompt: Question? [Y/n] 
      id: y--True-Question? [Y/n] 
      

      📌 Setup phase

      duration:

      0.00033427681773900986
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006083552725613117
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018412014469504356
      

      outcome:

      passed
      
    • Test 39
      params: default="n", user_input="y", expected_output=true, expected_prompt="Question? [y/N] "

      📌 Runtime Parameters

      params:
        default: n
        user_input: y
        expected_output: True
        expected_prompt: Question? [y/N] 
      id: n-y-True-Question? [y/N] 
      

      📌 Setup phase

      duration:

      0.00033480580896139145
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004955846816301346
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020721089094877243
      

      outcome:

      passed
      
    • Test 40
      params: default="n", user_input="n", expected_output=false, expected_prompt="Question? [y/N] "

      📌 Runtime Parameters

      params:
        default: n
        user_input: n
        expected_output: False
        expected_prompt: Question? [y/N] 
      id: n-n-False-Question? [y/N] 
      

      📌 Setup phase

      duration:

      0.0003211009316146374
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005201161839067936
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018179090693593025
      

      outcome:

      passed
      
    • Test 41
      params: default="n", user_input="", expected_output=false, expected_prompt="Question? [y/N] "

      📌 Runtime Parameters

      params:
        default: n
        user_input: None
        expected_output: False
        expected_prompt: Question? [y/N] 
      id: n--False-Question? [y/N] 
      

      📌 Setup phase

      duration:

      0.0003187679685652256
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005182018503546715
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002818359062075615
      

      outcome:

      passed
      

    Function: test_ask_yes_no_ctrl_c

    • Test 42
      params: default=null, user_input="", expected_output=false, ctrl_c="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: <class 'KeyboardInterrupt'>
        expected_output: False
        ctrl_c: n
      id: None-KeyboardInterrupt-False-n
      

      📌 Setup phase

      duration:

      0.0003375890664756298
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004954966716468334
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018146494403481483
      

      outcome:

      passed
      
    • Test 43
      params: default=null, user_input="", expected_output=true, ctrl_c="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: <class 'KeyboardInterrupt'>
        expected_output: True
        ctrl_c: y
      id: None-KeyboardInterrupt-True-y
      

      📌 Setup phase

      duration:

      0.0003254571929574013
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004890630953013897
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017724093049764633
      

      outcome:

      passed
      
    • Test 44
      params: default="y", user_input="", expected_output=false, ctrl_c="n"

      📌 Runtime Parameters

      params:
        default: y
        user_input: <class 'KeyboardInterrupt'>
        expected_output: False
        ctrl_c: n
      id: y-KeyboardInterrupt-False-n
      

      📌 Setup phase

      duration:

      0.00031182030215859413
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005055563524365425
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000180885661393404
      

      outcome:

      passed
      
    • Test 45
      params: default="y", user_input="", expected_output=true, ctrl_c="y"

      📌 Runtime Parameters

      params:
        default: y
        user_input: <class 'KeyboardInterrupt'>
        expected_output: True
        ctrl_c: y
      id: y-KeyboardInterrupt-True-y
      

      📌 Setup phase

      duration:

      0.0003357310779392719
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006182482466101646
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001941048540174961
      

      outcome:

      passed
      
    • Test 46
      params: default="n", user_input="", expected_output=false, ctrl_c="n"

      📌 Runtime Parameters

      params:
        default: n
        user_input: <class 'KeyboardInterrupt'>
        expected_output: False
        ctrl_c: n
      id: n-KeyboardInterrupt-False-n
      

      📌 Setup phase

      duration:

      0.00033354805782437325
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005052061751484871
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019788416102528572
      

      outcome:

      passed
      
    • Test 47
      params: default=null, user_input="['invalid', '', 'invalid', ]", expected_output=false, ctrl_c="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['invalid', '', 'invalid', <class 'KeyboardInterrupt'>]
        expected_output: False
        ctrl_c: n
      id: None-user_input5-False-n
      

      📌 Setup phase

      duration:

      0.0003256206400692463
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005684071220457554
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018136808648705482
      

      outcome:

      passed
      
    • Test 48
      params: default=null, user_input="['invalid', '', 'invalid', ]", expected_output=true, ctrl_c="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['invalid', '', 'invalid', <class 'KeyboardInterrupt'>]
        expected_output: True
        ctrl_c: y
      id: None-user_input6-True-y
      

      📌 Setup phase

      duration:

      0.0003394191153347492
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005554389208555222
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019308319315314293
      

      outcome:

      passed
      
    • Test 49
      params: default=null, user_input="['foo', '', , '', 'invalid', , 'no']", expected_output=false, ctrl_c=null

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['foo', '', <class 'KeyboardInterrupt'>, '', 'invalid', <class 'KeyboardInterrupt'>, 'no']
        expected_output: False
        ctrl_c: None
      id: None-user_input7-False-None
      

      📌 Setup phase

      duration:

      0.0003363988362252712
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000677766278386116
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019193114712834358
      

      outcome:

      passed
      
    • Test 50
      params: default="n", user_input="[, , , '']", expected_output=false, ctrl_c=null

      📌 Runtime Parameters

      params:
        default: n
        user_input: [<class 'KeyboardInterrupt'>, <class 'KeyboardInterrupt'>, <class 'KeyboardInterrupt'>, '']
        expected_output: False
        ctrl_c: None
      id: n-user_input8-False-None
      

      📌 Setup phase

      duration:

      0.0003334549255669117
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005443310365080833
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001951330341398716
      

      outcome:

      passed
      
    • Test 51
      params: default="n", user_input="[, , , '']", expected_output=false, ctrl_c="Invalid"

      📌 Runtime Parameters

      params:
        default: n
        user_input: [<class 'KeyboardInterrupt'>, <class 'KeyboardInterrupt'>, <class 'KeyboardInterrupt'>, '']
        expected_output: False
        ctrl_c: Invalid
      id: n-user_input9-False-Invalid
      

      📌 Setup phase

      duration:

      0.0003218739293515682
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005454760976135731
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000206679105758667
      

      outcome:

      passed
      

    Function: test_ask_yes_no_ctrl_d

    • Test 52
      params: default=null, user_input="", expected_output=false, ctrl_d="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: <class 'EOFError'>
        expected_output: False
        ctrl_d: n
      id: None-EOFError-False-n
      

      📌 Setup phase

      duration:

      0.00033535296097397804
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006607100367546082
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017956644296646118
      

      outcome:

      passed
      
    • Test 53
      params: default=null, user_input="", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: <class 'EOFError'>
        expected_output: True
        ctrl_d: y
      id: None-EOFError-True-y
      

      📌 Setup phase

      duration:

      0.00034156767651438713
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005119708366692066
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017887912690639496
      

      outcome:

      passed
      
    • Test 54
      params: default="y", user_input="", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: y
        user_input: <class 'EOFError'>
        expected_output: True
        ctrl_d: y
      id: y-EOFError-True-y
      

      📌 Setup phase

      duration:

      0.00033777812495827675
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004956829361617565
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019044522196054459
      

      outcome:

      passed
      
    • Test 55
      params: default="n", user_input="", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: n
        user_input: <class 'EOFError'>
        expected_output: True
        ctrl_d: y
      id: n-EOFError-True-y
      

      📌 Setup phase

      duration:

      0.0003232932649552822
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005209320224821568
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019013509154319763
      

      outcome:

      passed
      
    • Test 56
      params: default="n", user_input="", expected_output=false, ctrl_d="n"

      📌 Runtime Parameters

      params:
        default: n
        user_input: <class 'EOFError'>
        expected_output: False
        ctrl_d: n
      id: n-EOFError-False-n
      

      📌 Setup phase

      duration:

      0.0003385888412594795
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006101438775658607
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018693599849939346
      

      outcome:

      passed
      
    • Test 57
      params: default=null, user_input="['foo', ]", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['foo', <class 'EOFError'>]
        expected_output: True
        ctrl_d: y
      id: None-user_input5-True-y
      

      📌 Setup phase

      duration:

      0.00033285515382885933
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005214051343500614
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018964381888508797
      

      outcome:

      passed
      
    • Test 58
      params: default=null, user_input="['foo', ]", expected_output=false, ctrl_d="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['foo', <class 'EOFError'>]
        expected_output: False
        ctrl_d: n
      id: None-user_input6-False-n
      

      📌 Setup phase

      duration:

      0.0003370363265275955
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005274070426821709
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019143568351864815
      

      outcome:

      passed
      
    • Test 59
      params: default="y", user_input="", expected_output=true, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: y
        user_input: <class 'EOFError'>
        expected_output: True
        ctrl_d: None
      id: y-EOFError-True-None
      

      📌 Setup phase

      duration:

      0.0003212243318557739
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005180938169360161
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002002958208322525
      

      outcome:

      passed
      
    • Test 60
      params: default="n", user_input="", expected_output=false, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: n
        user_input: <class 'EOFError'>
        expected_output: False
        ctrl_d: None
      id: n-EOFError-False-None
      

      📌 Setup phase

      duration:

      0.00032550469040870667
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006109331734478474
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017945002764463425
      

      outcome:

      passed
      
    • Test 61
      params: default=null, user_input="['invalid', 'ok', '', , 'ok', 'y']", expected_output=true, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['invalid', 'ok', '', <class 'EOFError'>, 'ok', 'y']
        expected_output: True
        ctrl_d: None
      id: None-user_input9-True-None
      

      📌 Setup phase

      duration:

      0.0003193831071257591
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005581127479672432
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017989100888371468
      

      outcome:

      passed
      
    • Test 62
      params: default="n", user_input="['no', ]", expected_output=false, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: n
        user_input: ['no', <class 'EOFError'>]
        expected_output: False
        ctrl_d: None
      id: n-user_input10-False-None
      

      📌 Setup phase

      duration:

      0.0003397846594452858
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005249297246336937
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001812758855521679
      

      outcome:

      passed
      
    • Test 63
      params: default=null, user_input="[, , , 'y']", expected_output=true, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: None
        user_input: [<class 'EOFError'>, <class 'EOFError'>, <class 'EOFError'>, 'y']
        expected_output: True
        ctrl_d: None
      id: None-user_input11-True-None
      

      📌 Setup phase

      duration:

      0.0003157109022140503
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006304197013378143
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020015519112348557
      

      outcome:

      passed
      
    • Test 64
      params: default=null, user_input="['invalid', '', 'nope', ]", expected_output=false, ctrl_d="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['invalid', '', 'nope', <class 'EOFError'>]
        expected_output: False
        ctrl_d: n
      id: None-user_input12-False-n
      

      📌 Setup phase

      duration:

      0.0003192359581589699
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005588270723819733
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001866379752755165
      

      outcome:

      passed
      
    • Test 65
      params: default=null, user_input="['nope', 'nope', ]", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['nope', 'nope', <class 'EOFError'>]
        expected_output: True
        ctrl_d: y
      id: None-user_input13-True-y
      

      📌 Setup phase

      duration:

      0.0003187726251780987
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005423561669886112
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018717721104621887
      

      outcome:

      passed
      

    Function: test_ask_yes_no_mixed_sequences

    • Test 66
      params: default=null, ctrl_c="invalid", ctrl_d=null, user_input="['what', '', 'nope', , 'ok', , 'no']", expected_output=false

      📌 Runtime Parameters

      params:
        default: None
        ctrl_c: invalid
        ctrl_d: None
        user_input: ['what', '', 'nope', <class 'KeyboardInterrupt'>, 'ok', <class 'EOFError'>, 'no']
        expected_output: False
      id: None-invalid-None-user_input0-False
      

      📌 Setup phase

      duration:

      0.00038474611937999725
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005925679579377174
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019559403881430626
      

      outcome:

      passed
      
    • Test 67
      params: default=null, ctrl_c=null, ctrl_d="notananswer", user_input="['maybe', , 'nop', 'yep', , 'yes']", expected_output=true

      📌 Runtime Parameters

      params:
        default: None
        ctrl_c: None
        ctrl_d: notananswer
        user_input: ['maybe', <class 'KeyboardInterrupt'>, 'nop', 'yep', <class 'EOFError'>, 'yes']
        expected_output: True
      id: None-None-notananswer-user_input1-True
      

      📌 Setup phase

      duration:

      0.0004632989875972271
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005657318979501724
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019488995894789696
      

      outcome:

      passed
      
    • Test 68
      params: default=null, ctrl_c="n", ctrl_d="nop", user_input="['ok', , , 'maybe', , 'nah', ]", expected_output=false

      📌 Runtime Parameters

      params:
        default: None
        ctrl_c: n
        ctrl_d: nop
        user_input: ['ok', <class 'EOFError'>, <class 'EOFError'>, 'maybe', <class 'EOFError'>, 'nah', <class 'KeyboardInterrupt'>]
        expected_output: False
      id: None-n-nop-user_input2-False
      

      📌 Setup phase

      duration:

      0.0003652363084256649
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005695209838449955
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00021059764549136162
      

      outcome:

      passed
      
  • 📄 test_utils_channels.py

    Function: test_load_channels_and_channels_class_with_professional_names

    • Test 69

      📌 Setup phase

      duration:

      0.00012374715879559517
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009470479562878609
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001339111477136612
      

      outcome:

      passed
      
  • 📄 test_utils_config.py

    Function: test_config_with_nested_and_list_data

    • Test 70

      📌 Setup phase

      duration:

      0.0001225937157869339
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006138300523161888
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011176988482475281
      

      outcome:

      passed
      

    Function: test_config_with_strange_and_edge_keys

    • Test 71

      📌 Setup phase

      duration:

      0.00012963684275746346
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007062940858304501
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011606793850660324
      

      outcome:

      passed
      
  • 📄 test_utils_cpint.py

    Function: test_load_color_variants_all_keys_and_types

    • Test 72
      params: base_color="red"

      📌 Runtime Parameters

      params:
        base_color: red
      id: red
      

      📌 Setup phase

      duration:

      0.00019806623458862305
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020472612231969833
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001268950290977955
      

      outcome:

      passed
      
    • Test 73
      params: base_color="blue"

      📌 Runtime Parameters

      params:
        base_color: blue
      id: blue
      

      📌 Setup phase

      duration:

      0.0001730509102344513
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016289018094539642
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012069381773471832
      

      outcome:

      passed
      
    • Test 74
      params: base_color="yellow"

      📌 Runtime Parameters

      params:
        base_color: yellow
      id: yellow
      

      📌 Setup phase

      duration:

      0.00017690984532237053
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015287799760699272
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012099836021661758
      

      outcome:

      passed
      
    • Test 75
      params: base_color="green"

      📌 Runtime Parameters

      params:
        base_color: green
      id: green
      

      📌 Setup phase

      duration:

      0.0001726960763335228
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001515951007604599
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011762883514165878
      

      outcome:

      passed
      
    • Test 76
      params: base_color="cyan"

      📌 Runtime Parameters

      params:
        base_color: cyan
      id: cyan
      

      📌 Setup phase

      duration:

      0.0005229371599853039
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017238780856132507
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014149490743875504
      

      outcome:

      passed
      
    • Test 77
      params: base_color="magenta"

      📌 Runtime Parameters

      params:
        base_color: magenta
      id: magenta
      

      📌 Setup phase

      duration:

      0.00017847120761871338
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015380186960101128
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015207519754767418
      

      outcome:

      passed
      
    • Test 78
      params: base_color="white"

      📌 Runtime Parameters

      params:
        base_color: white
      id: white
      

      📌 Setup phase

      duration:

      0.0001735864207148552
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014425115659832954
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014296313747763634
      

      outcome:

      passed
      
    • Test 79
      params: base_color="black"

      📌 Runtime Parameters

      params:
        base_color: black
      id: black
      

      📌 Setup phase

      duration:

      0.00017309095710515976
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014839181676506996
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011921999976038933
      

      outcome:

      passed
      

    Function: test_cprint_all_cases_fancy

    • Test 80
      params: objects=[["Fancy", "list"], {"a": 7}, null], color_spec=["red", "+"], sep=" | ", expected_flatten="['Fancy', 'list'] | {'a': 7} | None", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - Fancy
            - list
          -       a: 7
          - (vide)
        color_spec:
          - red
          - +
        sep:  | 
        expected_flatten: ['Fancy', 'list'] | {'a': 7} | None
        expected_error: None
      id: objects0-color_spec0- | -['Fancy', 'list'] | {'a': 7} | None-None
      

      📌 Setup phase

      duration:

      0.0006263707764446735
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00026469724252820015
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002612103708088398
      

      outcome:

      passed
      
    • Test 81
      params: objects=[{"k": [1, 2]}, 99, ["X", ["Y"]]], color_spec=["blue", "++"], sep=" - ", expected_flatten="{'k': [1, 2]} - 99 - ['X', ['Y']]", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       k:
              - 1
              - 2
          - 99
          -       - X
            -         - Y
        color_spec:
          - blue
          - ++
        sep:  - 
        expected_flatten: {'k': [1, 2]} - 99 - ['X', ['Y']]
        expected_error: None
      id: objects1-color_spec1- - -{'k': [1, 2]} - 99 - ['X', ['Y']]-None
      

      📌 Setup phase

      duration:

      0.0004821186885237694
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002411138266324997
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000336608849465847
      

      outcome:

      passed
      
    • Test 82
      params: objects=[[], {}, "End"], color_spec=["magenta", "--"], sep=" / ", expected_flatten="[] / {} / End", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          - (vide)
          - (vide)
          - End
        color_spec:
          - magenta
          - --
        sep:  / 
        expected_flatten: [] / {} / End
        expected_error: None
      id: objects2-color_spec2- / -[] / {} / End-None
      

      📌 Setup phase

      duration:

      0.0004742690362036228
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022886507213115692
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002509593032300472
      

      outcome:

      passed
      
    • Test 83
      params: objects="", [3, 4, "done", 0], color_spec=["green", ""], sep=";", expected_flatten="['', [3, 4]];done;0", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - (vide)
            -         - 3
              - 4
          - done
          - (vide)
        color_spec:
          - green
          - (vide)
        sep: ;
        expected_flatten: ['', [3, 4]];done;0
        expected_error: None
      id: objects3-color_spec3-;-['', [3, 4]];done;0-None
      

      📌 Setup phase

      duration:

      0.0004795570857822895
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000235722865909338
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000241199042648077
      

      outcome:

      passed
      
    • Test 84
      params: objects=[["alpha", null], ["beta", {}], "stop"], color_spec=["yellow", ""], sep="::", expected_flatten="['alpha', None]::['beta', {}]::stop", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - alpha
            - (vide)
          -       - beta
            - (vide)
          - stop
        color_spec:
          - yellow
          - (vide)
        sep: ::
        expected_flatten: ['alpha', None]::['beta', {}]::stop
        expected_error: None
      id: objects4-color_spec4-::-['alpha', None]::['beta', {}]::stop-None
      

      📌 Setup phase

      duration:

      0.0004691611975431442
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00023081107065081596
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002432442270219326
      

      outcome:

      passed
      
    • Test 85
      params: objects="deep", ["deeper", ["deepest"], "X"], color_spec=["cyan", "+"], sep=" ... ", expected_flatten="['deep', ['deeper', ['deepest']]] ... X", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - deep
            -         - deeper
              -           - deepest
          - X
        color_spec:
          - cyan
          - +
        sep:  ... 
        expected_flatten: ['deep', ['deeper', ['deepest']]] ... X
        expected_error: None
      id: objects5-color_spec5- ... -['deep', ['deeper', ['deepest']]] ... X-None
      

      📌 Setup phase

      duration:

      0.00046148383989930153
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000225928146392107
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00025781476870179176
      

      outcome:

      passed
      
    • Test 86
      params: objects=[{"dict": {"nested": [4, 5]}}, [true, false], 6.28], color_spec=["white", "++"], sep=" // ", expected_flatten="{'dict': {'nested': [4, 5]}} // [True, False] // 6.28", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       dict:
              nested:
                - 4
                - 5
          -       - True
            - (vide)
          - 6.28
        color_spec:
          - white
          - ++
        sep:  // 
        expected_flatten: {'dict': {'nested': [4, 5]}} // [True, False] // 6.28
        expected_error: None
      id: objects6-color_spec6- // -{'dict': {'nested': [4, 5]}} // [True, False] // 6.28-None
      

      📌 Setup phase

      duration:

      0.0004854598082602024
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002435818314552307
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024295784533023834
      

      outcome:

      passed
      
    • Test 87
      params: objects="A", ["B", "string", "C"], color_spec=["red", "--"], sep="==", expected_flatten="['A', ['B']]==string==C", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - A
            -         - B
          - string
          - C
        color_spec:
          - red
          - --
        sep: ==
        expected_flatten: ['A', ['B']]==string==C
        expected_error: None
      id: objects7-color_spec7-==-['A', ['B']]==string==C-None
      

      📌 Setup phase

      duration:

      0.000462179072201252
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00023689912632107735
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002746940590441227
      

      outcome:

      passed
      
    • Test 88
      params: objects="Test", null, [, {"v": 0}], color_spec=["green", "++"], sep=" ++ ", expected_flatten="['Test', None, []] ++ {'v': 0}", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - Test
            - (vide)
            - (vide)
          -       v: 0
        color_spec:
          - green
          - ++
        sep:  ++ 
        expected_flatten: ['Test', None, []] ++ {'v': 0}
        expected_error: None
      id: objects8-color_spec8- ++ -['Test', None, []] ++ {'v': 0}-None
      

      📌 Setup phase

      duration:

      0.0004764990881085396
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000256591010838747
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002557779662311077
      

      outcome:

      passed
      
    • Test 89
      params: objects=[["no", "color"], "plain"], color_spec=null, sep=";", expected_flatten="['no', 'color'];plain", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - no
            - color
          - plain
        color_spec: None
        sep: ;
        expected_flatten: ['no', 'color'];plain
        expected_error: None
      id: objects9-None-;-['no', 'color'];plain-None
      

      📌 Setup phase

      duration:

      0.0004525999538600445
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022026989609003067
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002434179186820984
      

      outcome:

      passed
      
    • Test 90
      params: objects=[["simple"], "", 12], color_spec=null, sep=" | ", expected_flatten="['simple'] | | 12", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - simple
          - (vide)
          - 12
        color_spec: None
        sep:  | 
        expected_flatten: ['simple'] |  | 12
        expected_error: None
      id: objects10-None- | -['simple'] |  | 12-None
      

      📌 Setup phase

      duration:

      0.0005027949810028076
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020933477208018303
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00025478098541498184
      

      outcome:

      passed
      
    • Test 91
      params: objects=["very", "deep", {"ok": true}], color_spec=null, sep=" : ", expected_flatten="'very', 'deep' : {'ok': True}", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       -         - very
              - deep
          -       ok: True
        color_spec: None
        sep:  : 
        expected_flatten: [['very', 'deep']] : {'ok': True}
        expected_error: None
      id: objects11-None- : -[['very', 'deep']] : {'ok': True}-None
      

      📌 Setup phase

      duration:

      0.0004841280169785023
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00023541226983070374
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002414756454527378
      

      outcome:

      passed
      
    • Test 92
      params: objects=[["fail", "color"], 123], color_spec=["green", "!!"], sep="|", expected_flatten="['fail', 'color']|123", expected_error=""

      📌 Runtime Parameters

      params:
        objects:
          -       - fail
            - color
          - 123
        color_spec:
          - green
          - !!
        sep: |
        expected_flatten: ['fail', 'color']|123
        expected_error: <class 'ValueError'>
      id: objects12-color_spec12-|-['fail', 'color']|123-ValueError
      

      📌 Setup phase

      duration:

      0.00047752680256962776
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002690982073545456
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024858303368091583
      

      outcome:

      passed
      
    • Test 93
      params: objects=[["error"], {}], color_spec=["cyan", "xxx"], sep=" * ", expected_flatten="['error'] * {}", expected_error=""

      📌 Runtime Parameters

      params:
        objects:
          -       - error
          - (vide)
        color_spec:
          - cyan
          - xxx
        sep:  * 
        expected_flatten: ['error'] * {}
        expected_error: <class 'ValueError'>
      id: objects13-color_spec13- * -['error'] * {}-ValueError
      

      📌 Setup phase

      duration:

      0.0004705013707280159
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00023465696722269058
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00025043822824954987
      

      outcome:

      passed
      
    • Test 94
      params: objects="nope"], ["bad", color_spec=["magenta", "invalid"], sep="//", expected_flatten="['nope']//['bad']", expected_error=""

      📌 Runtime Parameters

      params:
        objects:
          -       - nope
          -       - bad
        color_spec:
          - magenta
          - invalid
        sep: //
        expected_flatten: ['nope']//['bad']
        expected_error: <class 'ValueError'>
      id: objects14-color_spec14-//-['nope']//['bad']-ValueError
      

      📌 Setup phase

      duration:

      0.0004910407587885857
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00023760925978422165
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002613202668726444
      

      outcome:

      passed
      
    • Test 95
      params: objects=["wrong", "base"], color_spec=["notacolor", ""], sep="--", expected_flatten="wrong--base", expected_error=""

      📌 Runtime Parameters

      params:
        objects:
          - wrong
          - base
        color_spec:
          - notacolor
          - (vide)
        sep: --
        expected_flatten: wrong--base
        expected_error: <class 'ValueError'>
      id: objects15-color_spec15----wrong--base-ValueError
      

      📌 Setup phase

      duration:

      0.0004693637602031231
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002444903366267681
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000244947150349617
      

      outcome:

      passed
      
  • 📄 test_utils_debug.py

    Function: test_traceable

    • Test 96
      params: cls="", entry=[[10, 20], {}], expected="creating: A(10, 20)"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry:
          -       - 10
            - 20
          - (vide)
        expected: creating: A(10, 20)
      id: A-entry0-creating: A(10, 20)
      

      📌 Setup phase

      duration:

      0.0003073252737522125
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0011971918866038322
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002638385631144047
      

      outcome:

      passed
      
    • Test 97
      params: cls="", entry=[[10, 20], {"e": 100}], expected="creating: A(10, 20, e=100)"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry:
          -       - 10
            - 20
          -       e: 100
        expected: creating: A(10, 20, e=100)
      id: A-entry1-creating: A(10, 20, e=100)
      

      📌 Setup phase

      duration:

      0.0003113248385488987
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008032750338315964
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018185703083872795
      

      outcome:

      passed
      
    • Test 98
      params: cls="", entry="foo", [1, 2, 3, {"flag": true, "data": {"x": 9}}], expected="creating: A('foo', [1, 2, 3], flag=True, data={'x': 9})"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry:
          -       - foo
            -         - 1
              - 2
              - 3
          -       flag: True
            data:
              x: 9
        expected: creating: A('foo', [1, 2, 3], flag=True, data={'x': 9})
      id: A-entry2-creating: A('foo', [1, 2, 3], flag=True, data={'x': 9})
      

      📌 Setup phase

      duration:

      0.00030139414593577385
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009009130299091339
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001800903119146824
      

      outcome:

      passed
      
    • Test 99
      params: cls="", entry="([CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], {'name': 'test', 'meta': 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'})", expected="creating: A(CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name='test', meta='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...)"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry: ([CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], {'name': 'test', 'meta': 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'})
        expected: creating: A(CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name='test', meta='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...)
      id: A-entry3-creating: A(CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name='test', meta='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...)
      

      📌 Setup phase

      duration:

      0.0003293389454483986
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008054859936237335
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017857784405350685
      

      outcome:

      passed
      
    • Test 100
      params: cls="", entry="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", [0, 0, 0, 0, 0, {}], expected="creating: A('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..., [0, 0, 0, 0, 0])"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry:
          -       - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
            -         - (vide)
              - (vide)
              - (vide)
              - (vide)
              - (vide)
          - (vide)
        expected: creating: A('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..., [0, 0, 0, 0, 0])
      id: A-entry4-creating: A('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..., [0, 0, 0, 0, 0])
      

      📌 Setup phase

      duration:

      0.0003035701811313629
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008765789680182934
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018026120960712433
      

      outcome:

      passed
      

    Function: test_short_repr

    • Test 101
      params: value="abc", cutoff=10, expected="'abc'"

      📌 Runtime Parameters

      params:
        value: abc
        cutoff: 10
        expected: 'abc'
      id: abc-10-'abc'
      

      📌 Setup phase

      duration:

      0.0003355368971824646
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015518022701144218
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001591946929693222
      

      outcome:

      passed
      
    • Test 103
      params: value=12345, cutoff=10, expected="12345"

      📌 Runtime Parameters

      params:
        value: 12345
        cutoff: 10
        expected: 12345
      id: 12345-10-12345
      

      📌 Setup phase

      duration:

      0.000332461204379797
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016515422612428665
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017345882952213287
      

      outcome:

      passed
      
    • Test 104
      params: value=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], cutoff=15, expected="[0, 0, 0, 0, 0,..."

      📌 Runtime Parameters

      params:
        value:
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
        cutoff: 15
        expected: [0, 0, 0, 0, 0,...
      id: value3-15-[0, 0, 0, 0, 0,...
      

      📌 Setup phase

      duration:

      0.00028591463342309
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015316205099225044
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000150259118527174
      

      outcome:

      passed
      
    • Test 105
      params: value=null, cutoff=10, expected="None"

      📌 Runtime Parameters

      params:
        value: None
        cutoff: 10
        expected: None
      id: None-10-None
      

      📌 Setup phase

      duration:

      0.00031161168590188026
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015135714784264565
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015561282634735107
      

      outcome:

      passed
      
  • 📄 test_utils_dictext.py

    Function: test_attrdict_getattr

    • Test 107
      params: data={"x": 1, "y": 2}, attr="x", expected=1

      📌 Runtime Parameters

      params:
        data:
          x: 1
          y: 2
        attr: x
        expected: 1
      id: data0-x-1
      

      📌 Setup phase

      duration:

      0.00030921492725610733
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001580626703798771
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016995519399642944
      

      outcome:

      passed
      
    • Test 108
      params: data={"world": "ok"}, attr="world", expected="ok"

      📌 Runtime Parameters

      params:
        data:
          world: ok
        attr: world
        expected: ok
      id: data1-world-ok
      

      📌 Setup phase

      duration:

      0.000263875350356102
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015550479292869568
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015419768169522285
      

      outcome:

      passed
      
    • Test 109
      params: data={"outer": {"inner": 42}}, attr="outer", expected={"inner": 42}

      📌 Runtime Parameters

      params:
        data:
          outer:
            inner: 42
        attr: outer
        expected:
          inner: 42
      id: data2-outer-expected2
      

      📌 Setup phase

      duration:

      0.0002673403359949589
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015491480007767677
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016641197726130486
      

      outcome:

      passed
      

    Function: test_attrdict_setattr

    • Test 110
      params: initial={}, attr="nouveau", value=123

      📌 Runtime Parameters

      params:
        initial:
      {}
        attr: nouveau
        value: 123
      id: initial0-nouveau-123
      

      📌 Setup phase

      duration:

      0.00026722485199570656
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014410773292183876
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014880206435918808
      

      outcome:

      passed
      
    • Test 111
      params: initial={"a": 1}, attr="b", value="valeur"

      📌 Runtime Parameters

      params:
        initial:
          a: 1
        attr: b
        value: valeur
      id: initial1-b-valeur
      

      📌 Setup phase

      duration:

      0.00027723610401153564
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014677923172712326
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015278486534953117
      

      outcome:

      passed
      

    Function: test_attrdict_delattr

    • Test 112
      params: initial={"a": 1, "b": 2}, to_del="a", expected_keys=["b"]

      📌 Runtime Parameters

      params:
        initial:
          a: 1
          b: 2
        to_del: a
        expected_keys:
          - b
      id: initial0-a-expected_keys0
      

      📌 Setup phase

      duration:

      0.00025937194004654884
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017924420535564423
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016100890934467316
      

      outcome:

      passed
      
    • Test 113
      params: initial={"k": "v"}, to_del="k", expected_keys=[]

      📌 Runtime Parameters

      params:
        initial:
          k: v
        to_del: k
        expected_keys:
      []
      id: initial1-k-expected_keys1
      

      📌 Setup phase

      duration:

      0.00026650307700037956
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001798868179321289
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016013393178582191
      

      outcome:

      passed
      

    Function: test_attrdict_dir

    • Test 114
      params: data={"alpha": 1, "beta": 2}, expected_keys="{'beta', 'alpha'}"

      📌 Runtime Parameters

      params:
        data:
          alpha: 1
          beta: 2
        expected_keys: {'beta', 'alpha'}
      id: data0-expected_keys0
      

      📌 Setup phase

      duration:

      0.00022581173107028008
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001431358978152275
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013391580432653427
      

      outcome:

      passed
      
    • Test 115
      params: data={}, expected_keys="set()"

      📌 Runtime Parameters

      params:
        data:
      {}
        expected_keys: set()
      id: data1-expected_keys1
      

      📌 Setup phase

      duration:

      0.00022233929485082626
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001813969574868679
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001388820819556713
      

      outcome:

      passed
      

    Function: test_attrdict_getattr_and_missing

    • Test 116
      params: data={"x": 1, "y": 2}, attr="x", expect_value=1, expect_error=null

      📌 Runtime Parameters

      params:
        data:
          x: 1
          y: 2
        attr: x
        expect_value: 1
        expect_error: None
      id: data0-x-1-None
      

      📌 Setup phase

      duration:

      0.00030358508229255676
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014350423589348793
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016384292393922806
      

      outcome:

      passed
      
    • Test 117
      params: data={"number": 42}, attr="missing", expect_value=null, expect_error="'MyDict' object has no attribute 'missing'"

      📌 Runtime Parameters

      params:
        data:
          number: 42
        attr: missing
        expect_value: None
        expect_error: 'MyDict' object has no attribute 'missing'
      id: data1-missing-None-'MyDict' object has no attribute 'missing'
      

      📌 Setup phase

      duration:

      0.00030775880441069603
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016106991097331047
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018202420324087143
      

      outcome:

      passed
      

    Function: test_dictupdatemixin_init_and_update

    • Test 118
      params: init_kwargs={"a": 1, "b": 2}, other=null, kwargs={}, expected={"a": 1, "b": 2}

      📌 Runtime Parameters

      params:
        init_kwargs:
          a: 1
          b: 2
        other: None
        kwargs:
      {}
        expected:
          a: 1
          b: 2
      id: init_kwargs0-None-kwargs0-expected0
      

      📌 Setup phase

      duration:

      0.00031744688749313354
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001475149765610695
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001797247678041458
      

      outcome:

      passed
      
    • Test 119
      params: init_kwargs={}, other={"x": 10, "y": 20}, kwargs={}, expected={"x": 10, "y": 20}

      📌 Runtime Parameters

      params:
        init_kwargs:
      {}
        other:
          x: 10
          y: 20
        kwargs:
      {}
        expected:
          x: 10
          y: 20
      id: init_kwargs1-other1-kwargs1-expected1
      

      📌 Setup phase

      duration:

      0.0003094952553510666
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001559690572321415
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001666313037276268
      

      outcome:

      passed
      
    • Test 120
      params: init_kwargs={"world": "ok"}, other={"number": 42}, kwargs={"num2": 100}, expected={"world": "ok", "number": 42, "num2": 100}

      📌 Runtime Parameters

      params:
        init_kwargs:
          world: ok
        other:
          number: 42
        kwargs:
          num2: 100
        expected:
          world: ok
          number: 42
          num2: 100
      id: init_kwargs2-other2-kwargs2-expected2
      

      📌 Setup phase

      duration:

      0.00031467294320464134
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014813384041190147
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016243895515799522
      

      outcome:

      passed
      
    • Test 121
      params: init_kwargs={}, other=null, kwargs={"alpha": "beta"}, expected={"alpha": "beta"}

      📌 Runtime Parameters

      params:
        init_kwargs:
      {}
        other: None
        kwargs:
          alpha: beta
        expected:
          alpha: beta
      id: init_kwargs3-None-kwargs3-expected3
      

      📌 Setup phase

      duration:

      0.00030868779867887497
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014565279707312584
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016357377171516418
      

      outcome:

      passed
      
    • Test 122
      params: init_kwargs={}, other={"key": "value"}, kwargs={"extra": 1}, expected={"key": "value", "extra": 1}

      📌 Runtime Parameters

      params:
        init_kwargs:
      {}
        other:
          key: value
        kwargs:
          extra: 1
        expected:
          key: value
          extra: 1
      id: init_kwargs4-other4-kwargs4-expected4
      

      📌 Setup phase

      duration:

      0.000293550081551075
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014084018766880035
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016992026939988136
      

      outcome:

      passed
      
    • Test 123
      params: init_kwargs={}, other="key", "value"], ["list", [5, 6], kwargs={"extra": {"subkey": 123}}, expected={"key": "value", "list": [5, 6], "extra": {"subkey": 123}}

      📌 Runtime Parameters

      params:
        init_kwargs:
      {}
        other:
          -       - key
            - value
          -       - list
            -         - 5
              - 6
        kwargs:
          extra:
            subkey: 123
        expected:
          key: value
          list:
            - 5
            - 6
          extra:
            subkey: 123
      id: init_kwargs5-other5-kwargs5-expected5
      

      📌 Setup phase

      duration:

      0.0003072861582040787
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00026162806898355484
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001738150604069233
      

      outcome:

      passed
      
  • 📄 test_utils_dotdir.py

    Function: test_dotdir_creation_and_base_exists

    • Test 124

      📌 Setup phase

      duration:

      0.0013447520323097706
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00024791667237877846
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00021945219486951828
      

      outcome:

      passed
      

    Function: test_dotdir_repr_returns_path_str

    • Test 125

      📌 Setup phase

      duration:

      0.0006022579036653042
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00024278834462165833
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002056388184428215
      

      outcome:

      passed
      

    Function: test_dotdir_call

    • Test 126

      📌 Setup phase

      duration:

      0.000622584018856287
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022300798445940018
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020628096535801888
      

      outcome:

      passed
      
  • 📄 test_utils_eval.py

    Function: test_arithmetic_eval_valid

    • Test 127
      params: expr="1 + 2", expected=3

      📌 Runtime Parameters

      params:
        expr: 1 + 2
        expected: 3
      id: 1 + 2-3
      

      📌 Setup phase

      duration:

      0.00025733374059200287
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017572380602359772
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014139898121356964
      

      outcome:

      passed
      
    • Test 128
      params: expr="4 - 2", expected=2

      📌 Runtime Parameters

      params:
        expr: 4 - 2
        expected: 2
      id: 4 - 2-2
      

      📌 Setup phase

      duration:

      0.0002389848232269287
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001612938940525055
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013902317732572556
      

      outcome:

      passed
      
    • Test 129
      params: expr="3 * 5", expected=15

      📌 Runtime Parameters

      params:
        expr: 3 * 5
        expected: 15
      id: 3 * 5-15
      

      📌 Setup phase

      duration:

      0.0002466090954840183
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001577921211719513
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014156894758343697
      

      outcome:

      passed
      
    • Test 130
      params: expr="10 / 2", expected=5.0

      📌 Runtime Parameters

      params:
        expr: 10 / 2
        expected: 5.0
      id: 10 / 2-5.0
      

      📌 Setup phase

      duration:

      0.00023046275600790977
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016045477241277695
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001367642544209957
      

      outcome:

      passed
      
    • Test 131
      params: expr="10 % 3", expected=1

      📌 Runtime Parameters

      params:
        expr: 10 % 3
        expected: 1
      id: 10 % 3-1
      

      📌 Setup phase

      duration:

      0.00021345308050513268
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015188567340373993
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015686918050050735
      

      outcome:

      passed
      
    • Test 132
      params: expr="-5", expected=-5

      📌 Runtime Parameters

      params:
        expr: -5
        expected: -5
      id: -5--5
      

      📌 Setup phase

      duration:

      0.00023931916803121567
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020650774240493774
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001486586406826973
      

      outcome:

      passed
      
    • Test 133
      params: expr="+7", expected=7

      📌 Runtime Parameters

      params:
        expr: +7
        expected: 7
      id: +7-7
      

      📌 Setup phase

      duration:

      0.0002596220001578331
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015874998643994331
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014205090701580048
      

      outcome:

      passed
      
    • Test 134
      params: expr="1 + 2 * 3", expected=7

      📌 Runtime Parameters

      params:
        expr: 1 + 2 * 3
        expected: 7
      id: 1 + 2 * 3-7
      

      📌 Setup phase

      duration:

      0.00022592861205339432
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016328878700733185
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014713499695062637
      

      outcome:

      passed
      
    • Test 135
      params: expr="(1 + 2) * 3", expected=9

      📌 Runtime Parameters

      params:
        expr: (1 + 2) * 3
        expected: 9
      id: (1 + 2) * 3-9
      

      📌 Setup phase

      duration:

      0.00021517975255846977
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001575872302055359
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015381118282675743
      

      outcome:

      passed
      
    • Test 136
      params: expr="-(-3)", expected=3

      📌 Runtime Parameters

      params:
        expr: -(-3)
        expected: 3
      id: -(-3)-3
      

      📌 Setup phase

      duration:

      0.00022074300795793533
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016973214223980904
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013773376122117043
      

      outcome:

      passed
      
    • Test 137
      params: expr="-2 + 4 * 2", expected=6

      📌 Runtime Parameters

      params:
        expr: -2 + 4 * 2
        expected: 6
      id: -2 + 4 * 2-6
      

      📌 Setup phase

      duration:

      0.00022230809554457664
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001873411238193512
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013986043632030487
      

      outcome:

      passed
      
    • Test 138
      params: expr="(4 + 5) * (6 - 1)", expected=45

      📌 Runtime Parameters

      params:
        expr: (4 + 5) * (6 - 1)
        expected: 45
      id: (4 + 5) * (6 - 1)-45
      

      📌 Setup phase

      duration:

      0.00023266300559043884
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016745179891586304
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001349220983684063
      

      outcome:

      passed
      
    • Test 139
      params: expr="(((3)))", expected=3

      📌 Runtime Parameters

      params:
        expr: (((3)))
        expected: 3
      id: (((3)))-3
      

      📌 Setup phase

      duration:

      0.0002559698186814785
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015574321150779724
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001569148153066635
      

      outcome:

      passed
      
    • Test 140
      params: expr="-(-(-2))", expected=-2

      📌 Runtime Parameters

      params:
        expr: -(-(-2))
        expected: -2
      id: -(-(-2))--2
      

      📌 Setup phase

      duration:

      0.00024590594694018364
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016485480591654778
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014087418094277382
      

      outcome:

      passed
      
    • Test 141
      params: expr="3 + +4", expected=7

      📌 Runtime Parameters

      params:
        expr: 3 + +4
        expected: 7
      id: 3 + +4-7
      

      📌 Setup phase

      duration:

      0.0002235150896012783
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015948712825775146
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013397494331002235
      

      outcome:

      passed
      
    • Test 142
      params: expr="3 + -4", expected=-1

      📌 Runtime Parameters

      params:
        expr: 3 + -4
        expected: -1
      id: 3 + -4--1
      

      📌 Setup phase

      duration:

      0.00023996224626898766
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016321009024977684
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015865406021475792
      

      outcome:

      passed
      
    • Test 143
      params: expr="True + 1", expected=2

      📌 Runtime Parameters

      params:
        expr: True + 1
        expected: 2
      id: True + 1-2
      

      📌 Setup phase

      duration:

      0.00022118398919701576
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017578806728124619
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014403369277715683
      

      outcome:

      passed
      
    • Test 144
      params: expr="'string'", expected="string"

      📌 Runtime Parameters

      params:
        expr: 'string'
        expected: string
      id: 'string'-string
      

      📌 Setup phase

      duration:

      0.00022409111261367798
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017025601118803024
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001449529081583023
      

      outcome:

      passed
      
    • Test 145
      params: expr="1e1000 * 1e1000", expected=Infinity

      📌 Runtime Parameters

      params:
        expr: 1e1000 * 1e1000
        expected: inf
      id: 1e1000 * 1e1000-inf
      

      📌 Setup phase

      duration:

      0.00024492619559168816
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001677866093814373
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001403861679136753
      

      outcome:

      passed
      
    • Test 146
      params: expr="'a' + 'b'", expected="ab"

      📌 Runtime Parameters

      params:
        expr: 'a' + 'b'
        expected: ab
      id: 'a' + 'b'-ab
      

      📌 Setup phase

      duration:

      0.00022989464923739433
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015936512500047684
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014276430010795593
      

      outcome:

      passed
      

    Function: test_arithmetic_eval_raises_with_message

    • Test 147
      params: expr="2 ** 3", expected_message="Unsupported BinOp Pow"

      📌 Runtime Parameters

      params:
        expr: 2 ** 3
        expected_message: Unsupported BinOp Pow
      id: 2 ** 3-Unsupported BinOp Pow
      

      📌 Setup phase

      duration:

      0.00024854205548763275
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003803260624408722
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016212882474064827
      

      outcome:

      passed
      
    • Test 148
      params: expr="3 << 1", expected_message="Unsupported BinOp LShift"

      📌 Runtime Parameters

      params:
        expr: 3 << 1
        expected_message: Unsupported BinOp LShift
      id: 3 << 1-Unsupported BinOp LShift
      

      📌 Setup phase

      duration:

      0.00031540635973215103
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00037363963201642036
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001414441503584385
      

      outcome:

      passed
      
    • Test 149
      params: expr="1 < 2", expected_message="Unsupported node type Compare"

      📌 Runtime Parameters

      params:
        expr: 1 < 2
        expected_message: Unsupported node type Compare
      id: 1 < 2-Unsupported node type Compare
      

      📌 Setup phase

      duration:

      0.00025483081117272377
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003683171235024929
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014795595780014992
      

      outcome:

      passed
      
    • Test 150
      params: expr="abs(3)", expected_message="Unsupported node type Call"

      📌 Runtime Parameters

      params:
        expr: abs(3)
        expected_message: Unsupported node type Call
      id: abs(3)-Unsupported node type Call
      

      📌 Setup phase

      duration:

      0.00022357096895575523
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003555179573595524
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014610309153795242
      

      outcome:

      passed
      
    • Test 151
      params: expr="a + 2", expected_message="Unsupported node type Name"

      📌 Runtime Parameters

      params:
        expr: a + 2
        expected_message: Unsupported node type Name
      id: a + 2-Unsupported node type Name
      

      📌 Setup phase

      duration:

      0.00022354302927851677
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003520590253174305
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014090631157159805
      

      outcome:

      passed
      
    • Test 152
      params: expr="string", expected_message="Unsupported node type Name"

      📌 Runtime Parameters

      params:
        expr: string
        expected_message: Unsupported node type Name
      id: string-Unsupported node type Name
      

      📌 Setup phase

      duration:

      0.0002459622919559479
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018597813323140144
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013860873878002167
      

      outcome:

      passed
      
    • Test 153
      params: expr="[1, 2] + [3]", expected_message="Unsupported node type List"

      📌 Runtime Parameters

      params:
        expr: [1, 2] + [3]
        expected_message: Unsupported node type List
      id: [1, 2] + [3]-Unsupported node type List
      

      📌 Setup phase

      duration:

      0.00022966694086790085
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003428407944738865
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016009900718927383
      

      outcome:

      passed
      
    • Test 154
      params: expr="{1: 2}", expected_message="Unsupported node type Dict"

      📌 Runtime Parameters

      params:
        expr: {1: 2}
        expected_message: Unsupported node type Dict
      id: {1: 2}-Unsupported node type Dict
      

      📌 Setup phase

      duration:

      0.0002286350354552269
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00040454696863889694
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015345634892582893
      

      outcome:

      passed
      

    Function: test_arithmetic_eval_runtime_errors

    • Test 155
      params: expr="1 / 0", exception=""

      📌 Runtime Parameters

      params:
        expr: 1 / 0
        exception: <class 'ZeroDivisionError'>
      id: 1 / 0-ZeroDivisionError
      

      📌 Setup phase

      duration:

      0.0002474440261721611
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018037483096122742
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016602175310254097
      

      outcome:

      passed
      
    • Test 156
      params: expr="10 % 0", exception=""

      📌 Runtime Parameters

      params:
        expr: 10 % 0
        exception: <class 'ZeroDivisionError'>
      id: 10 % 0-ZeroDivisionError
      

      📌 Setup phase

      duration:

      0.0002383342944085598
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001837257295846939
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014112703502178192
      

      outcome:

      passed
      

    Function: test_forgiving_eval

    • Test 157
      params: expr="1 + 2", expected=3

      📌 Runtime Parameters

      params:
        expr: 1 + 2
        expected: 3
      id: 1 + 2-3
      

      📌 Setup phase

      duration:

      0.00022679800167679787
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016665132716298103
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015766918659210205
      

      outcome:

      passed
      
    • Test 158
      params: expr="bad + 2", expected="bad + 2"

      📌 Runtime Parameters

      params:
        expr: bad + 2
        expected: bad + 2
      id: bad + 2-bad + 2
      

      📌 Setup phase

      duration:

      0.00021554576233029366
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017735222354531288
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014534778892993927
      

      outcome:

      passed
      
    • Test 159
      params: expr="1 / 0", expected="1 / 0"

      📌 Runtime Parameters

      params:
        expr: 1 / 0
        expected: 1 / 0
      id: 1 / 0-1 / 0
      

      📌 Setup phase

      duration:

      0.00023188674822449684
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001841336488723755
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001371609978377819
      

      outcome:

      passed
      
    • Test 160
      params: expr="2 ** 10", expected="2 ** 10"

      📌 Runtime Parameters

      params:
        expr: 2 ** 10
        expected: 2 ** 10
      id: 2 ** 10-2 ** 10
      

      📌 Setup phase

      duration:

      0.00022756122052669525
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016610929742455482
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013948790729045868
      

      outcome:

      passed
      

    Function: test_defaulting_eval

    • Test 161
      params: expr="3 * 4", default=0, expected=12

      📌 Runtime Parameters

      params:
        expr: 3 * 4
        default: 0
        expected: 12
      id: 3 * 4-0-12
      

      📌 Setup phase

      duration:

      0.00027727195993065834
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001638880930840969
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015672529116272926
      

      outcome:

      passed
      
    • Test 162
      params: expr="invalid + 1", default=99, expected=99

      📌 Runtime Parameters

      params:
        expr: invalid + 1
        default: 99
        expected: 99
      id: invalid + 1-99-99
      

      📌 Setup phase

      duration:

      0.0002745208330452442
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016280589625239372
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016658194363117218
      

      outcome:

      passed
      
    • Test 163
      params: expr="1 / 0", default=-1, expected=-1

      📌 Runtime Parameters

      params:
        expr: 1 / 0
        default: -1
        expected: -1
      id: 1 / 0--1--1
      

      📌 Setup phase

      duration:

      0.0002643261104822159
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001727989874780178
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015723984688520432
      

      outcome:

      passed
      
    • Test 164
      params: expr="2 ** 10", default=42, expected=42

      📌 Runtime Parameters

      params:
        expr: 2 ** 10
        default: 42
        expected: 42
      id: 2 ** 10-42-42
      

      📌 Setup phase

      duration:

      0.0002668369561433792
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017551612108945847
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016097864136099815
      

      outcome:

      passed
      
  • 📄 test_utils_exceptions.py

    Function: test_chained_exception_various

    • Test 165
      params: func="", expected_output="High-level task failed\ncaused by KeyError: 'missing'"

      📌 Runtime Parameters

      params:
        func: <function cause_key_error at 0x7f86b8c164c0>
        expected_output: High-level task failed
      caused by KeyError: 'missing'
      id: cause_key_error-High-level task failed\ncaused by KeyError: 'missing'
      

      📌 Setup phase

      duration:

      0.0002492605708539486
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001612999476492405
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014501996338367462
      

      outcome:

      passed
      
    • Test 166
      params: func="", expected_output="High-level task failed\ncaused by IndexError: list index out of range"

      📌 Runtime Parameters

      params:
        func: <function cause_index_error at 0x7f86b8c165e0>
        expected_output: High-level task failed
      caused by IndexError: list index out of range
      id: cause_index_error-High-level task failed\ncaused by IndexError: list index out of range
      

      📌 Setup phase

      duration:

      0.0002409159205853939
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001494172029197216
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014610914513468742
      

      outcome:

      passed
      
    • Test 167
      params: func="", expected_output="High-level task failed\ncaused by ZeroDivisionError: division by zero"

      📌 Runtime Parameters

      params:
        func: <function cause_zero_division at 0x7f86b8c16670>
        expected_output: High-level task failed
      caused by ZeroDivisionError: division by zero
      id: cause_zero_division-High-level task failed\ncaused by ZeroDivisionError: division by zero
      

      📌 Setup phase

      duration:

      0.0002183276228606701
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014804117381572723
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015249615535140038
      

      outcome:

      passed
      
    • Test 168
      params: func="", expected_output="High-level task failed\ncaused by ValueError: invalid literal for int() with base 10: 'not_a_number'"

      📌 Runtime Parameters

      params:
        func: <function cause_value_error at 0x7f86b8c16700>
        expected_output: High-level task failed
      caused by ValueError: invalid literal for int() with base 10: 'not_a_number'
      id: cause_value_error-High-level task failed\ncaused by ValueError: invalid literal for int() with base 10: 'not_a_number'
      

      📌 Setup phase

      duration:

      0.00022470811381936073
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014745071530342102
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001523299142718315
      

      outcome:

      passed
      
    • Test 169
      params: func="", expected_output="High-level task failed\ncaused by TypeError: can only concatenate str (not \"int\") to str"

      📌 Runtime Parameters

      params:
        func: <function cause_type_error at 0x7f86b8c16790>
        expected_output: High-level task failed
      caused by TypeError: can only concatenate str (not "int") to str
      id: cause_type_error-High-level task failed\ncaused by TypeError: can only concatenate str (not "int") to str
      

      📌 Setup phase

      duration:

      0.00022862572222948074
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016212090849876404
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001414860598742962
      

      outcome:

      passed
      

    Function: test_printed_exception

    • Test 170
      params: func="", expected_output="KeyError: 'missing'"

      📌 Runtime Parameters

      params:
        func: <function cause_key_error at 0x7f86b8c164c0>
        expected_output: KeyError: 'missing'
      id: cause_key_error-KeyError: 'missing'
      

      📌 Setup phase

      duration:

      0.0007273368537425995
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0018343902193009853
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00045862793922424316
      

      outcome:

      passed
      
    • Test 171
      params: func="", expected_output="IndexError: list index out of range"

      📌 Runtime Parameters

      params:
        func: <function cause_index_error at 0x7f86b8c165e0>
        expected_output: IndexError: list index out of range
      id: cause_index_error-IndexError: list index out of range
      

      📌 Setup phase

      duration:

      0.0005915048532187939
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0027700108475983143
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00041911937296390533
      

      outcome:

      passed
      
    • Test 172
      params: func="", expected_output="ZeroDivisionError: division by zero"

      📌 Runtime Parameters

      params:
        func: <function cause_zero_division at 0x7f86b8c16670>
        expected_output: ZeroDivisionError: division by zero
      id: cause_zero_division-ZeroDivisionError: division by zero
      

      📌 Setup phase

      duration:

      0.000592344906181097
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.004190269857645035
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0004272880032658577
      

      outcome:

      passed
      
    • Test 173
      params: func="", expected_output="ValueError: invalid literal for int() with base 10: 'not_a_number'"

      📌 Runtime Parameters

      params:
        func: <function cause_value_error at 0x7f86b8c16700>
        expected_output: ValueError: invalid literal for int() with base 10: 'not_a_number'
      id: cause_value_error-ValueError: invalid literal for int() with base 10: 'not_a_number'
      

      📌 Setup phase

      duration:

      0.0005866060964763165
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.003064283635467291
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0004367949441075325
      

      outcome:

      passed
      
    • Test 174
      params: func="", expected_output="TypeError: can only concatenate str (not \"int\") to str"

      📌 Runtime Parameters

      params:
        func: <function cause_type_error at 0x7f86b8c16790>
        expected_output: TypeError: can only concatenate str (not "int") to str
      id: cause_type_error-TypeError: can only concatenate str (not "int") to str
      

      📌 Setup phase

      duration:

      0.0005692681297659874
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.004499195143580437
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00041362596675753593
      

      outcome:

      passed
      
  • 📄 test_utils_get_adj.py

    Function: test_get_adj_success

    • Test 175

      📌 Setup phase

      duration:

      0.00013166479766368866
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006706342101097107
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011898530647158623
      

      outcome:

      passed
      

    Function: test_get_adj_not_found

    • Test 176

      📌 Setup phase

      duration:

      0.0004730639047920704
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009417789988219738
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00040218979120254517
      

      outcome:

      passed
      

    Function: test_ensure_adjs_mixed

    • Test 177

      📌 Setup phase

      duration:

      0.00012230826541781425
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007538008503615856
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011998182162642479
      

      outcome:

      passed
      

    Function: test_get_adjs_filter

    • Test 178

      📌 Setup phase

      duration:

      0.00012797117233276367
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008475151844322681
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012861192226409912
      

      outcome:

      passed
      
  • 📄 test_utils_hastyepics.py

    Function: test_motor_invalid_name_raises

    • Test 181

      📌 Setup phase

      duration:

      0.00012798281386494637
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00025474419817328453
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011792918667197227
      

      outcome:

      passed
      

    Function: test_motor_init_list_has_no_disabled

    • Test 182

      📌 Setup phase

      duration:

      0.00011282507330179214
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016046501696109772
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010111276060342789
      

      outcome:

      passed
      

    Function: test_motor_pv_connection_skipped_by_default

    • Test 184

      📌 Setup phase

      duration:

      0.00012984918430447578
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003681047819554806
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011155800893902779
      

      outcome:

      passed
      

    Function: test_motor_adds_all_extras_pvs

    • Test 185

      📌 Setup phase

      duration:

      0.00010965485125780106
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00034437887370586395
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001046638935804367
      

      outcome:

      passed
      

    Function: test_motor_PV_method_exists_and_works

    • Test 186

      📌 Setup phase

      duration:

      0.00010350765660405159
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00037161586806178093
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012298766523599625
      

      outcome:

      passed
      
  • 📄 test_utils_ipy.py

    Function: test_devices_repr_fallback_and_ignore

    • Test 187

      📌 Setup phase

      duration:

      0.0006867959164083004
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007943091914057732
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002673049457371235
      

      outcome:

      passed
      
  • 📄 test_utils_jsonext.py

    Function: test_json_validate_save_load

    • Test 188
      params: input_obj="[1 2 3]", expected=[1, 2, 3]

      📌 Runtime Parameters

      params:
        input_obj: [1 2 3]
        expected:
          - 1
          - 2
          - 3
      id: input_obj0-expected0
      

      📌 Setup phase

      duration:

      0.0008623227477073669
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006802300922572613
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019969278946518898
      

      outcome:

      passed
      
    • Test 189
      params: input_obj="42", expected=42

      📌 Runtime Parameters

      params:
        input_obj: 42
        expected: 42
      id: input_obj1-42
      

      📌 Setup phase

      duration:

      0.0006711287423968315
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00040230201557278633
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00022908207029104233
      

      outcome:

      passed
      
    • Test 190
      params: input_obj="(1-1j)", expected={"real": 1.0, "imag": -1.0}

      📌 Runtime Parameters

      params:
        input_obj: (1-1j)
        expected:
          real: 1.0
          imag: -1.0
      id: (1-1j)-expected2
      

      📌 Setup phase

      duration:

      0.0006281323730945587
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00042644795030355453
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001945970579981804
      

      outcome:

      passed
      
    • Test 191
      params: input_obj="/tmp/file.txt", expected="/tmp/file.txt"

      📌 Runtime Parameters

      params:
        input_obj: /tmp/file.txt
        expected: /tmp/file.txt
      id: input_obj3-/tmp/file.txt
      

      📌 Setup phase

      duration:

      0.0006125881336629391
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003689429722726345
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017477711662650108
      

      outcome:

      passed
      
    • Test 192
      params: input_obj="{1, 2, 3}", expected=[1, 2, 3]

      📌 Runtime Parameters

      params:
        input_obj: {1, 2, 3}
        expected:
          - 1
          - 2
          - 3
      id: input_obj4-expected4
      

      📌 Setup phase

      duration:

      0.0005931011401116848
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003651031292974949
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017349189147353172
      

      outcome:

      passed
      
    • Test 193
      params: input_obj="{'a': array([10, 20])}", expected={"a": [10, 20]}

      📌 Runtime Parameters

      params:
        input_obj: {'a': array([10, 20])}
        expected:
          a:
            - 10
            - 20
      id: input_obj5-expected5
      

      📌 Setup phase

      duration:

      0.0005741179920732975
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004064533859491348
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018446892499923706
      

      outcome:

      passed
      
    • Test 194
      params: input_obj="{'c': (2+3j)}", expected={"c": {"real": 2.0, "imag": 3.0}}

      📌 Runtime Parameters

      params:
        input_obj: {'c': (2+3j)}
        expected:
          c:
            real: 2.0
            imag: 3.0
      id: input_obj6-expected6
      

      📌 Setup phase

      duration:

      0.0006224480457603931
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005101528950035572
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018697185441851616
      

      outcome:

      passed
      
    • Test 195
      params: input_obj="{'nested': {'arr': array(10, 20],\n [30, 40), 'complex_num': (-1+5j), 'files': [PosixPath('/file1'), PosixPath('/file2')], 'set_values': {200, 100}, 'inner': {'num': 7}}}", expected={"nested": {"arr": 10, 20], [30, 40, "complex_num": {"real": -1.0, "imag": 5.0}, "files": ["/file1", "/file2"], "set_values": [100, 200], "inner": {"num": 7}}}

      📌 Runtime Parameters

      params:
        input_obj: {'nested': {'arr': array([[10, 20],
             [30, 40]]), 'complex_num': (-1+5j), 'files': [PosixPath('/file1'), PosixPath('/file2')], 'set_values': {200, 100}, 'inner': {'num': 7}}}
        expected:
          nested:
            arr:
              -           - 10
                - 20
              -           - 30
                - 40
            complex_num:
              real: -1.0
              imag: 5.0
            files:
              - /file1
              - /file2
            set_values:
              - 100
              - 200
            inner:
              num: 7
      id: input_obj7-expected7
      

      📌 Setup phase

      duration:

      0.0005881516262888908
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005727331154048443
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00022838497534394264
      

      outcome:

      passed
      
  • 📄 test_utils_lazypv.py

    Function: test_getattr

    • Test 196

      📌 Setup phase

      duration:

      0.00014732079580426216
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003068670630455017
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011213216930627823
      

      outcome:

      passed
      
  • 📄 test_utils_logcfg.py

    Function: test_custom_log_outputs

    • Test 197
      params: levelname="LONG", logfunc=" at 0x7f86b8494040>", message="This is a LONG message"

      📌 Runtime Parameters

      params:
        levelname: LONG
        logfunc: <function <lambda> at 0x7f86b8494040>
        message: This is a LONG message
      id: LONG-<lambda>-This is a LONG message
      

      📌 Setup phase

      duration:

      0.001416392158716917
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007544998079538345
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002263602800667286
      

      outcome:

      passed
      
    • Test 198
      params: levelname="ENLARGE", logfunc=" at 0x7f86b84940d0>", message="Please ENLARGE this!"

      📌 Runtime Parameters

      params:
        levelname: ENLARGE
        logfunc: <function <lambda> at 0x7f86b84940d0>
        message: Please ENLARGE this!
      id: ENLARGE-<lambda>-Please ENLARGE this!
      

      📌 Setup phase

      duration:

      0.0004433039575815201
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004038647748529911
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002260361798107624
      

      outcome:

      passed
      
  • 📄 test_utils_logign.py

    Function: test_ignore_log_msg_behavior

    • Test 200
      params: levelname="WARNING", msg_to_ignore="This should be ignored", msg_to_keep="This should appear"

      📌 Runtime Parameters

      params:
        levelname: WARNING
        msg_to_ignore: This should be ignored
        msg_to_keep: This should appear
      id: WARNING-This should be ignored-This should appear
      

      📌 Setup phase

      duration:

      0.0005742679350078106
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007733888924121857
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023438408970832825
      

      outcome:

      passed
      
    • Test 201
      params: levelname="ENLARGE", msg_to_ignore="ENLARGE this", msg_to_keep="Keep this ENLARGE"

      📌 Runtime Parameters

      params:
        levelname: ENLARGE
        msg_to_ignore: ENLARGE this
        msg_to_keep: Keep this ENLARGE
      id: ENLARGE-ENLARGE this-Keep this ENLARGE
      

      📌 Setup phase

      duration:

      0.000406079925596714
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004342310130596161
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024349475279450417
      

      outcome:

      passed
      

    Function: test_ignore_only_by_level

    • Test 202

      📌 Setup phase

      duration:

      0.00027208728715777397
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004195030778646469
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018097786232829094
      

      outcome:

      passed
      

    Function: test_ignore_only_by_msg

    • Test 203

      📌 Setup phase

      duration:

      0.0002602310851216316
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00038050394505262375
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002098139375448227
      

      outcome:

      passed
      

    Function: test_filter_removed_after_context

    • Test 204

      📌 Setup phase

      duration:

      0.0002359640784561634
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003782319836318493
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001904768869280815
      

      outcome:

      passed
      
  • 📄 test_utils_metaclasses.py

    Function: test_combine_classes_combines_methods

    • Test 205

      📌 Setup phase

      duration:

      0.0001445617526769638
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001985561102628708
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010510720312595367
      

      outcome:

      passed
      

    Function: test_registryabc_combines_registrymeta_and_abcmeta

    • Test 206

      📌 Setup phase

      duration:

      0.0001201266422867775
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0049689351581037045
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001235082745552063
      

      outcome:

      passed
      
  • 📄 test_utils_npy.py

    Function: test_nice_arange

    • Test 207
      params: start=0, stop=5, step=1, expected="[0. 1. 2. 3. 4. 5.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 1
        expected: [0. 1. 2. 3. 4. 5.]
      id: 0-5-1-expected0
      

      📌 Setup phase

      duration:

      0.0003816862590610981
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.018591880798339844
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002058790996670723
      

      outcome:

      passed
      
    • Test 209
      params: start=1, stop=2, step=0.3, expected="[1. 1.33333333 1.66666667 2. ]"

      📌 Runtime Parameters

      params:
        start: 1
        stop: 2
        step: 0.3
        expected: [1.         1.33333333 1.66666667 2.        ]
      id: 1-2-0.3-expected2
      

      📌 Setup phase

      duration:

      0.0003737080842256546
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004090219736099243
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020755082368850708
      

      outcome:

      passed
      

    Function: test_nice_linspace

    • Test 212
      params: start=0, stop=10, num=4, expected="[ 0. 2.5 5. 7.5 10. ]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 10
        num: 4
        expected: [ 0.   2.5  5.   7.5 10. ]
      id: 0-10-4-expected0
      

      📌 Setup phase

      duration:

      0.0004096408374607563
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00043882429599761963
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019786180928349495
      

      outcome:

      passed
      
    • Test 213
      params: start=5, stop=15, num=2, expected="[ 5. 10. 15.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 15
        num: 2
        expected: [ 5. 10. 15.]
      id: 5-15-2-expected1
      

      📌 Setup phase

      duration:

      0.0003664949908852577
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00035760411992669106
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001840740442276001
      

      outcome:

      passed
      
    • Test 214
      params: start=-5, stop=5, num=4, expected="[-5. -2.5 0. 2.5 5. ]"

      📌 Runtime Parameters

      params:
        start: -5
        stop: 5
        num: 4
        expected: [-5.  -2.5  0.   2.5  5. ]
      id: -5-5-4-expected2
      

      📌 Setup phase

      duration:

      0.00036278506740927696
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00033625494688749313
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017963163554668427
      

      outcome:

      passed
      
    • Test 215
      params: start=0, stop=1, num=3, expected="[0. 0.33333333 0.66666667 1. ]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 1
        num: 3
        expected: [0.         0.33333333 0.66666667 1.        ]
      id: 0-1-3-expected3
      

      📌 Setup phase

      duration:

      0.0003397068940103054
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003617708571255207
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019182777032256126
      

      outcome:

      passed
      
    • Test 216
      params: start=2, stop=2, num=3, expected="[2. 2. 2. 2.]"

      📌 Runtime Parameters

      params:
        start: 2
        stop: 2
        num: 3
        expected: [2. 2. 2. 2.]
      id: 2-2-3-expected4
      

      📌 Setup phase

      duration:

      0.000353190116584301
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003375178202986717
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018928106874227524
      

      outcome:

      passed
      
    • Test 217
      params: start=3, stop=0, num=3, expected="[3. 2. 1. 0.]"

      📌 Runtime Parameters

      params:
        start: 3
        stop: 0
        num: 3
        expected: [3. 2. 1. 0.]
      id: 3-0-3-expected5
      

      📌 Setup phase

      duration:

      0.000333195086568594
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00032502925023436546
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001838761381804943
      

      outcome:

      passed
      
    • Test 218
      params: start=0, stop=1, num=0, expected="[0.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 1
        num: 0
        expected: [0.]
      id: 0-1-0-expected6
      

      📌 Setup phase

      duration:

      0.00033179717138409615
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003453097306191921
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018713297322392464
      

      outcome:

      passed
      

    Function: test_nice_steps_centered

    • Test 219
      params: start=-2, stop=2, step=2, endpoint=true, expected="[-2. 0. 2.]"

      📌 Runtime Parameters

      params:
        start: -2
        stop: 2
        step: 2
        endpoint: True
        expected: [-2.  0.  2.]
      id: -2-2-2-True-expected0
      

      📌 Setup phase

      duration:

      0.00039430800825357437
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00035991985350847244
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020227208733558655
      

      outcome:

      passed
      
    • Test 220
      params: start=0, stop=5, step=2, endpoint=true, expected="[0. 2. 4.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: True
        expected: [0. 2. 4.]
      id: 0-5-2-True-expected1
      

      📌 Setup phase

      duration:

      0.0003801030106842518
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00033139903098344803
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00021255528554320335
      

      outcome:

      passed
      
    • Test 221
      params: start=0, stop=5, step=2, endpoint=false, expected="[0. 2.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: False
        expected: [0. 2.]
      id: 0-5-2-False-expected2
      

      📌 Setup phase

      duration:

      0.0003921198658645153
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003732251934707165
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019589997828006744
      

      outcome:

      passed
      
    • Test 222
      params: start=-1, stop=2, step=1.5, endpoint=true, expected="[-1.5 0. 1.5]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: True
        expected: [-1.5  0.   1.5]
      id: -1-2-1.5-True-expected3
      

      📌 Setup phase

      duration:

      0.0003789179027080536
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00032636895775794983
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001930990256369114
      

      outcome:

      passed
      

    Function: test_nice_steps_left_aligned

    • Test 225
      params: start=-1, stop=2, step=1.5, endpoint=true, expected="[-1. 0.5 2. ]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: True
        expected: [-1.   0.5  2. ]
      id: -1-2-1.5-True-expected2
      

      📌 Setup phase

      duration:

      0.0004085106775164604
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003490867093205452
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001980811357498169
      

      outcome:

      passed
      
    • Test 226
      params: start=-1, stop=2, step=1.5, endpoint=false, expected="[-1. 0.5]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: False
        expected: [-1.   0.5]
      id: -1-2-1.5-False-expected3
      

      📌 Setup phase

      duration:

      0.00038994336500763893
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003306139260530472
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019262684509158134
      

      outcome:

      passed
      

    Function: test_within_scalar

    • Test 237
      params: val=5, vmin=0, vmax=10, expected=true

      📌 Runtime Parameters

      params:
        val: 5
        vmin: 0
        vmax: 10
        expected: True
      id: 5-0-10-True
      

      📌 Setup phase

      duration:

      0.00034116022288799286
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015305820852518082
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001702290028333664
      

      outcome:

      passed
      
    • Test 238
      params: val=5, vmin=6, vmax=10, expected=false

      📌 Runtime Parameters

      params:
        val: 5
        vmin: 6
        vmax: 10
        expected: False
      id: 5-6-10-False
      

      📌 Setup phase

      duration:

      0.0003251270391047001
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013953587040305138
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001658918336033821
      

      outcome:

      passed
      
    • Test 239
      params: val=5, vmin=null, vmax=10, expected=true

      📌 Runtime Parameters

      params:
        val: 5
        vmin: None
        vmax: 10
        expected: True
      id: 5-None-10-True
      

      📌 Setup phase

      duration:

      0.0003050561062991619
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013413187116384506
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016045570373535156
      

      outcome:

      passed
      
    • Test 240
      params: val=5, vmin=0, vmax=null, expected=true

      📌 Runtime Parameters

      params:
        val: 5
        vmin: 0
        vmax: None
        expected: True
      id: 5-0-None-True
      

      📌 Setup phase

      duration:

      0.00030419137328863144
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001517031341791153
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016185594722628593
      

      outcome:

      passed
      
    • Test 241
      params: val=5, vmin=null, vmax=null, expected=true

      📌 Runtime Parameters

      params:
        val: 5
        vmin: None
        vmax: None
        expected: True
      id: 5-None-None-True
      

      📌 Setup phase

      duration:

      0.0002933042123913765
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000136443879455328
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016191694885492325
      

      outcome:

      passed
      

    Function: test_within_fraction

    • Test 242
      params: data=[1, 2, 3, 4, 5], vmin=2, vmax=5, expected=0.6

      📌 Runtime Parameters

      params:
        data:
          - 1
          - 2
          - 3
          - 4
          - 5
        vmin: 2
        vmax: 5
        expected: 0.6
      id: data0-2-5-0.6
      

      📌 Setup phase

      duration:

      0.00031250109896063805
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002843928523361683
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017464719712734222
      

      outcome:

      passed
      
    • Test 243
      params: data=[10, 20, 30], vmin=5, vmax=25, expected=0.6666666666666666

      📌 Runtime Parameters

      params:
        data:
          - 10
          - 20
          - 30
        vmin: 5
        vmax: 25
        expected: 0.6666666666666666
      id: data1-5-25-0.6666666666666666
      

      📌 Setup phase

      duration:

      0.00038062501698732376
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002566180191934109
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001804698258638382
      

      outcome:

      passed
      
    • Test 244
      params: data=[1, 2, 3], vmin=null, vmax=2, expected=0.3333333333333333

      📌 Runtime Parameters

      params:
        data:
          - 1
          - 2
          - 3
        vmin: None
        vmax: 2
        expected: 0.3333333333333333
      id: data2-None-2-0.3333333333333333
      

      📌 Setup phase

      duration:

      0.0003362228162586689
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022757099941372871
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016956590116024017
      

      outcome:

      passed
      
    • Test 245
      params: data=[], vmin=0, vmax=1, expected=0

      📌 Runtime Parameters

      params:
        data:
      []
        vmin: 0
        vmax: 1
        expected: 0
      id: data3-0-1-0
      

      📌 Setup phase

      duration:

      0.00033140601590275764
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002565700560808182
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017324788495898247
      

      outcome:

      passed
      

    Function: test_fraction_to_percentage

    • Test 246
      params: fraction=0.456, ndigits=1, expected=45.6

      📌 Runtime Parameters

      params:
        fraction: 0.456
        ndigits: 1
        expected: 45.6
      id: 0.456-1-45.6
      

      📌 Setup phase

      duration:

      0.0002851467579603195
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001536826603114605
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000153345987200737
      

      outcome:

      passed
      
    • Test 247
      params: fraction=0.12345, ndigits=2, expected=12.35

      📌 Runtime Parameters

      params:
        fraction: 0.12345
        ndigits: 2
        expected: 12.35
      id: 0.12345-2-12.35
      

      📌 Setup phase

      duration:

      0.00025809695944190025
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001394897699356079
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014659902080893517
      

      outcome:

      passed
      
    • Test 248
      params: fraction=0.9999, ndigits=0, expected=100.0

      📌 Runtime Parameters

      params:
        fraction: 0.9999
        ndigits: 0
        expected: 100.0
      id: 0.9999-0-100.0
      

      📌 Setup phase

      duration:

      0.00027375901117920876
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014158431440591812
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014906702563166618
      

      outcome:

      passed
      

    Function: test_get_dtype

    • Test 249
      params: val="[1 2 3]", expected=""

      📌 Runtime Parameters

      params:
        val: [1 2 3]
        expected: <class 'numpy.ndarray'>
      id: val0-ndarray
      

      📌 Setup phase

      duration:

      0.00023017777130007744
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014094822108745575
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001458362676203251
      

      outcome:

      passed
      
    • Test 250
      params: val=[1, 2, 3], expected=""

      📌 Runtime Parameters

      params:
        val:
          - 1
          - 2
          - 3
        expected: <class 'list'>
      id: val1-list
      

      📌 Setup phase

      duration:

      0.00023769820109009743
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001451447606086731
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001461259089410305
      

      outcome:

      passed
      
    • Test 251
      params: val=3.14, expected=""

      📌 Runtime Parameters

      params:
        val: 3.14
        expected: <class 'float'>
      id: 3.14-float
      

      📌 Setup phase

      duration:

      0.00022718682885169983
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013975519686937332
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014006206765770912
      

      outcome:

      passed
      

    Function: test_get_shape

    • Test 252
      params: val="1 2]\n [3 4", expected=[2, 2]

      📌 Runtime Parameters

      params:
        val: [[1 2]
       [3 4]]
        expected:
          - 2
          - 2
      id: val0-expected0
      

      📌 Setup phase

      duration:

      0.0002104039303958416
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013524619862437248
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015881704166531563
      

      outcome:

      passed
      
    • Test 253
      params: val=[1, 2, 3], expected=[]

      📌 Runtime Parameters

      params:
        val:
          - 1
          - 2
          - 3
        expected:
      []
      id: val1-expected1
      

      📌 Setup phase

      duration:

      0.00024243677034974098
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001422576606273651
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013731792569160461
      

      outcome:

      passed
      
    • Test 254
      params: val=42, expected=[]

      📌 Runtime Parameters

      params:
        val: 42
        expected:
      []
      id: 42-expected2
      

      📌 Setup phase

      duration:

      0.0002231900580227375
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016984669491648674
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001410837285220623
      

      outcome:

      passed
      

    Function: test_is_array

    • Test 255
      params: val="[1 2 3]", expected=true

      📌 Runtime Parameters

      params:
        val: [1 2 3]
        expected: True
      id: val0-True
      

      📌 Setup phase

      duration:

      0.00024348590523004532
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013345712795853615
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015356764197349548
      

      outcome:

      passed
      
    • Test 256
      params: val=[1, 2, 3], expected=false

      📌 Runtime Parameters

      params:
        val:
          - 1
          - 2
          - 3
        expected: False
      id: val1-False
      

      📌 Setup phase

      duration:

      0.0002266070805490017
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001385980285704136
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001361370086669922
      

      outcome:

      passed
      
    • Test 257
      params: val=42, expected=false

      📌 Runtime Parameters

      params:
        val: 42
        expected: False
      id: 42-False
      

      📌 Setup phase

      duration:

      0.00021424982696771622
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013681873679161072
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015402911230921745
      

      outcome:

      passed
      
  • 📄 test_utils_path.py

    Function: test_can_create_all_files_user_says_yes

    • Test 258

      📌 Setup phase

      duration:

      0.00011813919991254807
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006258916109800339
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012035202234983444
      

      outcome:

      passed
      

    Function: test_can_create_all_files_user_says_no

    • Test 259

      📌 Setup phase

      duration:

      0.00012659188359975815
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00038124900311231613
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011773500591516495
      

      outcome:

      passed
      

    Function: test_make_missing_dir_creates_folder

    • Test 260

      📌 Setup phase

      duration:

      0.00011519202962517738
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00044334959238767624
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011215731501579285
      

      outcome:

      passed
      

    Function: test_glob_files_returns_matching_files_only

    • Test 261

      📌 Setup phase

      duration:

      0.0001189778558909893
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009441827423870564
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001261625438928604
      

      outcome:

      passed
      

    Function: test_filter_files_excludes_directories

    • Test 262

      📌 Setup phase

      duration:

      0.00011576991528272629
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005617761053144932
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001120162196457386
      

      outcome:

      passed
      
  • 📄 test_utils_picklio.py

    Function: test_pickle_and_unpickle

    • Test 263
      params: test_obj={"a": 1, "b": [2, 3], "c": {"world": "ok"}}

      📌 Runtime Parameters

      params:
        test_obj:
          a: 1
          b:
            - 2
            - 3
          c:
            world: ok
      id: test_obj0
      

      📌 Setup phase

      duration:

      0.0007369387894868851
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003535710275173187
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015987781807780266
      

      outcome:

      passed
      
    • Test 264
      params: test_obj=[1, 2, 3, 4, 5]

      📌 Runtime Parameters

      params:
        test_obj:
          - 1
          - 2
          - 3
          - 4
          - 5
      id: test_obj1
      

      📌 Setup phase

      duration:

      0.0006443532183766365
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00028732791543006897
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016776332631707191
      

      outcome:

      passed
      
    • Test 265
      params: test_obj="simple string"

      📌 Runtime Parameters

      params:
        test_obj: simple string
      id: simple string
      

      📌 Setup phase

      duration:

      0.0005076383240520954
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002865968272089958
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015886826440691948
      

      outcome:

      passed
      
    • Test 266
      params: test_obj=42

      📌 Runtime Parameters

      params:
        test_obj: 42
      id: 42
      

      📌 Setup phase

      duration:

      0.0005169827491044998
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00028269505128264427
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016072019934654236
      

      outcome:

      passed
      
    • Test 267
      params: test_obj=3.14159

      📌 Runtime Parameters

      params:
        test_obj: 3.14159
      id: 3.14159
      

      📌 Setup phase

      duration:

      0.000562785193324089
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00028274906799197197
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017119525000452995
      

      outcome:

      passed
      
    • Test 268
      params: test_obj=[true, false, null]

      📌 Runtime Parameters

      params:
        test_obj:
          - True
          - (vide)
          - (vide)
      id: test_obj5
      

      📌 Setup phase

      duration:

      0.0005148909986019135
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002819937653839588
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001594838686287403
      

      outcome:

      passed
      
    • Test 269
      params: test_obj={"complex": [{"list": [1, 2]}, {"dict": {"x": 10}}]}

      📌 Runtime Parameters

      params:
        test_obj:
          complex:
            -         list:
                - 1
                - 2
            -         dict:
                x: 10
      id: test_obj6
      

      📌 Setup phase

      duration:

      0.0005400502122938633
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000281656626611948
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015843380242586136
      

      outcome:

      passed
      
  • 📄 test_utils_printing.py

    Function: test_maxlen_valid

    • Test 270
      params: seq=["a", "abc", ""], expected=3

      📌 Runtime Parameters

      params:
        seq:
          - a
          - abc
          - (vide)
        expected: 3
      id: seq0-3
      

      📌 Setup phase

      duration:

      0.0002489960752427578
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000171734020113945
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014335010200738907
      

      outcome:

      passed
      
    • Test 271
      params: seq=[], expected=0

      📌 Runtime Parameters

      params:
        seq:
      []
        expected: 0
      id: seq1-0
      

      📌 Setup phase

      duration:

      0.00023934803903102875
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014428608119487762
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000141798984259367
      

      outcome:

      passed
      
    • Test 272
      params: seq=1, 2], [3], [4, 5, 6, expected=3

      📌 Runtime Parameters

      params:
        seq:
          -       - 1
            - 2
          -       - 3
          -       - 4
            - 5
            - 6
        expected: 3
      id: seq2-3
      

      📌 Setup phase

      duration:

      0.00022021401673555374
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013893889263272285
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014580786228179932
      

      outcome:

      passed
      
    • Test 273
      params: seq=[{"a": 2, "b": 3}, {}, {"c": 4}], expected=2

      📌 Runtime Parameters

      params:
        seq:
          -       a: 2
            b: 3
          - (vide)
          -       c: 4
        expected: 2
      id: seq3-2
      

      📌 Setup phase

      duration:

      0.00022251997143030167
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013985903933644295
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014345021918416023
      

      outcome:

      passed
      

    Function: test_strlen

    • Test 274
      params: value=42, expected=2

      📌 Runtime Parameters

      params:
        value: 42
        expected: 2
      id: 42-2
      

      📌 Setup phase

      duration:

      0.00021735019981861115
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015172967687249184
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014981627464294434
      

      outcome:

      passed
      
    • Test 275
      params: value="hello", expected=5

      📌 Runtime Parameters

      params:
        value: hello
        expected: 5
      id: hello-5
      

      📌 Setup phase

      duration:

      0.00021608592942357063
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013512186706066132
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001404457725584507
      

      outcome:

      passed
      
    • Test 276
      params: value=false, expected=5

      📌 Runtime Parameters

      params:
        value: False
        expected: 5
      id: False-5
      

      📌 Setup phase

      duration:

      0.00022221403196454048
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001343563199043274
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001343446783721447
      

      outcome:

      passed
      
    • Test 277
      params: value=null, expected=4

      📌 Runtime Parameters

      params:
        value: None
        expected: 4
      id: None-4
      

      📌 Setup phase

      duration:

      0.00021567195653915405
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014383671805262566
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013311579823493958
      

      outcome:

      passed
      
    • Test 278
      params: value=[1, 2, 3], expected=9

      📌 Runtime Parameters

      params:
        value:
          - 1
          - 2
          - 3
        expected: 9
      id: value4-9
      

      📌 Setup phase

      duration:

      0.00021878816187381744
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001478651538491249
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013511627912521362
      

      outcome:

      passed
      
    • Test 279
      params: value={"a": 1}, expected=8

      📌 Runtime Parameters

      params:
        value:
          a: 1
        expected: 8
      id: value5-8
      

      📌 Setup phase

      duration:

      0.00020448723807930946
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014063110575079918
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001368001103401184
      

      outcome:

      passed
      
    • Test 280
      params: value=[1, 2], expected=6

      📌 Runtime Parameters

      params:
        value:
          - 1
          - 2
        expected: 6
      id: value6-6
      

      📌 Setup phase

      duration:

      0.00022071786224842072
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013545481488108635
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013520987704396248
      

      outcome:

      passed
      
    • Test 281
      params: value="", expected=0

      📌 Runtime Parameters

      params:
        value: None
        expected: 0
      id: -0
      

      📌 Setup phase

      duration:

      0.00023619504645466805
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013711396604776382
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013813888654112816
      

      outcome:

      passed
      
    • Test 282
      params: value="this is a phrase", expected=16

      📌 Runtime Parameters

      params:
        value: this is a phrase
        expected: 16
      id: this is a phrase-16
      

      📌 Setup phase

      duration:

      0.00023350398987531662
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001342599280178547
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013263896107673645
      

      outcome:

      passed
      

    Function: test_maxstrlen

    • Test 283
      params: seq=[1, true, 3.1415], expected=6

      📌 Runtime Parameters

      params:
        seq:
          - 1
          - True
          - 3.1415
        expected: 6
      id: seq0-6
      

      📌 Setup phase

      duration:

      0.0002086772583425045
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001460299827158451
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001386287622153759
      

      outcome:

      passed
      
    • Test 284
      params: seq=["aa", "bbb", "c"], expected=3

      📌 Runtime Parameters

      params:
        seq:
          - aa
          - bbb
          - c
        expected: 3
      id: seq1-3
      

      📌 Setup phase

      duration:

      0.0002218605950474739
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022037513554096222
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001629367470741272
      

      outcome:

      passed
      
    • Test 285
      params: seq=1, 2], [], [1, 2, 3, expected=9

      📌 Runtime Parameters

      params:
        seq:
          -       - 1
            - 2
          - (vide)
          -       - 1
            - 2
            - 3
        expected: 9
      id: seq2-9
      

      📌 Setup phase

      duration:

      0.00022553792223334312
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001480812206864357
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014114519581198692
      

      outcome:

      passed
      
    • Test 286
      params: seq=[{"a": 1}, {}, {"a": 1, "b": 2}], expected=16

      📌 Runtime Parameters

      params:
        seq:
          -       a: 1
          - (vide)
          -       a: 1
            b: 2
        expected: 16
      id: seq3-16
      

      📌 Setup phase

      duration:

      0.00021774880588054657
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014154473319649696
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013887276872992516
      

      outcome:

      passed
      
    • Test 287
      params: seq=[null, false, 12345], expected=5

      📌 Runtime Parameters

      params:
        seq:
          - (vide)
          - (vide)
          - 12345
        expected: 5
      id: seq4-5
      

      📌 Setup phase

      duration:

      0.00022528227418661118
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016026711091399193
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013773003593087196
      

      outcome:

      passed
      

    Function: test_transpose_matrix

    • Test 288
      params: data=1, 2], [3, 4, expected=1, 3], [2, 4

      📌 Runtime Parameters

      params:
        data:
          -       - 1
            - 2
          -       - 3
            - 4
        expected:
          -       - 1
            - 3
          -       - 2
            - 4
      id: data0-expected0
      

      📌 Setup phase

      duration:

      0.00022224802523851395
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001596212387084961
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014035077765583992
      

      outcome:

      passed
      
    • Test 289

      📌 Runtime Parameters

      params:
        data:
          -       - a
            - b
          -       - c
            - d
        expected:
          -       - a
            - c
          -       - b
            - d
      id: data1-expected1
      

      📌 Setup phase

      duration:

      0.000211366917937994
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013347016647458076
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001396150328218937
      

      outcome:

      passed
      
    • Test 290
      params: data={"x": 1}, {"y": 2}], [{"x": 3}, {"y": 4}, expected={"x": 1}, {"x": 3}], [{"y": 2}, {"y": 4}

      📌 Runtime Parameters

      params:
        data:
          -       -         x: 1
            -         y: 2
          -       -         x: 3
            -         y: 4
        expected:
          -       -         x: 1
            -         x: 3
          -       -         y: 2
            -         y: 4
      id: data2-expected2
      

      📌 Setup phase

      duration:

      0.00022567389532923698
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013605691492557526
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013317912817001343
      

      outcome:

      passed
      

    Function: test_prepend

    • Test 291
      params: initial=[1, 2, 3], prepend=1, expected=[1, 2, 3]

      📌 Runtime Parameters

      params:
        initial:
          - 1
          - 2
          - 3
        prepend: 1
        expected:
          - 1
          - 2
          - 3
      id: initial0-1-expected0
      

      📌 Setup phase

      duration:

      0.0002733031287789345
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014154287055134773
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015163514763116837
      

      outcome:

      passed
      
    • Test 292
      params: initial=["a", "b", "c"], prepend="a", expected=["a", "b", "c"]

      📌 Runtime Parameters

      params:
        initial:
          - a
          - b
          - c
        prepend: a
        expected:
          - a
          - b
          - c
      id: initial1-a-expected1
      

      📌 Setup phase

      duration:

      0.0002538752742111683
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001333639957010746
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001457342877984047
      

      outcome:

      passed
      
    • Test 293
      params: initial=[{"a": 1}, {"b": 2}], prepend={"a": 1}, expected=[{"a": 1}, {"b": 2}]

      📌 Runtime Parameters

      params:
        initial:
          -       a: 1
          -       b: 2
        prepend:
          a: 1
        expected:
          -       a: 1
          -       b: 2
      id: initial2-prepend2-expected2
      

      📌 Setup phase

      duration:

      0.00026467908173799515
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013688113540410995
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015752064064145088
      

      outcome:

      passed
      
    • Test 294
      params: initial=1], [2], [3, prepend=[1], expected=1], [2], [3

      📌 Runtime Parameters

      params:
        initial:
          -       - 1
          -       - 2
          -       - 3
        prepend:
          - 1
        expected:
          -       - 1
          -       - 2
          -       - 3
      id: initial3-prepend3-expected3
      

      📌 Setup phase

      duration:

      0.0002613780088722706
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013436190783977509
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014986610040068626
      

      outcome:

      passed
      

    Function: test_fmt_table_line

    • Test 295
      params: entries=["a", "bbb"], widths=[3, 5], expected=" a bbb"

      📌 Runtime Parameters

      params:
        entries:
          - a
          - bbb
        widths:
          - 3
          - 5
        expected:   a   bbb
      id: entries0-widths0-  a   bbb
      

      📌 Setup phase

      duration:

      0.0002712029963731766
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015572179108858109
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015117134898900986
      

      outcome:

      passed
      
    • Test 296
      params: entries=[1, 2], widths=[2, 2], expected=" 1 2"

      📌 Runtime Parameters

      params:
        entries:
          - 1
          - 2
        widths:
          - 2
          - 2
        expected:  1  2
      id: entries1-widths1- 1  2
      

      📌 Setup phase

      duration:

      0.00025872327387332916
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014020223170518875
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001546521671116352
      

      outcome:

      passed
      
    • Test 297
      params: entries=["long", "val"], widths=[6, 4], expected=" long val"

      📌 Runtime Parameters

      params:
        entries:
          - long
          - val
        widths:
          - 6
          - 4
        expected:   long  val
      id: entries2-widths2-  long  val
      

      📌 Setup phase

      duration:

      0.00027423305436968803
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014029769226908684
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014668097719550133
      

      outcome:

      passed
      
    • Test 298
      params: entries=[true, false], widths=[5, 6], expected=" True False"

      📌 Runtime Parameters

      params:
        entries:
          - True
          - (vide)
        widths:
          - 5
          - 6
        expected:  True  False
      id: entries3-widths3- True  False
      

      📌 Setup phase

      duration:

      0.0002768491394817829
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014107488095760345
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014980509877204895
      

      outcome:

      passed
      
    • Test 299
      params: entries=[123, 4567], widths=[5, 5], expected=" 123 4567"

      📌 Runtime Parameters

      params:
        entries:
          - 123
          - 4567
        widths:
          - 5
          - 5
        expected:   123  4567
      id: entries4-widths4-  123  4567
      

      📌 Setup phase

      duration:

      0.00025219889357686043
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014438480138778687
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001508546993136406
      

      outcome:

      passed
      
    • Test 300
      params: entries=["text with space", "end"], widths=[16, 5], expected=" text with space end"

      📌 Runtime Parameters

      params:
        entries:
          - text with space
          - end
        widths:
          - 16
          - 5
        expected:  text with space   end
      id: entries5-widths5- text with space   end
      

      📌 Setup phase

      duration:

      0.000263947993516922
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013813190162181854
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001703193411231041
      

      outcome:

      passed
      
    • Test 301
      params: entries=[{"a": 1}, {"b": 2}], widths=[10, 10], expected=" {'a': 1} {'b': 2}"

      📌 Runtime Parameters

      params:
        entries:
          -       a: 1
          -       b: 2
        widths:
          - 10
          - 10
        expected:   {'a': 1}   {'b': 2}
      id: entries6-widths6-  {'a': 1}   {'b': 2}
      

      📌 Setup phase

      duration:

      0.00026978272944688797
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014204531908035278
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014936178922653198
      

      outcome:

      passed
      
    • Test 302
      params: entries=1, 2], [3, 4, widths=[10, 10], expected=" [1, 2] [3, 4]"

      📌 Runtime Parameters

      params:
        entries:
          -       - 1
            - 2
          -       - 3
            - 4
        widths:
          - 10
          - 10
        expected:     [1, 2]     [3, 4]
      id: entries7-widths7-    [1, 2]     [3, 4]
      

      📌 Setup phase

      duration:

      0.0002570399083197117
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001560659147799015
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001507108099758625
      

      outcome:

      passed
      

    Function: test_fmt_label_sep

    • Test 303
      params: widths=[3, 4], line="-", expected="--- ----"

      📌 Runtime Parameters

      params:
        widths:
          - 3
          - 4
        line: -
        expected: --- ----
      id: widths0------ ----
      

      📌 Setup phase

      duration:

      0.0002549518831074238
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013927603140473366
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015200022608041763
      

      outcome:

      passed
      
    • Test 304
      params: widths=[2, 3], line="=", expected="== ==="

      📌 Runtime Parameters

      params:
        widths:
          - 2
          - 3
        line: =
        expected: == ===
      id: widths1-=-== ===
      

      📌 Setup phase

      duration:

      0.00026923324912786484
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013766298070549965
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000144164077937603
      

      outcome:

      passed
      
    • Test 305
      params: widths=[5, 2], line="*", expected="***** **"

      📌 Runtime Parameters

      params:
        widths:
          - 5
          - 2
        line: *
        expected: ***** **
      id: widths2-*-***** **
      

      📌 Setup phase

      duration:

      0.00025995727628469467
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013743527233600616
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015068519860506058
      

      outcome:

      passed
      

    Function: test_printable_dict_with_header

    • Test 306
      params: d={"medium": true, "very_long_key": 3.14, "x": 1}, header="HeaderTest", expected_lines=["HeaderTest:", "-----------", "medium: True", "very_long_key: 3.14", "x: 1", ""]

      📌 Runtime Parameters

      params:
        d:
          medium: True
          very_long_key: 3.14
          x: 1
        header: HeaderTest
        expected_lines:
          - HeaderTest:
          - -----------
          - medium:        True
          - very_long_key: 3.14
          - x:             1
          - (vide)
      id: d0-HeaderTest-expected_lines0
      

      📌 Setup phase

      duration:

      0.00027211615815758705
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020277779549360275
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001638038083910942
      

      outcome:

      passed
      

    Function: test_printable_dict_of_dicts

    • Test 307

      📌 Setup phase

      duration:

      0.00010602409020066261
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002151508815586567
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011412333697080612
      

      outcome:

      passed
      

    Function: test_printable_table

    • Test 308
      params: data="X1", true, 0.1234, {"meta": "ok"}], ["AnotherSample", false, 98765.4321, {"meta": [1, 2, 3]}], ["Z", null, 0.0, {"meta": {"nested_key": 42}}, labels=["ID", "✓ Success?", "SuperPrecisionValue", "Result Metadata"], expected="A: ID\nB: ✓ Success?\nC: SuperPrecisionValue\nD: Result Metadata\n\n# A B C D\n- ------------- ----- ---------- ----------------------------\n0 X1 True 0.1234 {'meta': 'ok'}\n1 AnotherSample False 98765.4321 {'meta': [1, 2, 3]}\n2 Z None 0.0 {'meta': {'nested_key': 42}}"

      📌 Runtime Parameters

      params:
        data:
          -       - X1
            - True
            - 0.1234
            -         meta: ok
          -       - AnotherSample
            - (vide)
            - 98765.4321
            -         meta:
                - 1
                - 2
                - 3
          -       - Z
            - (vide)
            - (vide)
            -         meta:
                nested_key: 42
        labels:
          - ID
          -  Success?
          - SuperPrecisionValue
          - Result Metadata
        expected: A: ID
      B:  Success?
      C: SuperPrecisionValue
      D: Result Metadata
      
      #             A     B          C                            D
      - ------------- ----- ---------- ----------------------------
      0            X1  True     0.1234               {'meta': 'ok'}
      1 AnotherSample False 98765.4321          {'meta': [1, 2, 3]}
      2             Z  None        0.0 {'meta': {'nested_key': 42}}
      id: data0-labels0-A: ID\nB: \u2713 Success?\nC: SuperPrecisionValue\nD: Result Metadata\n\n#             A     B          C                            D\n- ------------- ----- ---------- ----------------------------\n0            X1  True     0.1234               {'meta': 'ok'}\n1 AnotherSample False 98765.4321          {'meta': [1, 2, 3]}\n2             Z  None        0.0 {'meta': {'nested_key': 42}}
      

      📌 Setup phase

      duration:

      0.0003411080688238144
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003225631080567837
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016523804515600204
      

      outcome:

      passed
      
  • 📄 test_utils_pv.py

    Function: test_use_callback_context_manager

    • Test 315

      📌 Setup phase

      duration:

      0.00046575209125876427
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016833096742630005
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017458433285355568
      

      outcome:

      passed
      
  • 📄 test_utils_rangebar.py

    Function: test_full_progress_bar

    • Test 316

      📌 Setup phase

      duration:

      0.0003189300186932087
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00024149101227521896
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001796577125787735
      

      outcome:

      passed
      

    Function: test_half_progress_bar

    • Test 317

      📌 Setup phase

      duration:

      0.0002735750749707222
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00021940283477306366
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016385363414883614
      

      outcome:

      passed
      

    Function: test_zero_progress_bar

    • Test 318

      📌 Setup phase

      duration:

      0.00028203194960951805
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001870337873697281
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001714993268251419
      

      outcome:

      passed
      

    Function: test_overflow_bar

    • Test 319

      📌 Setup phase

      duration:

      0.00028466200456023216
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018810108304023743
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016585690900683403
      

      outcome:

      passed
      

    Function: test_underflow_bar

    • Test 320

      📌 Setup phase

      duration:

      0.0002655312418937683
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019040890038013458
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017713475972414017
      

      outcome:

      passed
      

    Function: test_repr

    • Test 321

      📌 Setup phase

      duration:

      0.00010899081826210022
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014583207666873932
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011913105845451355
      

      outcome:

      passed
      

    Function: test_each_value_separately

    • Test 322
      params: value=0, expected_bar_part=" "

      📌 Runtime Parameters

      params:
        value: 0
        expected_bar_part:           
      id: 0-          
      

      📌 Setup phase

      duration:

      0.0003661341033875942
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020456081256270409
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020616920664906502
      

      outcome:

      passed
      
    • Test 323
      params: value=10, expected_bar_part="█ "

      📌 Runtime Parameters

      params:
        value: 10
        expected_bar_part:          
      id: 10-\u2588         
      

      📌 Setup phase

      duration:

      0.0003873547539114952
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019357679411768913
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019578402861952782
      

      outcome:

      passed
      
    • Test 324
      params: value=25, expected_bar_part="██▌ "

      📌 Runtime Parameters

      params:
        value: 25
        expected_bar_part: ██▌       
      id: 25-\u2588\u2588\u258c       
      

      📌 Setup phase

      duration:

      0.00036204513162374496
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019887927919626236
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018989574164152145
      

      outcome:

      passed
      
    • Test 325
      params: value=27, expected_bar_part="██▊ "

      📌 Runtime Parameters

      params:
        value: 27
        expected_bar_part: ██▊       
      id: 27-\u2588\u2588\u258a       
      

      📌 Setup phase

      duration:

      0.00035674916580319405
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019636889919638634
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001887367106974125
      

      outcome:

      passed
      
    • Test 326
      params: value=49, expected_bar_part="████▉ "

      📌 Runtime Parameters

      params:
        value: 49
        expected_bar_part: ████▉     
      id: 49-\u2588\u2588\u2588\u2588\u2589     
      

      📌 Setup phase

      duration:

      0.00035802461206912994
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000188515055924654
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020190607756376266
      

      outcome:

      passed
      
    • Test 327
      params: value=50, expected_bar_part="█████ "

      📌 Runtime Parameters

      params:
        value: 50
        expected_bar_part: █████     
      id: 50-\u2588\u2588\u2588\u2588\u2588     
      

      📌 Setup phase

      duration:

      0.00035598501563072205
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00024781608954072
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019461475312709808
      

      outcome:

      passed
      
    • Test 328
      params: value=51, expected_bar_part="█████▏ "

      📌 Runtime Parameters

      params:
        value: 51
        expected_bar_part: █████▏    
      id: 51-\u2588\u2588\u2588\u2588\u2588\u258f    
      

      📌 Setup phase

      duration:

      0.00038129743188619614
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001934478059411049
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001915222965180874
      

      outcome:

      passed
      
    • Test 329
      params: value=73, expected_bar_part="███████▎ "

      📌 Runtime Parameters

      params:
        value: 73
        expected_bar_part: ███████▎  
      id: 73-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258e  
      

      📌 Setup phase

      duration:

      0.00036694062873721123
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019725877791643143
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020146695896983147
      

      outcome:

      passed
      
    • Test 330
      params: value=75, expected_bar_part="███████▌ "

      📌 Runtime Parameters

      params:
        value: 75
        expected_bar_part: ███████▌  
      id: 75-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  
      

      📌 Setup phase

      duration:

      0.0003760019317269325
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019939010962843895
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019077397882938385
      

      outcome:

      passed
      
    • Test 331
      params: value=90, expected_bar_part="█████████ "

      📌 Runtime Parameters

      params:
        value: 90
        expected_bar_part: █████████ 
      id: 90-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 
      

      📌 Setup phase

      duration:

      0.0003656321205198765
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019616493955254555
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020277872681617737
      

      outcome:

      passed
      
    • Test 332
      params: value=100, expected_bar_part="██████████"

      📌 Runtime Parameters

      params:
        value: 100
        expected_bar_part: ██████████
      id: 100-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588
      

      📌 Setup phase

      duration:

      0.00035691913217306137
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001973542384803295
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019873492419719696
      

      outcome:

      passed
      
  • 📄 test_utils_readable.py

    Function: test_readable_seconds

    • Test 333
      params: seconds=59.4, expected="59 seconds"

      📌 Runtime Parameters

      params:
        seconds: 59.4
        expected: 59 seconds
      id: 59.4-59 seconds
      

      📌 Setup phase

      duration:

      0.00025745807215571404
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000163158867508173
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001451517455279827
      

      outcome:

      passed
      
    • Test 334
      params: seconds=59.9, expected="60 seconds"

      📌 Runtime Parameters

      params:
        seconds: 59.9
        expected: 60 seconds
      id: 59.9-60 seconds
      

      📌 Setup phase

      duration:

      0.00023360783234238625
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014383206143975258
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014463812112808228
      

      outcome:

      passed
      
    • Test 335
      params: seconds=119.9, expected="120 seconds"

      📌 Runtime Parameters

      params:
        seconds: 119.9
        expected: 120 seconds
      id: 119.9-120 seconds
      

      📌 Setup phase

      duration:

      0.00022527063265442848
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014443416148424149
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015144329518079758
      

      outcome:

      passed
      
    • Test 336
      params: seconds=120.1, expected="2 minutes"

      📌 Runtime Parameters

      params:
        seconds: 120.1
        expected: 2 minutes
      id: 120.1-2 minutes
      

      📌 Setup phase

      duration:

      0.00021357368677854538
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001393323764204979
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001548677682876587
      

      outcome:

      passed
      
    • Test 337
      params: seconds=3599.9, expected="60 minutes"

      📌 Runtime Parameters

      params:
        seconds: 3599.9
        expected: 60 minutes
      id: 3599.9-60 minutes
      

      📌 Setup phase

      duration:

      0.00022184988483786583
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014931382611393929
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013912981376051903
      

      outcome:

      passed
      
    • Test 340
      params: seconds=7200.1, expected="2 hours"

      📌 Runtime Parameters

      params:
        seconds: 7200.1
        expected: 2 hours
      id: 7200.1-2 hours
      

      📌 Setup phase

      duration:

      0.0002563376910984516
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015249289572238922
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014077313244342804
      

      outcome:

      passed
      
    • Test 341
      params: seconds=90.4, expected="90 seconds"

      📌 Runtime Parameters

      params:
        seconds: 90.4
        expected: 90 seconds
      id: 90.4-90 seconds
      

      📌 Setup phase

      duration:

      0.00023751799017190933
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016241008415818214
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014353496953845024
      

      outcome:

      passed
      
    • Test 342
      params: seconds=90.6, expected="91 seconds"

      📌 Runtime Parameters

      params:
        seconds: 90.6
        expected: 91 seconds
      id: 90.6-91 seconds
      

      📌 Setup phase

      duration:

      0.0002290871925652027
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014952197670936584
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001510828733444214
      

      outcome:

      passed
      
    • Test 343
      params: seconds=121.9, expected="2 minutes"

      📌 Runtime Parameters

      params:
        seconds: 121.9
        expected: 2 minutes
      id: 121.9-2 minutes
      

      📌 Setup phase

      duration:

      0.00022550486028194427
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001431237906217575
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014006998389959335
      

      outcome:

      passed
      
    • Test 352
      params: seconds=5270400.0, expected="2 months"

      📌 Runtime Parameters

      params:
        seconds: 5270400.0
        expected: 2 months
      id: 5270400.0-2 months
      

      📌 Setup phase

      duration:

      0.00024951109662652016
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014757877215743065
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014352891594171524
      

      outcome:

      passed
      
    • Test 353
      params: seconds=23328000.0, expected="9 months"

      📌 Runtime Parameters

      params:
        seconds: 23328000.0
        expected: 9 months
      id: 23328000.0-9 months
      

      📌 Setup phase

      duration:

      0.00022501405328512192
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014429399743676186
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001372629776597023
      

      outcome:

      passed
      
    • Test 360
      params: seconds=30844800.0, expected="12 months"

      📌 Runtime Parameters

      params:
        seconds: 30844800.0
        expected: 12 months
      id: 30844800.0-12 months
      

      📌 Setup phase

      duration:

      0.00025158608332276344
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001637432724237442
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014230981469154358
      

      outcome:

      passed
      
  • 📄 test_utils_sendmail.py

    Function: test_sendmail_real_local_verbose

    • Test 365

      📌 Setup phase

      duration:

      0.0001207888126373291
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      1.596028652973473
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023633334785699844
      

      outcome:

      passed
      
  • 📄 test_utils_snapshot.py

    Function: test_snapshot

    • Test 366
      params: test_input="v1", "Visible", false], ["h1", "Hidden", true, expected=["Visible"], kwargs={}

      📌 Runtime Parameters

      params:
        test_input:
          -       - v1
            - Visible
            - (vide)
          -       - h1
            - Hidden
            - True
        expected:
          - Visible
        kwargs:
      {}
      id: exclude_internals
      

      📌 Setup phase

      duration:

      0.00045591918751597404
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007685357704758644
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018701096996665
      

      outcome:

      passed
      
    • Test 367
      params: test_input="v1", "Visible", false], ["h1", "Hidden", true, expected=["Visible", "Hidden"], kwargs={"include_internal": true}

      📌 Runtime Parameters

      params:
        test_input:
          -       - v1
            - Visible
            - (vide)
          -       - h1
            - Hidden
            - True
        expected:
          - Visible
          - Hidden
        kwargs:
          include_internal: True
      id: include_internals
      

      📌 Setup phase

      duration:

      0.0003507109358906746
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004667420871555805
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020016590133309364
      

      outcome:

      passed
      
    • Test 368
      params: test_input=[], expected=[], kwargs={}

      📌 Runtime Parameters

      params:
        test_input:
      []
        expected:
      []
        kwargs:
      {}
      id: empty_case
      

      📌 Setup phase

      duration:

      0.00028017209842801094
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001532197929918766
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015300605446100235
      

      outcome:

      passed
      
    • Test 369
      params: test_input="3", "Charlie"], ["1", "Alpha"], ["2", "Beta", expected=["Alpha", "Beta", "Charlie"], kwargs="{'sort_key': }"

      📌 Runtime Parameters

      params:
        test_input:
          -       - 3
            - Charlie
          -       - 1
            - Alpha
          -       - 2
            - Beta
        expected:
          - Alpha
          - Beta
          - Charlie
        kwargs: {'sort_key': <class 'str'>}
      id: sort_str
      

      📌 Setup phase

      duration:

      0.0002608960494399071
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005622836761176586
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018300814554095268
      

      outcome:

      passed
      
    • Test 370
      params: test_input="z3", "C"], ["a1", "A"], ["m2", "B", expected=["A", "B", "C"], kwargs="{'sort_key': at 0x7f86b8dba430>}"

      📌 Runtime Parameters

      params:
        test_input:
          -       - z3
            - C
          -       - a1
            - A
          -       - m2
            - B
        expected:
          - A
          - B
          - C
        kwargs: {'sort_key': <function <lambda> at 0x7f86b8dba430>}
      id: sort_id
      

      📌 Setup phase

      duration:

      0.00028462428599596024
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005669007077813148
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001706257462501526
      

      outcome:

      passed
      
    • Test 371
      params: test_input="3", "Charlie"], ["1", "alpha"], ["2", "Beta", expected=["alpha", "Beta", "Charlie"], kwargs="{'sort_key': at 0x7f86b8dba4c0>}"

      📌 Runtime Parameters

      params:
        test_input:
          -       - 3
            - Charlie
          -       - 1
            - alpha
          -       - 2
            - Beta
        expected:
          - alpha
          - Beta
          - Charlie
        kwargs: {'sort_key': <function <lambda> at 0x7f86b8dba4c0>}
      id: sort_case_insensitive
      

      📌 Setup phase

      duration:

      0.0002800622023642063
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005621691234409809
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016612419858574867
      

      outcome:

      passed
      
    • Test 372
      params: test_input="1", "A"], ["2", "BB"], ["3", "CCC", expected=["A", "BB", "CCC"], kwargs="{'sort_key': at 0x7f86b8dba550>}"

      📌 Runtime Parameters

      params:
        test_input:
          -       - 1
            - A
          -       - 2
            - BB
          -       - 3
            - CCC
        expected:
          - A
          - BB
          - CCC
        kwargs: {'sort_key': <function <lambda> at 0x7f86b8dba550>}
      id: sort_length
      

      📌 Setup phase

      duration:

      0.00028589973226189613
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005406271666288376
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017754686996340752
      

      outcome:

      passed
      
    • Test 373
      params: test_input="1", "A"], ["2", "B"], ["3", "C", expected=["C", "B", "A"], kwargs="{'sort_key': at 0x7f86b8dba5e0>}"

      📌 Runtime Parameters

      params:
        test_input:
          -       - 1
            - A
          -       - 2
            - B
          -       - 3
            - C
        expected:
          - C
          - B
          - A
        kwargs: {'sort_key': <function <lambda> at 0x7f86b8dba5e0>}
      id: sort_reverse
      

      📌 Setup phase

      duration:

      0.00047485390678048134
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005546258762478828
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017838692292571068
      

      outcome:

      passed
      
  • 📄 test_utils_termtitle.py

    Function: test_terminal_title_with_tmux

    • Test 374

      📌 Setup phase

      duration:

      0.00013733375817537308
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.013557746075093746
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019210902974009514
      

      outcome:

      passed
      
  • 📄 test_utils_tqdm_mod.py

    Function: test_complete_progress_bar

    • Test 375

      📌 Setup phase

      duration:

      0.0001488747075200081
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.008020342793315649
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014683697372674942
      

      outcome:

      passed
      

    Function: test_set_progress_multiple_points

    • Test 376

      📌 Setup phase

      duration:

      0.0001194109208881855
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0013502249494194984
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012146309018135071
      

      outcome:

      passed
      

    Function: test_format_sizeof_alignment

    • Test 377

      📌 Setup phase

      duration:

      0.00011674314737319946
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001802709884941578
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010499591007828712
      

      outcome:

      passed
      

    Function: test_custom_unit

    • Test 379

      📌 Setup phase

      duration:

      0.00011793477460741997
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.004721319302916527
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011901464313268661
      

      outcome:

      passed
      

    Function: test_clamp_above_total

    • Test 380

      📌 Setup phase

      duration:

      0.000113719142973423
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004172748886048794
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011837901547551155
      

      outcome:

      passed
      

    Function: test_clamp_below_zero

    • Test 381

      📌 Setup phase

      duration:

      0.00010689301416277885
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005557360127568245
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001208730973303318
      

      outcome:

      passed
      
  • 📄 test_utils_trinary.py

    Function: test_check_trinary_valid_values

    • Test 382

      📌 Setup phase

      duration:

      0.00012227008119225502
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017322273924946785
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010815728455781937
      

      outcome:

      passed
      

    Function: test_check_trinary_invalid_value

    • Test 383

      📌 Setup phase

      duration:

      0.00011012004688382149
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00037292297929525375
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010494701564311981
      

      outcome:

      passed
      

    Function: test_check_trinary_with_custom_allowed_values

    • Test 384

      📌 Setup phase

      duration:

      0.00010696705430746078
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016584200784564018
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010544806718826294
      

      outcome:

      passed
      
  • 📄 test_utils_typecast.py

    Function: test_downcast_success

    • Test 385

      📌 Setup phase

      duration:

      0.0001282617449760437
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016914401203393936
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.952764958143234e-05
      

      outcome:

      passed
      

    Function: test_upcast_success

    • Test 386

      📌 Setup phase

      duration:

      0.0001062699593603611
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001495499163866043
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.897910058498383e-05
      

      outcome:

      passed
      

    Function: test_downcast_invalid

    • Test 387

      📌 Setup phase

      duration:

      0.00011060805991292
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00032732822000980377
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010062707588076591
      

      outcome:

      passed
      

    Function: test_upcast_invalid

    • Test 388

      📌 Setup phase

      duration:

      0.00010803015902638435
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016695493832230568
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010071601718664169
      

      outcome:

      passed
      

    Function: test_object_identity_preserved

    • Test 389

      📌 Setup phase

      duration:

      0.00010110624134540558
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014455895870923996
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.40500758588314e-05
      

      outcome:

      passed
      

    Function: test_ensure_subclass_valid

    • Test 390

      📌 Setup phase

      duration:

      0.00010020192712545395
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013297982513904572
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.94591973721981e-05
      

      outcome:

      passed
      

    Function: test_ensure_subclass_invalid

    • Test 391

      📌 Setup phase

      duration:

      0.0001013423316180706
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016012229025363922
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.465496987104416e-05
      

      outcome:

      passed
      

    Function: test_cast_changes_class

    • Test 392

      📌 Setup phase

      duration:

      0.00011114915832877159
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014010490849614143
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001087607815861702
      

      outcome:

      passed
      

    Function: test_cast_preserves_identity

    • Test 393

      📌 Setup phase

      duration:

      0.00010211626067757607
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013145199045538902
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010948115959763527
      

      outcome:

      passed
      
  • 📄 test_utils_utils.py

    Function: test_singleton_instance

    • Test 394

      📌 Setup phase

      duration:

      0.00011341692879796028
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014914711937308311
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.878585115075111e-05
      

      outcome:

      passed
      

    Function: test_singleton_identity

    • Test 395

      📌 Setup phase

      duration:

      0.0001055840402841568
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012715114280581474
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.56198200583458e-05
      

      outcome:

      passed
      

    Function: test_typename

    • Test 396
      params: obj=null, expected="NoneType"

      📌 Runtime Parameters

      params:
        obj: None
        expected: NoneType
      id: None-NoneType
      

      📌 Setup phase

      duration:

      0.00028935400769114494
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014413613826036453
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014738785102963448
      

      outcome:

      passed
      
    • Test 397
      params: obj=true, expected="bool"

      📌 Runtime Parameters

      params:
        obj: True
        expected: bool
      id: True-bool
      

      📌 Setup phase

      duration:

      0.00021569803357124329
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013271812349557877
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001500002108514309
      

      outcome:

      passed
      
    • Test 398
      params: obj=42, expected="int"

      📌 Runtime Parameters

      params:
        obj: 42
        expected: int
      id: 42-int
      

      📌 Setup phase

      duration:

      0.00021672481670975685
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013397587463259697
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014919694513082504
      

      outcome:

      passed
      
    • Test 399
      params: obj=3.14, expected="float"

      📌 Runtime Parameters

      params:
        obj: 3.14
        expected: float
      id: 3.14-float
      

      📌 Setup phase

      duration:

      0.0002201329916715622
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014197081327438354
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014276709407567978
      

      outcome:

      passed
      
    • Test 400
      params: obj="text", expected="str"

      📌 Runtime Parameters

      params:
        obj: text
        expected: str
      id: text-str
      

      📌 Setup phase

      duration:

      0.00021913787350058556
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001342659816145897
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013724667951464653
      

      outcome:

      passed
      
    • Test 401
      params: obj="{1, 2, 3}", expected="set"

      📌 Runtime Parameters

      params:
        obj: {1, 2, 3}
        expected: set
      id: obj5-set
      

      📌 Setup phase

      duration:

      0.0002239053137600422
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014456920325756073
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013654585927724838
      

      outcome:

      passed
      
    • Test 402
      params: obj=1], [2, 3, expected="list"

      📌 Runtime Parameters

      params:
        obj:
          -       - 1
          -       - 2
            - 3
        expected: list
      id: obj6-list
      

      📌 Setup phase

      duration:

      0.00021538697183132172
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014075404033064842
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013244012370705605
      

      outcome:

      passed
      
    • Test 403
      params: obj=[{"a": [1, 2]}, {"b": [3, 4]}], expected="list"

      📌 Runtime Parameters

      params:
        obj:
          -       a:
              - 1
              - 2
          -       b:
              - 3
              - 4
        expected: list
      id: obj7-list
      

      📌 Setup phase

      duration:

      0.000218953937292099
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001350371167063713
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013316189870238304
      

      outcome:

      passed
      
    • Test 404
      params: obj={"key": [{"nested": 1}, [2, 3]]}, expected="dict"

      📌 Runtime Parameters

      params:
        obj:
          key:
            -         nested: 1
            -         - 2
              - 3
        expected: dict
      id: obj8-dict
      

      📌 Setup phase

      duration:

      0.000218286644667387
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001369202509522438
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013624411076307297
      

      outcome:

      passed
      
    • Test 405
      params: obj=" at 0x7f86b8de5d30>", expected="function"

      📌 Runtime Parameters

      params:
        obj: <function <lambda> at 0x7f86b8de5d30>
        expected: function
      id: <lambda>-function
      

      📌 Setup phase

      duration:

      0.00022296886891126633
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020733708515763283
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015026796609163284
      

      outcome:

      passed
      
    • Test 406
      params: obj="", expected="function"

      📌 Runtime Parameters

      params:
        obj: <function sample_function at 0x7f86b8de5ca0>
        expected: function
      id: sample_function-function
      

      📌 Setup phase

      duration:

      0.00022439612075686455
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013627391308546066
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014113867655396461
      

      outcome:

      passed
      
    • Test 407
      params: obj=".nested at 0x7f86b8de5dc0>", expected="function"

      📌 Runtime Parameters

      params:
        obj: <function sample_function.<locals>.nested at 0x7f86b8de5dc0>
        expected: function
      id: nested-function
      

      📌 Setup phase

      duration:

      0.00022483337670564651
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013784412294626236
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013525178655982018
      

      outcome:

      passed
      
    • Test 408
      params: obj="", expected="builtin_function_or_method"

      📌 Runtime Parameters

      params:
        obj: <built-in function len>
        expected: builtin_function_or_method
      id: len-builtin_function_or_method
      

      📌 Setup phase

      duration:

      0.0002280627377331257
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013662176206707954
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015172408893704414
      

      outcome:

      passed
      
    • Test 409
      params: obj="", expected="builtin_function_or_method"

      📌 Runtime Parameters

      params:
        obj: <built-in function sum>
        expected: builtin_function_or_method
      id: sum-builtin_function_or_method
      

      📌 Setup phase

      duration:

      0.00021638209000229836
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013375235721468925
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013520801439881325
      

      outcome:

      passed
      
    • Test 410
      params: obj="", expected="module"

      📌 Runtime Parameters

      params:
        obj: <module 'math' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/lib-dynload/math.cpython-38-x86_64-linux-gnu.so'>
        expected: module
      id: math-module
      

      📌 Setup phase

      duration:

      0.00021165190264582634
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014349399134516716
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014065764844417572
      

      outcome:

      passed
      
    • Test 411
      params: obj="", expected="module"

      📌 Runtime Parameters

      params:
        obj: <module 'sys' (built-in)>
        expected: module
      id: sys-module
      

      📌 Setup phase

      duration:

      0.0002148151397705078
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013976916670799255
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013206293806433678
      

      outcome:

      passed
      
    • Test 412
      params: obj="", expected="type"

      📌 Runtime Parameters

      params:
        obj: <class 'function'>
        expected: type
      id: function-type
      

      📌 Setup phase

      duration:

      0.0002262890338897705
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001437189057469368
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013528717681765556
      

      outcome:

      passed
      
    • Test 413
      params: obj=" at 0x7f86b7967270>", expected="generator"

      📌 Runtime Parameters

      params:
        obj: <generator object <genexpr> at 0x7f86b7967270>
        expected: generator
      id: <genexpr>-generator
      

      📌 Setup phase

      duration:

      0.00022512627765536308
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001356317661702633
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013491883873939514
      

      outcome:

      passed
      
    • Test 414
      params: obj="", expected="list_iterator"

      📌 Runtime Parameters

      params:
        obj: <list_iterator object at 0x7f86b8dd1340>
        expected: list_iterator
      id: obj18-list_iterator
      

      📌 Setup phase

      duration:

      0.0002148929052054882
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013394420966506004
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001330506056547165
      

      outcome:

      passed
      

    Function: test_next_int

    • Test 415
      params: nums=[1, 2, 3], expected=4

      📌 Runtime Parameters

      params:
        nums:
          - 1
          - 2
          - 3
        expected: 4
      id: nums0-4
      

      📌 Setup phase

      duration:

      0.0002188878133893013
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001355297863483429
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014056917279958725
      

      outcome:

      passed
      
    • Test 416
      params: nums=[10, 20], expected=21

      📌 Runtime Parameters

      params:
        nums:
          - 10
          - 20
        expected: 21
      id: nums1-21
      

      📌 Setup phase

      duration:

      0.00023489585146307945
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013355305418372154
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013199029490351677
      

      outcome:

      passed
      
    • Test 417
      params: nums=[], expected=0

      📌 Runtime Parameters

      params:
        nums:
      []
        expected: 0
      id: nums2-0
      

      📌 Setup phase

      duration:

      0.00022934889420866966
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001346878707408905
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001362706534564495
      

      outcome:

      passed
      

    Function: test_zero_pad

    • Test 418
      params: i=7, n=3, expected="007"

      📌 Runtime Parameters

      params:
        i: 7
        n: 3
        expected: 007
      id: 7-3-007
      

      📌 Setup phase

      duration:

      0.0002515283413231373
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013304268941283226
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015489477664232254
      

      outcome:

      passed
      
    • Test 419
      params: i=123, n=5, expected="00123"

      📌 Runtime Parameters

      params:
        i: 123
        n: 5
        expected: 00123
      id: 123-5-00123
      

      📌 Setup phase

      duration:

      0.00026065995916724205
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013501103967428207
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015341490507125854
      

      outcome:

      passed
      
    • Test 420
      params: i=0, n=2, expected="00"

      📌 Runtime Parameters

      params:
        i: 0
        n: 2
        expected: 00
      id: 0-2-00
      

      📌 Setup phase

      duration:

      0.00026222411543130875
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013983575627207756
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001512099988758564
      

      outcome:

      passed
      

    Function: test_iround

    • Test 421
      params: val=3.6, expected=4

      📌 Runtime Parameters

      params:
        val: 3.6
        expected: 4
      id: 3.6-4
      

      📌 Setup phase

      duration:

      0.00021178601309657097
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001567387953400612
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014293892309069633
      

      outcome:

      passed
      
    • Test 422
      params: val=2.1, expected=2

      📌 Runtime Parameters

      params:
        val: 2.1
        expected: 2
      id: 2.1-2
      

      📌 Setup phase

      duration:

      0.00021680397912859917
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001443931832909584
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013162894174456596
      

      outcome:

      passed
      
    • Test 423
      params: val=-1.5, expected=-2

      📌 Runtime Parameters

      params:
        val: -1.5
        expected: -2
      id: -1.5--2
      

      📌 Setup phase

      duration:

      0.00021979212760925293
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014510098844766617
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013209134340286255
      

      outcome:

      passed
      
    • Test 424
      params: val=-1.4, expected=-1

      📌 Runtime Parameters

      params:
        val: -1.4
        expected: -1
      id: -1.4--1
      

      📌 Setup phase

      duration:

      0.00021204398944973946
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013200799003243446
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013801828026771545
      

      outcome:

      passed
      

    Function: test_sorted_naturally

    • Test 425
      params: items=["file1", "file10", "file2"], expected=["file1", "file2", "file10"]

      📌 Runtime Parameters

      params:
        items:
          - file1
          - file10
          - file2
        expected:
          - file1
          - file2
          - file10
      id: items0-expected0
      

      📌 Setup phase

      duration:

      0.00022434117272496223
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017144996672868729
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013216305524110794
      

      outcome:

      passed
      
    • Test 426
      params: items=["z9", "z10", "z2", "z1"], expected=["z1", "z2", "z9", "z10"]

      📌 Runtime Parameters

      params:
        items:
          - z9
          - z10
          - z2
          - z1
        expected:
          - z1
          - z2
          - z9
          - z10
      id: items1-expected1
      

      📌 Setup phase

      duration:

      0.00023376336321234703
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001600487157702446
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013615982607007027
      

      outcome:

      passed
      

    Function: test_sorted_naturally_reverse

    • Test 427
      params: items=["file1", "file10", "file2"], expected=["file10", "file2", "file1"]

      📌 Runtime Parameters

      params:
        items:
          - file1
          - file10
          - file2
        expected:
          - file10
          - file2
          - file1
      id: items0-expected0
      

      📌 Setup phase

      duration:

      0.0002147238701581955
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015828805044293404
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014405325055122375
      

      outcome:

      passed
      
  • 📄 test_utils_xrange.py

    Function: test_xrange_finite

    • Test 428
      params: args=[10], kwargs={}, expected=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

      📌 Runtime Parameters

      params:
        args:
          - 10
        kwargs:
      {}
        expected:
          - (vide)
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
      id: args0-kwargs0-expected0
      

      📌 Setup phase

      duration:

      0.00028397515416145325
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000153424683958292
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016616471111774445
      

      outcome:

      passed
      
    • Test 429
      params: args=[0, 10], kwargs={}, expected=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

      📌 Runtime Parameters

      params:
        args:
          - (vide)
          - 10
        kwargs:
      {}
        expected:
          - (vide)
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
      id: args1-kwargs1-expected1
      

      📌 Setup phase

      duration:

      0.00029556313529610634
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002240506000816822
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017226999625563622
      

      outcome:

      passed
      
    • Test 430
      params: args=[0, 10, 2], kwargs={}, expected=[0, 2, 4, 6, 8]

      📌 Runtime Parameters

      params:
        args:
          - (vide)
          - 10
          - 2
        kwargs:
      {}
        expected:
          - (vide)
          - 2
          - 4
          - 6
          - 8
      id: args2-kwargs2-expected2
      

      📌 Setup phase

      duration:

      0.00029447488486766815
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014192191883921623
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015437928959727287
      

      outcome:

      passed
      
    • Test 431
      params: args=[10], kwargs={"step": 2}, expected=[0, 2, 4, 6, 8]

      📌 Runtime Parameters

      params:
        args:
          - 10
        kwargs:
          step: 2
        expected:
          - (vide)
          - 2
          - 4
          - 6
          - 8
      id: args3-kwargs3-expected3
      

      📌 Setup phase

      duration:

      0.00028369296342134476
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001439540646970272
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015725195407867432
      

      outcome:

      passed
      

    Function: test_xrange_infinite

    • Test 432
      params: args=[], kwargs={}, expected_repr="count(0)"

      📌 Runtime Parameters

      params:
        args:
      []
        kwargs:
      {}
        expected_repr: count(0)
      id: args0-kwargs0-count(0)
      

      📌 Setup phase

      duration:

      0.0002595609985291958
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001495489850640297
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000156511552631855
      

      outcome:

      passed
      
    • Test 433
      params: args=[], kwargs={"step": 2}, expected_repr="count(0, 2)"

      📌 Runtime Parameters

      params:
        args:
      []
        kwargs:
          step: 2
        expected_repr: count(0, 2)
      id: args1-kwargs1-count(0, 2)
      

      📌 Setup phase

      duration:

      0.0002686958760023117
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015644310042262077
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016829604282975197
      

      outcome:

      passed
      

    Function: test_xrange_too_many_args

    • Test 434
      params: args=[1, 2, 3, 4]

      📌 Runtime Parameters

      params:
        args:
          - 1
          - 2
          - 3
          - 4
      id: args0
      

      📌 Setup phase

      duration:

      0.000164675060659647
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004176488146185875
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0006098859012126923
      

      outcome:

      passed
      
Failed (47)
  • 📄 test_utils_debug.py

    Function: test_short_repr

    • Test 102
      params: value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", cutoff=10, expected="'aaaaaaaaaa..."

      📌 Runtime Parameters

      params:
        value: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        cutoff: 10
        expected: 'aaaaaaaaaa...
      id: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-10-'aaaaaaaaaa...
      

      📌 Setup phase

      duration:

      0.00029505323618650436
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000944002065807581
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_debug.py
      lineno: 66
      message: assert "'aaaaaaaaa..." == "'aaaaaaaaaa..."
      
        - 'aaaaaaaaaa...
        ?  -
        + 'aaaaaaaaa...
      

      traceback:

      -   path: tests/test_utils_debug.py
        lineno: 66
        message: AssertionError
      

      longrepr:

      value = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
      cutoff = 10, expected = "'aaaaaaaaaa..."
      
          @pytest.mark.parametrize(
              "value, cutoff, expected",
              [
                  ("abc", 10, "'abc'"),
                  ("a" * 100, 10, "'aaaaaaaaaa..."),
                  (12345, 10, "12345"),
                  ([0]*100, 15, str(repr([0]*100))[:15] + "..."),
                  (None, 10, "None"),
                  (type("Obj", (), {"__repr__": lambda self: "Obj(" + "x"*50 + ")"})(), 20, "Obj(xxxxxxxxxxxxxxxxx..."),
              ]
          )
      
          def test_short_repr(value, cutoff, expected):
      >       assert short_repr(value, cutoff) == expected
      E       assert "'aaaaaaaaa..." == "'aaaaaaaaaa..."
      E         
      E         - 'aaaaaaaaaa...
      E         ?  -
      E         + 'aaaaaaaaa...
      
      tests/test_utils_debug.py:66: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002738400362432003
      

      outcome:

      passed
      
    • Test 106
      params: value="Obj(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)", cutoff=20, expected="Obj(xxxxxxxxxxxxxxxxx..."

      📌 Runtime Parameters

      params:
        value: Obj(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
        cutoff: 20
        expected: Obj(xxxxxxxxxxxxxxxxx...
      id: value5-20-Obj(xxxxxxxxxxxxxxxxx...
      

      📌 Setup phase

      duration:

      0.00026019103825092316
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005857129581272602
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_debug.py
      lineno: 66
      message: AssertionError: assert 'Obj(xxxxxxxxxxxxxxxx...' == 'Obj(xxxxxxxxxxxxxxxxx...'
      
        - Obj(xxxxxxxxxxxxxxxxx...
        ?                     -
        + Obj(xxxxxxxxxxxxxxxx...
      

      traceback:

      -   path: tests/test_utils_debug.py
        lineno: 66
        message: AssertionError
      

      longrepr:

      value = Obj(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx), cutoff = 20
      expected = 'Obj(xxxxxxxxxxxxxxxxx...'
      
          @pytest.mark.parametrize(
              "value, cutoff, expected",
              [
                  ("abc", 10, "'abc'"),
                  ("a" * 100, 10, "'aaaaaaaaaa..."),
                  (12345, 10, "12345"),
                  ([0]*100, 15, str(repr([0]*100))[:15] + "..."),
                  (None, 10, "None"),
                  (type("Obj", (), {"__repr__": lambda self: "Obj(" + "x"*50 + ")"})(), 20, "Obj(xxxxxxxxxxxxxxxxx..."),
              ]
          )
      
          def test_short_repr(value, cutoff, expected):
      >       assert short_repr(value, cutoff) == expected
      E       AssertionError: assert 'Obj(xxxxxxxxxxxxxxxx...' == 'Obj(xxxxxxxxxxxxxxxxx...'
      E         
      E         - Obj(xxxxxxxxxxxxxxxxx...
      E         ?                     -
      E         + Obj(xxxxxxxxxxxxxxxx...
      
      tests/test_utils_debug.py:66: AssertionError
      

      📌 Teardown phase

      duration:

      0.00020339898765087128
      

      outcome:

      passed
      
  • 📄 test_utils_hastyepics.py

    Function: test_motor_instantiation_fast_vs_epics

    • Test 179

      📌 Setup phase

      duration:

      0.00012016808614134789
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.09836114011704922
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_hastyepics.py
      lineno: 37
      message: AssertionError: Fast version (0.009363s) should be faster than EPICS (0.000259s)
      assert 0.009363025659695268 < 0.00025875321589410307
      

      traceback:

      -   path: tests/test_utils_hastyepics.py
        lineno: 37
        message: AssertionError
      

      longrepr:

      def test_motor_instantiation_fast_vs_epics():
      
              fast_times = []
              slow_times = []
      
              # Mock to simulate a real EPICS moteur
              with patch('epics.Motor.get') as mock_get:
                  mock_get.return_value = 'motor'
      
                  # Mean of 10 runs
                  for _ in range(10):
                      t0 = time.perf_counter()
                      m_fast = Motor("TEST:MOTOR_t1")
                      t1 = time.perf_counter()
      
                      t2 = time.perf_counter()
                      m_slow = epics.Motor("TEST:MOTOR_t2")
                      t3 = time.perf_counter()
      
                      fast_times.append(t1 - t0)
                      slow_times.append(t3 - t2)
      
              avg_fast = sum(fast_times) / len(fast_times)
              avg_slow = sum(slow_times) / len(slow_times)
      
      >       assert avg_fast < avg_slow, f"Fast version ({avg_fast:.6f}s) should be faster than EPICS ({avg_slow:.6f}s)"
      E       AssertionError: Fast version (0.009363s) should be faster than EPICS (0.000259s)
      E       assert 0.009363025659695268 < 0.00025875321589410307
      
      tests/test_utils_hastyepics.py:37: AssertionError
      

      📌 Teardown phase

      duration:

      0.0003683473914861679
      

      outcome:

      passed
      

    Function: test_motor_without_suffix_and_dot

    • Test 180

      📌 Setup phase

      duration:

      0.0002008909359574318
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0017710300162434578
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_hastyepics.py
      lineno: 42
      message: AssertionError: assert 'TEST:MOTOR_1.' == 'TEST:MOTOR_1'
      
        - TEST:MOTOR_1
        + TEST:MOTOR_1.
        ?             +
      

      traceback:

      -   path: tests/test_utils_hastyepics.py
        lineno: 42
        message: AssertionError
      

      longrepr:

      def test_motor_without_suffix_and_dot():
              # Suffix .VAL ... dot should be stripped from name
              m1 = Motor("TEST:MOTOR_1.VAL")
      >       assert m1._prefix == "TEST:MOTOR_1"
      E       AssertionError: assert 'TEST:MOTOR_1.' == 'TEST:MOTOR_1'
      E         
      E         - TEST:MOTOR_1
      E         + TEST:MOTOR_1.
      E         ?             +
      
      tests/test_utils_hastyepics.py:42: AssertionError
      

      📌 Teardown phase

      duration:

      0.00018756836652755737
      

      outcome:

      passed
      

    Function: test_motor_initializes_device_attrs

    • Test 183

      📌 Setup phase

      duration:

      0.00011263508349657059
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0013179462403059006
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_hastyepics.py
      lineno: 79
      message: AssertionError: VAL is not a valid PV object
      assert False
       +  where False = isinstance(None, <class 'epics.pv.PV'>)
       +    where <class 'epics.pv.PV'> = <module 'epics.pv' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/pv.py'>.PV
       +      where <module 'epics.pv' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/pv.py'> = epics.pv
      

      traceback:

      -   path: tests/test_utils_hastyepics.py
        lineno: 79
        message: AssertionError
      

      longrepr:

      def test_motor_initializes_device_attrs():
              # Check that Motor correctly initializes all Device PVs from _init_list
              m = Motor("TEST:MOTOR")
      
      
              print("_init_list contents:", m._init_list)
              print("All attributes on motor:", dir(m))
      
              for attr in m._init_list:
                  print(f"\nChecking attribute: {attr}")
                  assert hasattr(m, attr), f"Motor is missing attribute: {attr}"
                  pv = getattr(m, attr)
      
                  print(f"PV object: {pv}")
                  print("Type:", type(pv))
                  if pv is not None:
                      print(f"PV name: {pv.pvname}")
                      print(f"PV connected: {pv.connected}")
      
      >           assert isinstance(pv, epics.pv.PV), f"{attr} is not a valid PV object"
      E           AssertionError: VAL is not a valid PV object
      E           assert False
      E            +  where False = isinstance(None, <class 'epics.pv.PV'>)
      E            +    where <class 'epics.pv.PV'> = <module 'epics.pv' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/pv.py'>.PV
      E            +      where <module 'epics.pv' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/pv.py'> = epics.pv
      
      tests/test_utils_hastyepics.py:79: AssertionError
      

      📌 Teardown phase

      duration:

      0.00016691721975803375
      

      outcome:

      passed
      
  • 📄 test_utils_logcfg.py

    Function: test_import_logging_once_per_module

    • Test 199

      📌 Setup phase

      duration:

      0.00015903031453490257
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      1.7047629761509597
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_logcfg.py
      lineno: 78
      message: AssertionError: Expected 1 import log for 'math', found 0
      assert 0 == 1
      

      traceback:

      -   path: tests/test_utils_logcfg.py
        lineno: 78
        message: AssertionError
      

      longrepr:

      def test_import_logging_once_per_module():
              code = textwrap.dedent("""
                  from slic.utils.logcfg import *
                  import math
                  import io
                  import random
              """)
      
              with tempfile.NamedTemporaryFile("w", suffix=".py", delete=False) as tmp:
                  tmp.write(code)
                  tmp_path = tmp.name
      
              env = os.environ.copy()
              root_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
              env["PYTHONPATH"] = root_path + os.pathsep + env.get("PYTHONPATH", "")
      
              result = subprocess.run([sys.executable, tmp_path], capture_output=True, text=True, env=env)
              os.remove(tmp_path)
      
              assert result.returncode == 0, f"Script failed:\n{result.stderr}"
      
              stderr = result.stderr
              print(stderr)
              lines = stderr.splitlines()
              for mod in ["math", "io", "random"]:
                  count = sum(1 for line in lines if f"importing: {mod}" in line)
      >           assert count == 1, f"Expected 1 import log for '{mod}', found {count}"
      E           AssertionError: Expected 1 import log for 'math', found 0
      E           assert 0 == 1
      
      tests/test_utils_logcfg.py:78: AssertionError
      

      📌 Teardown phase

      duration:

      0.00032321084290742874
      

      outcome:

      passed
      
  • 📄 test_utils_npy.py

    Function: test_nice_arange

    • Test 208
      params: start=5, stop=0, step=-1, expected="[5. 4. 3. 2. 1. 0.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -1
        expected: [5. 4. 3. 2. 1. 0.]
      id: 5-0--1-expected1
      

      📌 Setup phase

      duration:

      0.0003835763782262802
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0010257512331008911
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-06, atol=0
      
      Mismatched elements: 6 / 6 (100%)
      Max absolute difference: 5.
      Max relative difference: 3.
       x: array([0., 1., 2., 3., 4., 5.])
       y: array([5., 4., 3., 2., 1., 0.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 16
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -1, expected = array([5., 4., 3., 2., 1., 0.])
      
          @pytest.mark.parametrize("start, stop, step, expected", [
              (0, 5, 1, np.linspace(0, 5, 6)),                       # regular integer step
              (5, 0, -1, np.linspace(5, 0, 6)),                      # reversed with negative step
              (1, 2, 0.3, np.linspace(1, 2, 4)),                     # step doesn't divide evenly
              (-2, 2, 1.5, np.linspace(-2, 2, 3)),                   # centered range
              (2.5, 0.5, -0.4, np.linspace(2.5, 0.5, 6)),            # reversed float
          ])
          def test_nice_arange(start, stop, step, expected):
      >       np.testing.assert_allclose(nice_arange(start, stop, step), expected, rtol=1e-6)
      
      tests/test_utils_npy.py:16: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b84cc430>, array([0., 1., 2., 3., 4., 5.]), array([5., 4., 3., 2., 1., 0.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-06, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-06, atol=0
      E           
      E           Mismatched elements: 6 / 6 (100%)
      E           Max absolute difference: 5.
      E           Max relative difference: 3.
      E            x: array([0., 1., 2., 3., 4., 5.])
      E            y: array([5., 4., 3., 2., 1., 0.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00024982402101159096
      

      outcome:

      passed
      
    • Test 210
      params: start=-2, stop=2, step=1.5, expected="[-2. 0. 2.]"

      📌 Runtime Parameters

      params:
        start: -2
        stop: 2
        step: 1.5
        expected: [-2.  0.  2.]
      id: -2-2-1.5-expected3
      

      📌 Setup phase

      duration:

      0.00034790392965078354
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005619791336357594
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-06, atol=0
      
      (shapes (4,), (3,) mismatch)
       x: array([-2.      , -0.666667,  0.666667,  2.      ])
       y: array([-2.,  0.,  2.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 16
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -2, stop = 2, step = 1.5, expected = array([-2.,  0.,  2.])
      
          @pytest.mark.parametrize("start, stop, step, expected", [
              (0, 5, 1, np.linspace(0, 5, 6)),                       # regular integer step
              (5, 0, -1, np.linspace(5, 0, 6)),                      # reversed with negative step
              (1, 2, 0.3, np.linspace(1, 2, 4)),                     # step doesn't divide evenly
              (-2, 2, 1.5, np.linspace(-2, 2, 3)),                   # centered range
              (2.5, 0.5, -0.4, np.linspace(2.5, 0.5, 6)),            # reversed float
          ])
          def test_nice_arange(start, stop, step, expected):
      >       np.testing.assert_allclose(nice_arange(start, stop, step), expected, rtol=1e-6)
      
      tests/test_utils_npy.py:16: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b852b3a0>, array([-2.        , -0.66666667,  0.66666667,  2.        ]), array([-2.,  0.,  2.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-06, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-06, atol=0
      E           
      E           (shapes (4,), (3,) mismatch)
      E            x: array([-2.      , -0.666667,  0.666667,  2.      ])
      E            y: array([-2.,  0.,  2.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002158968709409237
      

      outcome:

      passed
      
    • Test 211
      params: start=2.5, stop=0.5, step=-0.4, expected="[2.5 2.1 1.7 1.3 0.9 0.5]"

      📌 Runtime Parameters

      params:
        start: 2.5
        stop: 0.5
        step: -0.4
        expected: [2.5 2.1 1.7 1.3 0.9 0.5]
      id: 2.5-0.5--0.4-expected4
      

      📌 Setup phase

      duration:

      0.0004177470691502094
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000870940275490284
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-06, atol=0
      
      Mismatched elements: 6 / 6 (100%)
      Max absolute difference: 2.
      Max relative difference: 4.
       x: array([0.5, 0.9, 1.3, 1.7, 2.1, 2.5])
       y: array([2.5, 2.1, 1.7, 1.3, 0.9, 0.5])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 16
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 2.5, stop = 0.5, step = -0.4
      expected = array([2.5, 2.1, 1.7, 1.3, 0.9, 0.5])
      
          @pytest.mark.parametrize("start, stop, step, expected", [
              (0, 5, 1, np.linspace(0, 5, 6)),                       # regular integer step
              (5, 0, -1, np.linspace(5, 0, 6)),                      # reversed with negative step
              (1, 2, 0.3, np.linspace(1, 2, 4)),                     # step doesn't divide evenly
              (-2, 2, 1.5, np.linspace(-2, 2, 3)),                   # centered range
              (2.5, 0.5, -0.4, np.linspace(2.5, 0.5, 6)),            # reversed float
          ])
          def test_nice_arange(start, stop, step, expected):
      >       np.testing.assert_allclose(nice_arange(start, stop, step), expected, rtol=1e-6)
      
      tests/test_utils_npy.py:16: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b71968b0>, array([0.5, 0.9, 1.3, 1.7, 2.1, 2.5]), array([2.5, 2.1, 1.7, 1.3, 0.9, 0.5]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-06, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-06, atol=0
      E           
      E           Mismatched elements: 6 / 6 (100%)
      E           Max absolute difference: 2.
      E           Max relative difference: 4.
      E            x: array([0.5, 0.9, 1.3, 1.7, 2.1, 2.5])
      E            y: array([2.5, 2.1, 1.7, 1.3, 0.9, 0.5])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0003134668804705143
      

      outcome:

      passed
      

    Function: test_nice_steps_left_aligned

    • Test 223
      params: start=0, stop=5, step=2, endpoint=true, expected="[0. 2. 4. 6.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: True
        expected: [0. 2. 4. 6.]
      id: 0-5-2-True-expected0
      

      📌 Setup phase

      duration:

      0.0003775050863623619
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00048316316679120064
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([0, 2, 4])
       y: array([0., 2., 4., 6.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 0, stop = 5, step = 2, endpoint = True
      expected = array([0., 2., 4., 6.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b719b160>, array([0, 2, 4]), array([0., 2., 4., 6.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([0, 2, 4])
      E            y: array([0., 2., 4., 6.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00023474497720599174
      

      outcome:

      passed
      
    • Test 224
      params: start=0, stop=5, step=2, endpoint=false, expected="[0. 2. 4.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: False
        expected: [0. 2. 4.]
      id: 0-5-2-False-expected1
      

      📌 Setup phase

      duration:

      0.00038269301876425743
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004941308870911598
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (2,), (3,) mismatch)
       x: array([0, 2])
       y: array([0., 2., 4.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 0, stop = 5, step = 2, endpoint = False, expected = array([0., 2., 4.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b852b3a0>, array([0, 2]), array([0., 2., 4.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (2,), (3,) mismatch)
      E            x: array([0, 2])
      E            y: array([0., 2., 4.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00022821035236120224
      

      outcome:

      passed
      
    • Test 227
      params: start=-2, stop=1, step=1.2, endpoint=true, expected="[-2. -0.8 0.4 1.6]"

      📌 Runtime Parameters

      params:
        start: -2
        stop: 1
        step: 1.2
        endpoint: True
        expected: [-2.  -0.8  0.4  1.6]
      id: -2-1-1.2-True-expected4
      

      📌 Setup phase

      duration:

      0.00038378918543457985
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000514450017362833
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([-2. , -0.8,  0.4])
       y: array([-2. , -0.8,  0.4,  1.6])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -2, stop = 1, step = 1.2, endpoint = True
      expected = array([-2. , -0.8,  0.4,  1.6])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b795e940>, array([-2. , -0.8,  0.4]), array([-2. , -0.8,  0.4,  1.6]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([-2. , -0.8,  0.4])
      E            y: array([-2. , -0.8,  0.4,  1.6])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002597300335764885
      

      outcome:

      passed
      
    • Test 228
      params: start=5, stop=0, step=-2, endpoint=true, expected="[ 5. 3. 1. -1.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -2
        endpoint: True
        expected: [ 5.  3.  1. -1.]
      id: 5-0--2-True-expected5
      

      📌 Setup phase

      duration:

      0.00044680386781692505
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005552768707275391
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([0, 2, 4])
       y: array([ 5.,  3.,  1., -1.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -2, endpoint = True
      expected = array([ 5.,  3.,  1., -1.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b88e2ca0>, array([0, 2, 4]), array([ 5.,  3.,  1., -1.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([0, 2, 4])
      E            y: array([ 5.,  3.,  1., -1.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002590869553387165
      

      outcome:

      passed
      
    • Test 229
      params: start=5, stop=0, step=-2, endpoint=false, expected="[5. 3. 1.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -2
        endpoint: False
        expected: [5. 3. 1.]
      id: 5-0--2-False-expected6
      

      📌 Setup phase

      duration:

      0.0004107593558728695
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005554850213229656
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (2,), (3,) mismatch)
       x: array([0, 2])
       y: array([5., 3., 1.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -2, endpoint = False, expected = array([5., 3., 1.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b84cc430>, array([0, 2]), array([5., 3., 1.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (2,), (3,) mismatch)
      E            x: array([0, 2])
      E            y: array([5., 3., 1.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002822326496243477
      

      outcome:

      passed
      

    Function: test_nice_steps_right_aligned

    • Test 230
      params: start=0, stop=5, step=2, endpoint=true, expected="[6. 4. 2. 0.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: True
        expected: [6. 4. 2. 0.]
      id: 0-5-2-True-expected0
      

      📌 Setup phase

      duration:

      0.0004067937843501568
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005522249266505241
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([1, 3, 5])
       y: array([6., 4., 2., 0.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 0, stop = 5, step = 2, endpoint = True
      expected = array([6., 4., 2., 0.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b84cc5e0>, array([1, 3, 5]), array([6., 4., 2., 0.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([1, 3, 5])
      E            y: array([6., 4., 2., 0.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00023999996483325958
      

      outcome:

      passed
      
    • Test 231
      params: start=0, stop=5, step=2, endpoint=false, expected="[4. 2. 0.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: False
        expected: [4. 2. 0.]
      id: 0-5-2-False-expected1
      

      📌 Setup phase

      duration:

      0.0004034028388559818
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004910142160952091
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (2,), (3,) mismatch)
       x: array([3, 5])
       y: array([4., 2., 0.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 0, stop = 5, step = 2, endpoint = False, expected = array([4., 2., 0.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b85f2b80>, array([3, 5]), array([4., 2., 0.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (2,), (3,) mismatch)
      E            x: array([3, 5])
      E            y: array([4., 2., 0.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00024694204330444336
      

      outcome:

      passed
      
    • Test 232
      params: start=-1, stop=2, step=1.5, endpoint=true, expected="[ 2. 0.5 -1. ]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: True
        expected: [ 2.   0.5 -1. ]
      id: -1-2-1.5-True-expected2
      

      📌 Setup phase

      duration:

      0.00038427067920565605
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008132043294608593
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      Mismatched elements: 2 / 3 (66.7%)
      Max absolute difference: 3.
      Max relative difference: 3.
       x: array([-1. ,  0.5,  2. ])
       y: array([ 2. ,  0.5, -1. ])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -1, stop = 2, step = 1.5, endpoint = True
      expected = array([ 2. ,  0.5, -1. ])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b71b4ee0>, array([-1. ,  0.5,  2. ]), array([ 2. ,  0.5, -1. ]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           Mismatched elements: 2 / 3 (66.7%)
      E           Max absolute difference: 3.
      E           Max relative difference: 3.
      E            x: array([-1. ,  0.5,  2. ])
      E            y: array([ 2. ,  0.5, -1. ])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00022582616657018661
      

      outcome:

      passed
      
    • Test 233
      params: start=-1, stop=2, step=1.5, endpoint=false, expected="[ 0.5 -1. ]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: False
        expected: [ 0.5 -1. ]
      id: -1-2-1.5-False-expected3
      

      📌 Setup phase

      duration:

      0.00039620092138648033
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007858620956540108
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      Mismatched elements: 1 / 2 (50%)
      Max absolute difference: 3.
      Max relative difference: 3.
       x: array([0.5, 2. ])
       y: array([ 0.5, -1. ])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -1, stop = 2, step = 1.5, endpoint = False
      expected = array([ 0.5, -1. ])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b71b4d30>, array([0.5, 2. ]), array([ 0.5, -1. ]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           Mismatched elements: 1 / 2 (50%)
      E           Max absolute difference: 3.
      E           Max relative difference: 3.
      E            x: array([0.5, 2. ])
      E            y: array([ 0.5, -1. ])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00022401707246899605
      

      outcome:

      passed
      
    • Test 234
      params: start=5, stop=0, step=-2, endpoint=true, expected="[ 5. 3. 1. -1.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -2
        endpoint: True
        expected: [ 5.  3.  1. -1.]
      id: 5-0--2-True-expected4
      

      📌 Setup phase

      duration:

      0.00038076378405094147
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004899208433926105
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([1, 3, 5])
       y: array([ 5.,  3.,  1., -1.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -2, endpoint = True
      expected = array([ 5.,  3.,  1., -1.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b71b1e50>, array([1, 3, 5]), array([ 5.,  3.,  1., -1.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([1, 3, 5])
      E            y: array([ 5.,  3.,  1., -1.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002350788563489914
      

      outcome:

      passed
      
    • Test 235
      params: start=5, stop=0, step=-2, endpoint=false, expected="[ 3. 1. -1.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -2
        endpoint: False
        expected: [ 3.  1. -1.]
      id: 5-0--2-False-expected5
      

      📌 Setup phase

      duration:

      0.00038327276706695557
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00047126924619078636
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (2,), (3,) mismatch)
       x: array([3, 5])
       y: array([ 3.,  1., -1.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -2, endpoint = False
      expected = array([ 3.,  1., -1.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b71b4ee0>, array([3, 5]), array([ 3.,  1., -1.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (2,), (3,) mismatch)
      E            x: array([3, 5])
      E            y: array([ 3.,  1., -1.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00024208100512623787
      

      outcome:

      passed
      
    • Test 236
      params: start=-3, stop=3, step=2, endpoint=true, expected="[ 5. 3. 1. -1. -3.]"

      📌 Runtime Parameters

      params:
        start: -3
        stop: 3
        step: 2
        endpoint: True
        expected: [ 5.  3.  1. -1. -3.]
      id: -3-3-2-True-expected6
      

      📌 Setup phase

      duration:

      0.000383774284273386
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004867170937359333
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (4,), (5,) mismatch)
       x: array([-3, -1,  1,  3])
       y: array([ 5.,  3.,  1., -1., -3.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -3, stop = 3, step = 2, endpoint = True
      expected = array([ 5.,  3.,  1., -1., -3.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f86b71b19d0>, array([-3, -1,  1,  3]), array([ 5.,  3.,  1., -1., -3.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (4,), (5,) mismatch)
      E            x: array([-3, -1,  1,  3])
      E            y: array([ 5.,  3.,  1., -1., -3.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00022656191140413284
      

      outcome:

      passed
      
  • 📄 test_utils_pv.py

    Function: test_progress_and_repr

    • Test 309
      params: value=25.0, expected_bar="██▌ ", expected_color="\u001b[32m", expected_repr="PV \"TEST:PV\" at 25.0 units"

      📌 Runtime Parameters

      params:
        value: 25.0
        expected_bar: ██▌       
        expected_color: 
        expected_repr: PV "TEST:PV" at 25.0 units
      id: 25.0-\u2588\u2588\u258c       -\x1b[32m-PV "TEST:PV" at 25.0 units
      

      📌 Setup phase

      duration:

      0.0007717497646808624
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      2.000538815744221
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/slic/utils/rangebar.py
      lineno: 110
      message: TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 58
        message: None
      -   path: slic/utils/pv.py
        lineno: 19
        message: in put
      -   path: slic/utils/rangebar.py
        lineno: 31
        message: in __enter__
      -   path: slic/utils/rangebar.py
        lineno: 40
        message: in show
      -   path: slic/utils/rangebar.py
        lineno: 49
        message: in get
      -   path: slic/utils/rangebar.py
        lineno: 110
        message: TypeError
      

      longrepr:

      fake_epics_pv = PV "TEST:PV" at None None
      capture_stdout = <_io.StringIO object at 0x7f86b71e8160>, value = 25.0
      expected_bar = '██▌       ', expected_color = '\x1b[32m'
      expected_repr = 'PV "TEST:PV" at 25.0 units'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color, expected_repr", [
              (25.0,  "██▌       ", colorama.Fore.GREEN, 'PV "TEST:PV" at 25.0 units'),
              (50.0,  "█████     ", colorama.Fore.GREEN, 'PV "TEST:PV" at 50.0 units'),
              (75.0,  "███████▌  ", colorama.Fore.GREEN, 'PV "TEST:PV" at 75.0 units'),
              (100.0, "██████████", colorama.Fore.GREEN, 'PV "TEST:PV" at 100.0 units'),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED,   'PV "TEST:PV" at 150.0 units'),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED,   'PV "TEST:PV" at -50.0 units')
          ])
      
          def test_progress_and_repr(fake_epics_pv, capture_stdout, value, expected_bar, expected_color, expected_repr):
      
              pv = fake_epics_pv
      
              # Test put() and progress bar
      >       pv.put(value, show_progress=True)
      
      tests/test_utils_pv.py:58: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      slic/utils/pv.py:19: in put
          with RangeBar(start, stop) as rbar:
      slic/utils/rangebar.py:31: in __enter__
          self.show(self.start) # show initial bar (also if nothing changes)
      slic/utils/rangebar.py:40: in show
          bar = self.get(value)
      slic/utils/rangebar.py:49: in get
          part = calc_part(start, stop, value)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      start = None, stop = 25.0, value = None
      
          def calc_part(start, stop, value):
      >       total_range = stop - start
      E       TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      
      slic/utils/rangebar.py:110: TypeError
      

      📌 Teardown phase

      duration:

      0.00038052210584282875
      

      outcome:

      passed
      
    • Test 310
      params: value=50.0, expected_bar="█████ ", expected_color="\u001b[32m", expected_repr="PV \"TEST:PV\" at 50.0 units"

      📌 Runtime Parameters

      params:
        value: 50.0
        expected_bar: █████     
        expected_color: 
        expected_repr: PV "TEST:PV" at 50.0 units
      id: 50.0-\u2588\u2588\u2588\u2588\u2588     -\x1b[32m-PV "TEST:PV" at 50.0 units
      

      📌 Setup phase

      duration:

      0.0006918329745531082
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      2.0005658017471433
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/slic/utils/rangebar.py
      lineno: 110
      message: TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 58
        message: None
      -   path: slic/utils/pv.py
        lineno: 19
        message: in put
      -   path: slic/utils/rangebar.py
        lineno: 31
        message: in __enter__
      -   path: slic/utils/rangebar.py
        lineno: 40
        message: in show
      -   path: slic/utils/rangebar.py
        lineno: 49
        message: in get
      -   path: slic/utils/rangebar.py
        lineno: 110
        message: TypeError
      

      longrepr:

      fake_epics_pv = PV "TEST:PV" at None None
      capture_stdout = <_io.StringIO object at 0x7f86b71e8a60>, value = 50.0
      expected_bar = '█████     ', expected_color = '\x1b[32m'
      expected_repr = 'PV "TEST:PV" at 50.0 units'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color, expected_repr", [
              (25.0,  "██▌       ", colorama.Fore.GREEN, 'PV "TEST:PV" at 25.0 units'),
              (50.0,  "█████     ", colorama.Fore.GREEN, 'PV "TEST:PV" at 50.0 units'),
              (75.0,  "███████▌  ", colorama.Fore.GREEN, 'PV "TEST:PV" at 75.0 units'),
              (100.0, "██████████", colorama.Fore.GREEN, 'PV "TEST:PV" at 100.0 units'),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED,   'PV "TEST:PV" at 150.0 units'),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED,   'PV "TEST:PV" at -50.0 units')
          ])
      
          def test_progress_and_repr(fake_epics_pv, capture_stdout, value, expected_bar, expected_color, expected_repr):
      
              pv = fake_epics_pv
      
              # Test put() and progress bar
      >       pv.put(value, show_progress=True)
      
      tests/test_utils_pv.py:58: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      slic/utils/pv.py:19: in put
          with RangeBar(start, stop) as rbar:
      slic/utils/rangebar.py:31: in __enter__
          self.show(self.start) # show initial bar (also if nothing changes)
      slic/utils/rangebar.py:40: in show
          bar = self.get(value)
      slic/utils/rangebar.py:49: in get
          part = calc_part(start, stop, value)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      start = None, stop = 50.0, value = None
      
          def calc_part(start, stop, value):
      >       total_range = stop - start
      E       TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      
      slic/utils/rangebar.py:110: TypeError
      

      📌 Teardown phase

      duration:

      0.00048707565292716026
      

      outcome:

      passed
      
    • Test 311
      params: value=75.0, expected_bar="███████▌ ", expected_color="\u001b[32m", expected_repr="PV \"TEST:PV\" at 75.0 units"

      📌 Runtime Parameters

      params:
        value: 75.0
        expected_bar: ███████▌  
        expected_color: 
        expected_repr: PV "TEST:PV" at 75.0 units
      id: 75.0-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  -\x1b[32m-PV "TEST:PV" at 75.0 units
      

      📌 Setup phase

      duration:

      0.0008194148540496826
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      2.0005642999894917
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/slic/utils/rangebar.py
      lineno: 110
      message: TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 58
        message: None
      -   path: slic/utils/pv.py
        lineno: 19
        message: in put
      -   path: slic/utils/rangebar.py
        lineno: 31
        message: in __enter__
      -   path: slic/utils/rangebar.py
        lineno: 40
        message: in show
      -   path: slic/utils/rangebar.py
        lineno: 49
        message: in get
      -   path: slic/utils/rangebar.py
        lineno: 110
        message: TypeError
      

      longrepr:

      fake_epics_pv = PV "TEST:PV" at None None
      capture_stdout = <_io.StringIO object at 0x7f86b71e8ca0>, value = 75.0
      expected_bar = '███████▌  ', expected_color = '\x1b[32m'
      expected_repr = 'PV "TEST:PV" at 75.0 units'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color, expected_repr", [
              (25.0,  "██▌       ", colorama.Fore.GREEN, 'PV "TEST:PV" at 25.0 units'),
              (50.0,  "█████     ", colorama.Fore.GREEN, 'PV "TEST:PV" at 50.0 units'),
              (75.0,  "███████▌  ", colorama.Fore.GREEN, 'PV "TEST:PV" at 75.0 units'),
              (100.0, "██████████", colorama.Fore.GREEN, 'PV "TEST:PV" at 100.0 units'),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED,   'PV "TEST:PV" at 150.0 units'),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED,   'PV "TEST:PV" at -50.0 units')
          ])
      
          def test_progress_and_repr(fake_epics_pv, capture_stdout, value, expected_bar, expected_color, expected_repr):
      
              pv = fake_epics_pv
      
              # Test put() and progress bar
      >       pv.put(value, show_progress=True)
      
      tests/test_utils_pv.py:58: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      slic/utils/pv.py:19: in put
          with RangeBar(start, stop) as rbar:
      slic/utils/rangebar.py:31: in __enter__
          self.show(self.start) # show initial bar (also if nothing changes)
      slic/utils/rangebar.py:40: in show
          bar = self.get(value)
      slic/utils/rangebar.py:49: in get
          part = calc_part(start, stop, value)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      start = None, stop = 75.0, value = None
      
          def calc_part(start, stop, value):
      >       total_range = stop - start
      E       TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      
      slic/utils/rangebar.py:110: TypeError
      

      📌 Teardown phase

      duration:

      0.00048612896353006363
      

      outcome:

      passed
      
    • Test 312
      params: value=100.0, expected_bar="██████████", expected_color="\u001b[32m", expected_repr="PV \"TEST:PV\" at 100.0 units"

      📌 Runtime Parameters

      params:
        value: 100.0
        expected_bar: ██████████
        expected_color: 
        expected_repr: PV "TEST:PV" at 100.0 units
      id: 100.0-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588-\x1b[32m-PV "TEST:PV" at 100.0 units
      

      📌 Setup phase

      duration:

      0.0009626341052353382
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      2.0005612461827695
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/slic/utils/rangebar.py
      lineno: 110
      message: TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 58
        message: None
      -   path: slic/utils/pv.py
        lineno: 19
        message: in put
      -   path: slic/utils/rangebar.py
        lineno: 31
        message: in __enter__
      -   path: slic/utils/rangebar.py
        lineno: 40
        message: in show
      -   path: slic/utils/rangebar.py
        lineno: 49
        message: in get
      -   path: slic/utils/rangebar.py
        lineno: 110
        message: TypeError
      

      longrepr:

      fake_epics_pv = PV "TEST:PV" at None None
      capture_stdout = <_io.StringIO object at 0x7f86b71e8b80>, value = 100.0
      expected_bar = '██████████', expected_color = '\x1b[32m'
      expected_repr = 'PV "TEST:PV" at 100.0 units'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color, expected_repr", [
              (25.0,  "██▌       ", colorama.Fore.GREEN, 'PV "TEST:PV" at 25.0 units'),
              (50.0,  "█████     ", colorama.Fore.GREEN, 'PV "TEST:PV" at 50.0 units'),
              (75.0,  "███████▌  ", colorama.Fore.GREEN, 'PV "TEST:PV" at 75.0 units'),
              (100.0, "██████████", colorama.Fore.GREEN, 'PV "TEST:PV" at 100.0 units'),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED,   'PV "TEST:PV" at 150.0 units'),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED,   'PV "TEST:PV" at -50.0 units')
          ])
      
          def test_progress_and_repr(fake_epics_pv, capture_stdout, value, expected_bar, expected_color, expected_repr):
      
              pv = fake_epics_pv
      
              # Test put() and progress bar
      >       pv.put(value, show_progress=True)
      
      tests/test_utils_pv.py:58: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      slic/utils/pv.py:19: in put
          with RangeBar(start, stop) as rbar:
      slic/utils/rangebar.py:31: in __enter__
          self.show(self.start) # show initial bar (also if nothing changes)
      slic/utils/rangebar.py:40: in show
          bar = self.get(value)
      slic/utils/rangebar.py:49: in get
          part = calc_part(start, stop, value)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      start = None, stop = 100.0, value = None
      
          def calc_part(start, stop, value):
      >       total_range = stop - start
      E       TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      
      slic/utils/rangebar.py:110: TypeError
      

      📌 Teardown phase

      duration:

      0.0007756478153169155
      

      outcome:

      passed
      
    • Test 313
      params: value=150.0, expected_bar=">>>>>>>>>>", expected_color="\u001b[31m", expected_repr="PV \"TEST:PV\" at 150.0 units"

      📌 Runtime Parameters

      params:
        value: 150.0
        expected_bar: >>>>>>>>>>
        expected_color: 
        expected_repr: PV "TEST:PV" at 150.0 units
      id: 150.0->>>>>>>>>>-\x1b[31m-PV "TEST:PV" at 150.0 units
      

      📌 Setup phase

      duration:

      0.001305663026869297
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      2.0007026623934507
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/slic/utils/rangebar.py
      lineno: 110
      message: TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 58
        message: None
      -   path: slic/utils/pv.py
        lineno: 19
        message: in put
      -   path: slic/utils/rangebar.py
        lineno: 31
        message: in __enter__
      -   path: slic/utils/rangebar.py
        lineno: 40
        message: in show
      -   path: slic/utils/rangebar.py
        lineno: 49
        message: in get
      -   path: slic/utils/rangebar.py
        lineno: 110
        message: TypeError
      

      longrepr:

      fake_epics_pv = PV "TEST:PV" at None None
      capture_stdout = <_io.StringIO object at 0x7f86b79cdc10>, value = 150.0
      expected_bar = '>>>>>>>>>>', expected_color = '\x1b[31m'
      expected_repr = 'PV "TEST:PV" at 150.0 units'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color, expected_repr", [
              (25.0,  "██▌       ", colorama.Fore.GREEN, 'PV "TEST:PV" at 25.0 units'),
              (50.0,  "█████     ", colorama.Fore.GREEN, 'PV "TEST:PV" at 50.0 units'),
              (75.0,  "███████▌  ", colorama.Fore.GREEN, 'PV "TEST:PV" at 75.0 units'),
              (100.0, "██████████", colorama.Fore.GREEN, 'PV "TEST:PV" at 100.0 units'),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED,   'PV "TEST:PV" at 150.0 units'),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED,   'PV "TEST:PV" at -50.0 units')
          ])
      
          def test_progress_and_repr(fake_epics_pv, capture_stdout, value, expected_bar, expected_color, expected_repr):
      
              pv = fake_epics_pv
      
              # Test put() and progress bar
      >       pv.put(value, show_progress=True)
      
      tests/test_utils_pv.py:58: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      slic/utils/pv.py:19: in put
          with RangeBar(start, stop) as rbar:
      slic/utils/rangebar.py:31: in __enter__
          self.show(self.start) # show initial bar (also if nothing changes)
      slic/utils/rangebar.py:40: in show
          bar = self.get(value)
      slic/utils/rangebar.py:49: in get
          part = calc_part(start, stop, value)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      start = None, stop = 150.0, value = None
      
          def calc_part(start, stop, value):
      >       total_range = stop - start
      E       TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      
      slic/utils/rangebar.py:110: TypeError
      

      📌 Teardown phase

      duration:

      0.00044322526082396507
      

      outcome:

      passed
      
    • Test 314
      params: value=-50.0, expected_bar="<<<<<<<<<<", expected_color="\u001b[31m", expected_repr="PV \"TEST:PV\" at -50.0 units"

      📌 Runtime Parameters

      params:
        value: -50.0
        expected_bar: <<<<<<<<<<
        expected_color: 
        expected_repr: PV "TEST:PV" at -50.0 units
      id: -50.0-<<<<<<<<<<-\x1b[31m-PV "TEST:PV" at -50.0 units
      

      📌 Setup phase

      duration:

      0.0008187848143279552
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      2.000490815844387
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/slic/utils/rangebar.py
      lineno: 110
      message: TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 58
        message: None
      -   path: slic/utils/pv.py
        lineno: 19
        message: in put
      -   path: slic/utils/rangebar.py
        lineno: 31
        message: in __enter__
      -   path: slic/utils/rangebar.py
        lineno: 40
        message: in show
      -   path: slic/utils/rangebar.py
        lineno: 49
        message: in get
      -   path: slic/utils/rangebar.py
        lineno: 110
        message: TypeError
      

      longrepr:

      fake_epics_pv = PV "TEST:PV" at None None
      capture_stdout = <_io.StringIO object at 0x7f86b71e8a60>, value = -50.0
      expected_bar = '<<<<<<<<<<', expected_color = '\x1b[31m'
      expected_repr = 'PV "TEST:PV" at -50.0 units'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color, expected_repr", [
              (25.0,  "██▌       ", colorama.Fore.GREEN, 'PV "TEST:PV" at 25.0 units'),
              (50.0,  "█████     ", colorama.Fore.GREEN, 'PV "TEST:PV" at 50.0 units'),
              (75.0,  "███████▌  ", colorama.Fore.GREEN, 'PV "TEST:PV" at 75.0 units'),
              (100.0, "██████████", colorama.Fore.GREEN, 'PV "TEST:PV" at 100.0 units'),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED,   'PV "TEST:PV" at 150.0 units'),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED,   'PV "TEST:PV" at -50.0 units')
          ])
      
          def test_progress_and_repr(fake_epics_pv, capture_stdout, value, expected_bar, expected_color, expected_repr):
      
              pv = fake_epics_pv
      
              # Test put() and progress bar
      >       pv.put(value, show_progress=True)
      
      tests/test_utils_pv.py:58: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      slic/utils/pv.py:19: in put
          with RangeBar(start, stop) as rbar:
      slic/utils/rangebar.py:31: in __enter__
          self.show(self.start) # show initial bar (also if nothing changes)
      slic/utils/rangebar.py:40: in show
          bar = self.get(value)
      slic/utils/rangebar.py:49: in get
          part = calc_part(start, stop, value)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      start = None, stop = -50.0, value = None
      
          def calc_part(start, stop, value):
      >       total_range = stop - start
      E       TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
      
      slic/utils/rangebar.py:110: TypeError
      

      📌 Teardown phase

      duration:

      0.00041703786700963974
      

      outcome:

      passed
      
  • 📄 test_utils_readable.py

    Function: test_readable_seconds

    • Test 338
      params: seconds=3600.1, expected="1 hour"

      📌 Runtime Parameters

      params:
        seconds: 3600.1
        expected: 1 hour
      id: 3600.1-1 hour
      

      📌 Setup phase

      duration:

      0.0002300618216395378
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00046227406710386276
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '60 minutes' == '1 hour'
      
        - 1 hour
        + 60 minutes
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 3600.1, expected = '1 hour'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '60 minutes' == '1 hour'
      E         
      E         - 1 hour
      E         + 60 minutes
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00018252898007631302
      

      outcome:

      passed
      
    • Test 339
      params: seconds=7199.9, expected="2 hours"

      📌 Runtime Parameters

      params:
        seconds: 7199.9
        expected: 2 hours
      id: 7199.9-2 hours
      

      📌 Setup phase

      duration:

      0.00027763424441218376
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003806999884545803
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '120 minutes' == '2 hours'
      
        - 2 hours
        + 120 minutes
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 7199.9, expected = '2 hours'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '120 minutes' == '2 hours'
      E         
      E         - 2 hours
      E         + 120 minutes
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.0001769382506608963
      

      outcome:

      passed
      
    • Test 344
      params: seconds=3660.1, expected="1 hour"

      📌 Runtime Parameters

      params:
        seconds: 3660.1
        expected: 1 hour
      id: 3660.1-1 hour
      

      📌 Setup phase

      duration:

      0.00022012274712324142
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00039296830072999
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '61 minutes' == '1 hour'
      
        - 1 hour
        + 61 minutes
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 3660.1, expected = '1 hour'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '61 minutes' == '1 hour'
      E         
      E         - 1 hour
      E         + 61 minutes
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00018833205103874207
      

      outcome:

      passed
      
    • Test 345
      params: seconds=1296000.0, expected="15 days"

      📌 Runtime Parameters

      params:
        seconds: 1296000.0
        expected: 15 days
      id: 1296000.0-15 days
      

      📌 Setup phase

      duration:

      0.00024266773834824562
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00038717780262231827
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '2 weeks' == '15 days'
      
        - 15 days
        + 2 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 1296000.0, expected = '15 days'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '2 weeks' == '15 days'
      E         
      E         - 15 days
      E         + 2 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.000187756959348917
      

      outcome:

      passed
      
    • Test 346
      params: seconds=2332800.0, expected="27 days"

      📌 Runtime Parameters

      params:
        seconds: 2332800.0
        expected: 27 days
      id: 2332800.0-27 days
      

      📌 Setup phase

      duration:

      0.00023731589317321777
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003584376536309719
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '4 weeks' == '27 days'
      
        - 27 days
        + 4 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 2332800.0, expected = '27 days'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '4 weeks' == '27 days'
      E         
      E         - 27 days
      E         + 4 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00018560979515314102
      

      outcome:

      passed
      
    • Test 347
      params: seconds=2592000.0, expected="1 month"

      📌 Runtime Parameters

      params:
        seconds: 2592000.0
        expected: 1 month
      id: 2592000.0-1 month
      

      📌 Setup phase

      duration:

      0.00023863790556788445
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00035911332815885544
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '4 weeks' == '1 month'
      
        - 1 month
        + 4 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 2592000.0, expected = '1 month'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '4 weeks' == '1 month'
      E         
      E         - 1 month
      E         + 4 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017827190458774567
      

      outcome:

      passed
      
    • Test 348
      params: seconds=2678400.0, expected="1 month"

      📌 Runtime Parameters

      params:
        seconds: 2678400.0
        expected: 1 month
      id: 2678400.0-1 month
      

      📌 Setup phase

      duration:

      0.0002410956658422947
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00035746674984693527
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '4 weeks' == '1 month'
      
        - 1 month
        + 4 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 2678400.0, expected = '1 month'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '4 weeks' == '1 month'
      E         
      E         - 1 month
      E         + 4 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017289817333221436
      

      outcome:

      passed
      
    • Test 349
      params: seconds=3888000.0, expected="2 months"

      📌 Runtime Parameters

      params:
        seconds: 3888000.0
        expected: 2 months
      id: 3888000.0-2 months
      

      📌 Setup phase

      duration:

      0.00024065189063549042
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00034769484773278236
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '6 weeks' == '2 months'
      
        - 2 months
        + 6 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 3888000.0, expected = '2 months'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '6 weeks' == '2 months'
      E         
      E         - 2 months
      E         + 6 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017627514898777008
      

      outcome:

      passed
      
    • Test 350
      params: seconds=5097600.0, expected="2 months"

      📌 Runtime Parameters

      params:
        seconds: 5097600.0
        expected: 2 months
      id: 5097600.0-2 months
      

      📌 Setup phase

      duration:

      0.00024906406179070473
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003539649769663811
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '8 weeks' == '2 months'
      
        - 2 months
        + 8 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 5097600.0, expected = '2 months'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '8 weeks' == '2 months'
      E         
      E         - 2 months
      E         + 8 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017482787370681763
      

      outcome:

      passed
      
    • Test 351
      params: seconds=5184000.0, expected="2 months"

      📌 Runtime Parameters

      params:
        seconds: 5184000.0
        expected: 2 months
      id: 5184000.0-2 months
      

      📌 Setup phase

      duration:

      0.0002397429198026657
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00035561295226216316
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '9 weeks' == '2 months'
      
        - 2 months
        + 9 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 5184000.0, expected = '2 months'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '9 weeks' == '2 months'
      E         
      E         - 2 months
      E         + 9 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017790216952562332
      

      outcome:

      passed
      
    • Test 354
      params: seconds=31104000.0, expected="1 year"

      📌 Runtime Parameters

      params:
        seconds: 31104000.0
        expected: 1 year
      id: 31104000.0-1 year
      

      📌 Setup phase

      duration:

      0.0002177506685256958
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00034571997821331024
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '12 months' == '1 year'
      
        - 1 year
        + 12 months
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 31104000.0, expected = '1 year'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '12 months' == '1 year'
      E         
      E         - 1 year
      E         + 12 months
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017247581854462624
      

      outcome:

      passed
      
    • Test 355
      params: seconds=33696000.0, expected="1 year"

      📌 Runtime Parameters

      params:
        seconds: 33696000.0
        expected: 1 year
      id: 33696000.0-1 year
      

      📌 Setup phase

      duration:

      0.0002457238733768463
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003737877123057842
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '13 months' == '1 year'
      
        - 1 year
        + 13 months
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 33696000.0, expected = '1 year'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '13 months' == '1 year'
      E         
      E         - 1 year
      E         + 13 months
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017471006140112877
      

      outcome:

      passed
      
    • Test 356
      params: seconds=59616000.0, expected="2 years"

      📌 Runtime Parameters

      params:
        seconds: 59616000.0
        expected: 2 years
      id: 59616000.0-2 years
      

      📌 Setup phase

      duration:

      0.00024806708097457886
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003507588990032673
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '23 months' == '2 years'
      
        - 2 years
        + 23 months
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 59616000.0, expected = '2 years'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '23 months' == '2 years'
      E         
      E         - 2 years
      E         + 23 months
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017795898020267487
      

      outcome:

      passed
      
    • Test 357
      params: seconds=62208000.0, expected="2 years"

      📌 Runtime Parameters

      params:
        seconds: 62208000.0
        expected: 2 years
      id: 62208000.0-2 years
      

      📌 Setup phase

      duration:

      0.0002433517947793007
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003559947945177555
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '24 months' == '2 years'
      
        - 2 years
        + 24 months
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 62208000.0, expected = '2 years'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '24 months' == '2 years'
      E         
      E         - 2 years
      E         + 24 months
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017309701070189476
      

      outcome:

      passed
      
    • Test 358
      params: seconds=5158080.0, expected="2 months"

      📌 Runtime Parameters

      params:
        seconds: 5158080.0
        expected: 2 months
      id: 5158080.0-2 months
      

      📌 Setup phase

      duration:

      0.0002442300319671631
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003587263636291027
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '9 weeks' == '2 months'
      
        - 2 months
        + 9 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 5158080.0, expected = '2 months'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '9 weeks' == '2 months'
      E         
      E         - 2 months
      E         + 9 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017550960183143616
      

      outcome:

      passed
      
    • Test 359
      params: seconds=5209920.0, expected="2 months"

      📌 Runtime Parameters

      params:
        seconds: 5209920.0
        expected: 2 months
      id: 5209920.0-2 months
      

      📌 Setup phase

      duration:

      0.00024497881531715393
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003681229427456856
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '9 weeks' == '2 months'
      
        - 2 months
        + 9 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 5209920.0, expected = '2 months'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '9 weeks' == '2 months'
      E         
      E         - 2 months
      E         + 9 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017399201169610023
      

      outcome:

      passed
      
    • Test 361
      params: seconds=31363200.0, expected="1 year"

      📌 Runtime Parameters

      params:
        seconds: 31363200.0
        expected: 1 year
      id: 31363200.0-1 year
      

      📌 Setup phase

      duration:

      0.00021759700030088425
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00034833792597055435
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '12 months' == '1 year'
      
        - 1 year
        + 12 months
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 31363200.0, expected = '1 year'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '12 months' == '1 year'
      E         
      E         - 1 year
      E         + 12 months
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00017307233065366745
      

      outcome:

      passed
      
    • Test 362
      params: seconds=3153600.0, expected="1 month"

      📌 Runtime Parameters

      params:
        seconds: 3153600.0
        expected: 1 month
      id: 3153600.0-1 month
      

      📌 Setup phase

      duration:

      0.00023583509027957916
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00036307284608483315
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '5 weeks' == '1 month'
      
        - 1 month
        + 5 weeks
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 3153600.0, expected = '1 month'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '5 weeks' == '1 month'
      E         
      E         - 1 month
      E         + 5 weeks
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.00018272828310728073
      

      outcome:

      passed
      
    • Test 363
      params: seconds=15452640.0, expected="5 months"

      📌 Runtime Parameters

      params:
        seconds: 15452640.0
        expected: 5 months
      id: 15452640.0-5 months
      

      📌 Setup phase

      duration:

      0.00023455126211047173
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004175887443125248
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_readable.py
      lineno: 45
      message: AssertionError: assert '6 months' == '5 months'
      
        - 5 months
        ? ^
        + 6 months
        ? ^
      

      traceback:

      -   path: tests/test_utils_readable.py
        lineno: 45
        message: AssertionError
      

      longrepr:

      seconds = 15452640.0, expected = '5 months'
      
          @pytest.mark.parametrize("seconds, expected", [
      
              (59.4, "59 seconds"),
              (59.9, "60 seconds"),
              (119.9, "120 seconds"),
              (120.1, "2 minutes"),
      
              (3599.9, "60 minutes"),
              (3600.1, "1 hour"),
              (7199.9, "2 hours"),
              (7200.1, "2 hours"),
      
              (90.4, "90 seconds"),
              (90.6, "91 seconds"),
              (121.9, "2 minutes"),
              (3660.1, "1 hour"),
      
              (1296000.0, "15 days"),         # 15 * 86400
              (2332800.0, "27 days"),         # 27 * 86400
              (2592000.0, "1 month"),         # 30 * 86400
              (2678400.0, "1 month"),         # 31 * 86400
              (3888000.0, "2 months"),        # 45 * 86400
              (5097600.0, "2 months"),        # 59 * 86400
              (5184000.0, "2 months"),        # 60 * 86400
              (5270400.0, "2 months"),        # 61 * 86400
      
              (23328000.0, "9 months"),       # 9 * 2592000
              (31104000.0, "1 year"),         # 12 * 2592000
              (33696000.0, "1 year"),         # 13 * 2592000
              (59616000.0, "2 years"),        # 23 * 2592000
              (62208000.0, "2 years"),        # 24 * 2592000
      
              (5158080.0, "2 months"),        # 1.99 * 2592000
              (5209920.0, "2 months"),        # 2.01 * 2592000
              (30844800.0, "12 months"),      # 11.9 * 2592000
              (31363200.0, "1 year"),         # 12.1 * 2592000
      
              (3153600.0, "1 month"),         # 0.1 * 31536000
              (15452640.0, "5 months"),       # 0.49 * 31536000
          ])
          def test_readable_seconds(seconds, expected):
      >       assert readable_seconds(seconds) == expected
      E       AssertionError: assert '6 months' == '5 months'
      E         
      E         - 5 months
      E         ? ^
      E         + 6 months
      E         ? ^
      
      tests/test_utils_readable.py:45: AssertionError
      

      📌 Teardown phase

      duration:

      0.0001884489320218563
      

      outcome:

      passed
      
  • 📄 test_utils_tqdm_mod.py

    Function: test_float_alignment_in_bar

    • Test 378

      📌 Setup phase

      duration:

      0.00010890886187553406
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0012251739390194416
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_tqdm_mod.py
      lineno: 130
      message: assert 2 == 1
       +  where 2 = len({50, 65})
       +    where {50, 65} = set([50, 65, 65, 65, 65])
      

      traceback:

      -   path: tests/test_utils_tqdm_mod.py
        lineno: 130
        message: AssertionError
      

      longrepr:

      def test_float_alignment_in_bar():
              # Capture the tqdm output into a string buffer
              f = io.StringIO()
              with redirect_stdout(f):
                  bar = tqdm_mod(total=100.12, desc="AlignBar", file=f, miniters=1, mininterval=0)
                  bar.set(1.3333)
                  bar.set(12.5)
                  bar.set(99.89)
                  bar.set(100.12)
                  bar.close()
      
              # Extract lines containing the label
              lines = extract_lines(f.getvalue(), "AlignBar")
      
              # Expected formatted values using format_sizeof
              expected_values = [
                  "1.3/100.1",
                  "12.5/100.1",
                  "99.9/100.1",
                  "100.1/100.1",
              ]
      
              # Extract the actual padded float/total strings from the full lines
              values = []
              for line in lines:
                  match = re.search(r"(\d{1,3}\.\d)/100\.1", line)
                  if match:
                      values.append(match.group(0))
      
              # Ensure raw 100.12 never appears : format_sizeof must have truncated it
              assert all("100.12" not in line for line in lines), "Unrounded value '100.12' found in output!"
      
              # Check all expected values appear rounded as expected by format_sizeof
              for expected in expected_values:
                  assert expected in values, f"Missing expected value: {expected}"
      
              # Check that all values are visually aligned, output with same length, to ensure that format_sizeof add the good number avec spaces
              print("\n")
              bar_segments = []
              for line in lines:
                  match = re.search(r".*?\]", line)
                  if match:
                      bar_segments.append(match.group(0))
                      print(match.group(0))
      
              lengths = [len(seg) for seg in bar_segments]
      >       assert len(set(lengths)) == 1
      E       assert 2 == 1
      E        +  where 2 = len({50, 65})
      E        +    where {50, 65} = set([50, 65, 65, 65, 65])
      
      tests/test_utils_tqdm_mod.py:130: AssertionError
      

      📌 Teardown phase

      duration:

      0.00014101900160312653
      

      outcome:

      passed
      
Error (1)
  • 📄 test_utils_readable.py

    Function: test_rounding_cases

    • Test 364

      📌 Setup phase

      duration:

      0.00016277609393000603
      

      outcome:

      failed
      

      longrepr:

      file /workspace/tligui_y/slic/tests/test_utils_readable.py, line 48
        def test_rounding_cases(seconds, expected):
      E       fixture 'seconds' not found
      >       available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, cov, doctest_namespace, extra, extras, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
      >       use 'pytest --fixtures [testpath]' for help on them.
      
      /workspace/tligui_y/slic/tests/test_utils_readable.py:48
      

      📌 Teardown phase

      duration:

      0.00013026176020503044
      

      outcome:

      passed
      

📚 Collected files

(1 tests)
    • Outcome: passed
    • result:
    -   nodeid: .
      type: Dir
    
ci-reports (13 tests)
  • ci-reports
    • Outcome: passed
    • result:
    -   nodeid: ci-reports/allure
      type: Dir
    -   nodeid: ci-reports/junit
      type: Dir
    -   nodeid: ci-reports/markdown
      type: Dir
    
    • ci-reports/allure
      • Outcome: passed
      • result:
      -   nodeid: ci-reports/allure/data
        type: Dir
      -   nodeid: ci-reports/allure/export
        type: Dir
      -   nodeid: ci-reports/allure/history
        type: Dir
      -   nodeid: ci-reports/allure/plugin
        type: Dir
      -   nodeid: ci-reports/allure/widgets
        type: Dir
      
    • ci-reports/allure/data
      • Outcome: passed
      • result:
      -   nodeid: ci-reports/allure/data/test-cases
        type: Dir
      
    • ci-reports/allure/data/test-cases
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/export
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/history
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/plugin
      • Outcome: passed
      • result:
      -   nodeid: ci-reports/allure/plugin/behaviors
        type: Dir
      -   nodeid: ci-reports/allure/plugin/packages
        type: Dir
      -   nodeid: ci-reports/allure/plugin/screen-diff
        type: Dir
      
    • ci-reports/allure/plugin/behaviors
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/plugin/packages
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/plugin/screen-diff
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/widgets
      • Outcome: passed
      • result:
      []
      
    • ci-reports/junit
      • Outcome: passed
      • result:
      []
      
    • ci-reports/markdown
      • Outcome: passed
      • result:
      []
      
outputs (1 tests)
  • outputs
    • Outcome: passed
    • result:
    []
    
slic (30 tests)
  • slic
    • Outcome: passed
    • result:
    -   nodeid: slic/core
      type: Package
    -   nodeid: slic/devices
      type: Package
    -   nodeid: slic/gui
      type: Package
    -   nodeid: slic/utils
      type: Package
    
    • slic/core
      • Outcome: passed
      • result:
      -   nodeid: slic/core/acquisition
        type: Package
      -   nodeid: slic/core/adjustable
        type: Package
      -   nodeid: slic/core/condition
        type: Package
      -   nodeid: slic/core/device
        type: Package
      -   nodeid: slic/core/scanner
        type: Package
      -   nodeid: slic/core/sensor
        type: Package
      -   nodeid: slic/core/task
        type: Package
      
    • slic/core/acquisition
      • Outcome: passed
      • result:
      -   nodeid: slic/core/acquisition/broker
        type: Package
      
    • slic/core/acquisition/broker
      • Outcome: passed
      • result:
      []
      
    • slic/core/adjustable
      • Outcome: passed
      • result:
      []
      
    • slic/core/condition
      • Outcome: passed
      • result:
      []
      
    • slic/core/device
      • Outcome: passed
      • result:
      []
      
    • slic/core/scanner
      • Outcome: passed
      • result:
      []
      
    • slic/core/sensor
      • Outcome: passed
      • result:
      []
      
    • slic/core/task
      • Outcome: passed
      • result:
      []
      
    • slic/devices
      • Outcome: passed
      • result:
      -   nodeid: slic/devices/cameras
        type: Package
      -   nodeid: slic/devices/endstations
        type: Package
      -   nodeid: slic/devices/general
        type: Package
      -   nodeid: slic/devices/loptics
        type: Package
      -   nodeid: slic/devices/timing
        type: Package
      -   nodeid: slic/devices/xdiagnostics
        type: Package
      -   nodeid: slic/devices/xoptics
        type: Package
      
    • slic/devices/cameras
      • Outcome: passed
      • result:
      []
      
    • slic/devices/endstations
      • Outcome: passed
      • result:
      []
      
    • slic/devices/general
      • Outcome: passed
      • result:
      -   nodeid: slic/devices/general/detectors
        type: Package
      -   nodeid: slic/devices/general/unused
        type: Dir
      
    • slic/devices/general/detectors
      • Outcome: passed
      • result:
      []
      
    • slic/devices/general/unused
      • Outcome: passed
      • result:
      []
      
    • slic/devices/loptics
      • Outcome: passed
      • result:
      []
      
    • slic/devices/timing
      • Outcome: passed
      • result:
      -   nodeid: slic/devices/timing/events
        type: Package
      
    • slic/devices/timing/events
      • Outcome: passed
      • result:
      []
      
    • slic/devices/xdiagnostics
      • Outcome: passed
      • result:
      []
      
    • slic/devices/xoptics
      • Outcome: passed
      • result:
      -   nodeid: slic/devices/xoptics/slits
        type: Package
      -   nodeid: slic/devices/xoptics/unused
        type: Dir
      
    • slic/devices/xoptics/slits
      • Outcome: passed
      • result:
      []
      
    • slic/devices/xoptics/unused
      • Outcome: passed
      • result:
      []
      
    • slic/gui
      • Outcome: passed
      • result:
      -   nodeid: slic/gui/daqpanels
        type: Package
      -   nodeid: slic/gui/widgets
        type: Package
      
    • slic/gui/daqpanels
      • Outcome: passed
      • result:
      []
      
    • slic/gui/widgets
      • Outcome: passed
      • result:
      []
      
    • slic/utils
      • Outcome: passed
      • result:
      -   nodeid: slic/utils/ioc
        type: Package
      -   nodeid: slic/utils/unused
        type: Dir
      
    • slic/utils/ioc
      • Outcome: passed
      • result:
      []
      
    • slic/utils/unused
      • Outcome: passed
      • result:
      -   nodeid: slic/utils/unused/xsim
        type: Package
      
    • slic/utils/unused/xsim
      • Outcome: passed
      • result:
      []
      
temp-ci (1 tests)
  • temp-ci
    • Outcome: passed
    • result:
    []
    
tests (34 tests)
  • tests
    • Outcome: passed
    • result:
    -   nodeid: tests/test_utils_argfwd.py
      type: Module
    -   nodeid: tests/test_utils_ask_yes_no.py
      type: Module
    -   nodeid: tests/test_utils_channels.py
      type: Module
    -   nodeid: tests/test_utils_config.py
      type: Module
    -   nodeid: tests/test_utils_cpint.py
      type: Module
    -   nodeid: tests/test_utils_debug.py
      type: Module
    -   nodeid: tests/test_utils_dictext.py
      type: Module
    -   nodeid: tests/test_utils_dotdir.py
      type: Module
    -   nodeid: tests/test_utils_eval.py
      type: Module
    -   nodeid: tests/test_utils_exceptions.py
      type: Module
    -   nodeid: tests/test_utils_get_adj.py
      type: Module
    -   nodeid: tests/test_utils_hastyepics.py
      type: Module
    -   nodeid: tests/test_utils_ipy.py
      type: Module
    -   nodeid: tests/test_utils_jsonext.py
      type: Module
    -   nodeid: tests/test_utils_lazypv.py
      type: Module
    -   nodeid: tests/test_utils_logcfg.py
      type: Module
    -   nodeid: tests/test_utils_logign.py
      type: Module
    -   nodeid: tests/test_utils_metaclasses.py
      type: Module
    -   nodeid: tests/test_utils_npy.py
      type: Module
    -   nodeid: tests/test_utils_path.py
      type: Module
    -   nodeid: tests/test_utils_picklio.py
      type: Module
    -   nodeid: tests/test_utils_printing.py
      type: Module
    -   nodeid: tests/test_utils_pv.py
      type: Module
    -   nodeid: tests/test_utils_rangebar.py
      type: Module
    -   nodeid: tests/test_utils_readable.py
      type: Module
    -   nodeid: tests/test_utils_sendmail.py
      type: Module
    -   nodeid: tests/test_utils_snapshot.py
      type: Module
    -   nodeid: tests/test_utils_termtitle.py
      type: Module
    -   nodeid: tests/test_utils_tqdm_mod.py
      type: Module
    -   nodeid: tests/test_utils_trinary.py
      type: Module
    -   nodeid: tests/test_utils_typecast.py
      type: Module
    -   nodeid: tests/test_utils_utils.py
      type: Module
    -   nodeid: tests/test_utils_xrange.py
      type: Module
    
    • tests/test_utils_argfwd.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_argfwd.py::test_split_at[lst0-2-expected0]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_argfwd.py::test_split_at[lst1-1-expected1]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_argfwd.py::test_split_at[lst2-0-expected2]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_argfwd.py::test_merge_lists_unique[a0-b0-expected0]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_argfwd.py::test_merge_lists_unique[a1-b1-expected1]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_argfwd.py::test_merge_lists_unique[a2-b2-expected2]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_argfwd.py::test_merge_dicts_unique[a0-b0-expected0]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_argfwd.py::test_merge_dicts_unique[a1-b1-expected1]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_argfwd.py::test_merge_dicts_unique[a2-b2-expected2]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_pos_basic[pos0-expected_names0]
        type: Function
        lineno: 35
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_pos_basic[pos1-expected_names1]
        type: Function
        lineno: 35
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_pos_basic[pos2-expected_names2]
        type: Function
        lineno: 35
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_kw_basic[kw0-expected_keys0-expected_defaults0]
        type: Function
        lineno: 48
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_kw_basic[kw1-expected_keys1-expected_defaults1]
        type: Function
        lineno: 48
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_kw_basic[kw2-expected_keys2-expected_defaults2]
        type: Function
        lineno: 48
      -   nodeid: tests/test_utils_argfwd.py::test_make_signature_parametrized[pos0-kw0-(x, y, z=3)]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_argfwd.py::test_make_signature_parametrized[pos1-kw1-(a, b=1, c=2)]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_argfwd.py::test_make_signature_parametrized[pos2-kw2-(flag=False)]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_argfwd.py::test_get_args_parametrized[<lambda>-expected_pos0-expected_kw0]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_argfwd.py::test_get_args_parametrized[<lambda>-expected_pos1-expected_kw1]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_argfwd.py::test_get_args_parametrized[<lambda>-expected_pos2-expected_kw2]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_argfwd.py::test_signature_visible[wrap_all-(a, b, d=30, c=10)]
        type: Function
        lineno: 104
      -   nodeid: tests/test_utils_argfwd.py::test_signature_visible[wrap_skip-(a, b, c=10, d=20)]
        type: Function
        lineno: 104
      -   nodeid: tests/test_utils_argfwd.py::test_signature_visible[wrap_ignore_all-(x, y, c=10, d=20)]
        type: Function
        lineno: 104
      -   nodeid: tests/test_utils_argfwd.py::test_wrapper_behavior[wrap_all-args0-kwargs0-36]
        type: Function
        lineno: 112
      -   nodeid: tests/test_utils_argfwd.py::test_wrapper_behavior[wrap_all-args1-kwargs1-11]
        type: Function
        lineno: 112
      -   nodeid: tests/test_utils_argfwd.py::test_wrapper_behavior[wrap_skip-args2-kwargs2-10]
        type: Function
        lineno: 112
      -   nodeid: tests/test_utils_argfwd.py::test_wrapper_behavior[wrap_ignore_all-args3-kwargs3-10]
        type: Function
        lineno: 112
      
    • tests/test_utils_ask_yes_no.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-y-True-Question? [y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-yes-True-Question? [y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-n-False-Question? [y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-no-False-Question? [y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-user_input4-True-Question? [y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-user_input5-False-Question? [y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-user_input6-True-Question? [y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[y-y-True-Question? [Y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[y-n-False-Question? [Y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[y--True-Question? [Y/n] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[n-y-True-Question? [y/N] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[n-n-False-Question? [y/N] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[n--False-Question? [y/N] ]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-KeyboardInterrupt-False-n]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-KeyboardInterrupt-True-y]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[y-KeyboardInterrupt-False-n]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[y-KeyboardInterrupt-True-y]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[n-KeyboardInterrupt-False-n]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-user_input5-False-n]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-user_input6-True-y]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-user_input7-False-None]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[n-user_input8-False-None]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[n-user_input9-False-Invalid]
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-EOFError-False-n]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-EOFError-True-y]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[y-EOFError-True-y]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[n-EOFError-True-y]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[n-EOFError-False-n]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input5-True-y]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input6-False-n]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[y-EOFError-True-None]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[n-EOFError-False-None]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input9-True-None]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[n-user_input10-False-None]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input11-True-None]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input12-False-n]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input13-True-y]
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_mixed_sequences[None-invalid-None-user_input0-False]
        type: Function
        lineno: 117
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_mixed_sequences[None-None-notananswer-user_input1-True]
        type: Function
        lineno: 117
      -   nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_mixed_sequences[None-n-nop-user_input2-False]
        type: Function
        lineno: 117
      
    • tests/test_utils_channels.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_channels.py::test_load_channels_and_channels_class_with_professional_names
        type: Function
        lineno: 42
      
    • tests/test_utils_config.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_config.py::test_config_with_nested_and_list_data
        type: Function
        lineno: 15
      -   nodeid: tests/test_utils_config.py::test_config_with_strange_and_edge_keys
        type: Function
        lineno: 73
      
    • tests/test_utils_cpint.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[red]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[blue]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[yellow]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[green]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[cyan]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[magenta]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[white]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[black]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects0-color_spec0- | -['Fancy', 'list'] | {'a': 7} | None-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects1-color_spec1- - -{'k': [1, 2]} - 99 - ['X', ['Y']]-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects2-color_spec2- / -[] / {} / End-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects3-color_spec3-;-['', [3, 4]];done;0-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects4-color_spec4-::-['alpha', None]::['beta', {}]::stop-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects5-color_spec5- ... -['deep', ['deeper', ['deepest']]] ... X-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects6-color_spec6- // -{'dict': {'nested': [4, 5]}} // [True, False] // 6.28-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects7-color_spec7-==-['A', ['B']]==string==C-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects8-color_spec8- ++ -['Test', None, []] ++ {'v': 0}-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects9-None-;-['no', 'color'];plain-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects10-None- | -['simple'] |  | 12-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects11-None- : -[['very', 'deep']] : {'ok': True}-None]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects12-color_spec12-|-['fail', 'color']|123-ValueError]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects13-color_spec13- * -['error'] * {}-ValueError]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects14-color_spec14-//-['nope']//['bad']-ValueError]
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects15-color_spec15----wrong--base-ValueError]
        type: Function
        lineno: 24
      
    • tests/test_utils_debug.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_debug.py::test_traceable[A-entry0-creating: A(10, 20)]
        type: Function
        lineno: 21
      -   nodeid: tests/test_utils_debug.py::test_traceable[A-entry1-creating: A(10, 20, e=100)]
        type: Function
        lineno: 21
      -   nodeid: tests/test_utils_debug.py::test_traceable[A-entry2-creating: A('foo', [1, 2, 3], flag=True, data={'x': 9})]
        type: Function
        lineno: 21
      -   nodeid: tests/test_utils_debug.py::test_traceable[A-entry3-creating: A(CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name='test', meta='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...)]
        type: Function
        lineno: 21
      -   nodeid: tests/test_utils_debug.py::test_traceable[A-entry4-creating: A('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..., [0, 0, 0, 0, 0])]
        type: Function
        lineno: 21
      -   nodeid: tests/test_utils_debug.py::test_short_repr[abc-10-'abc']
        type: Function
        lineno: 52
      -   nodeid: tests/test_utils_debug.py::test_short_repr[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-10-'aaaaaaaaaa...]
        type: Function
        lineno: 52
      -   nodeid: tests/test_utils_debug.py::test_short_repr[12345-10-12345]
        type: Function
        lineno: 52
      -   nodeid: tests/test_utils_debug.py::test_short_repr[value3-15-[0, 0, 0, 0, 0,...]
        type: Function
        lineno: 52
      -   nodeid: tests/test_utils_debug.py::test_short_repr[None-10-None]
        type: Function
        lineno: 52
      -   nodeid: tests/test_utils_debug.py::test_short_repr[value5-20-Obj(xxxxxxxxxxxxxxxxx...]
        type: Function
        lineno: 52
      
    • tests/test_utils_dictext.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_getattr[data0-x-1]
        type: Function
        lineno: 12
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_getattr[data1-world-ok]
        type: Function
        lineno: 12
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_getattr[data2-outer-expected2]
        type: Function
        lineno: 12
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_setattr[initial0-nouveau-123]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_setattr[initial1-b-valeur]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_delattr[initial0-a-expected_keys0]
        type: Function
        lineno: 40
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_delattr[initial1-k-expected_keys1]
        type: Function
        lineno: 40
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_dir[data0-expected_keys0]
        type: Function
        lineno: 55
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_dir[data1-expected_keys1]
        type: Function
        lineno: 55
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_getattr_and_missing[data0-x-1-None]
        type: Function
        lineno: 69
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_getattr_and_missing[data1-missing-None-'MyDict' object has no attribute 'missing']
        type: Function
        lineno: 69
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs0-None-kwargs0-expected0]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs1-other1-kwargs1-expected1]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs2-other2-kwargs2-expected2]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs3-None-kwargs3-expected3]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs4-other4-kwargs4-expected4]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs5-other5-kwargs5-expected5]
        type: Function
        lineno: 90
      
    • tests/test_utils_dotdir.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_dotdir.py::test_dotdir_creation_and_base_exists
        type: Function
        lineno: 14
      -   nodeid: tests/test_utils_dotdir.py::test_dotdir_repr_returns_path_str
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_dotdir.py::test_dotdir_call
        type: Function
        lineno: 35
      
    • tests/test_utils_eval.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[1 + 2-3]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[4 - 2-2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[3 * 5-15]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[10 / 2-5.0]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[10 % 3-1]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[-5--5]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[+7-7]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[1 + 2 * 3-7]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[(1 + 2) * 3-9]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[-(-3)-3]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[-2 + 4 * 2-6]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[(4 + 5) * (6 - 1)-45]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[(((3)))-3]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[-(-(-2))--2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[3 + +4-7]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[3 + -4--1]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[True + 1-2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid['string'-string]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[1e1000 * 1e1000-inf]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid['a' + 'b'-ab]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[2 ** 3-Unsupported BinOp Pow]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[3 << 1-Unsupported BinOp LShift]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[1 < 2-Unsupported node type Compare]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[abs(3)-Unsupported node type Call]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[a + 2-Unsupported node type Name]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[string-Unsupported node type Name]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[[1, 2] + [3]-Unsupported node type List]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[{1: 2}-Unsupported node type Dict]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_runtime_errors[1 / 0-ZeroDivisionError]
        type: Function
        lineno: 52
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_runtime_errors[10 % 0-ZeroDivisionError]
        type: Function
        lineno: 52
      -   nodeid: tests/test_utils_eval.py::test_forgiving_eval[1 + 2-3]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_eval.py::test_forgiving_eval[bad + 2-bad + 2]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_eval.py::test_forgiving_eval[1 / 0-1 / 0]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_eval.py::test_forgiving_eval[2 ** 10-2 ** 10]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_eval.py::test_defaulting_eval[3 * 4-0-12]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_eval.py::test_defaulting_eval[invalid + 1-99-99]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_eval.py::test_defaulting_eval[1 / 0--1--1]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_eval.py::test_defaulting_eval[2 ** 10-42-42]
        type: Function
        lineno: 71
      
    • tests/test_utils_exceptions.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_key_error-High-level task failed\ncaused by KeyError: 'missing']
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_index_error-High-level task failed\ncaused by IndexError: list index out of range]
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_zero_division-High-level task failed\ncaused by ZeroDivisionError: division by zero]
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_value_error-High-level task failed\ncaused by ValueError: invalid literal for int() with base 10: 'not_a_number']
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_type_error-High-level task failed\ncaused by TypeError: can only concatenate str (not "int") to str]
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_key_error-KeyError: 'missing']
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_index_error-IndexError: list index out of range]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_zero_division-ZeroDivisionError: division by zero]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_value_error-ValueError: invalid literal for int() with base 10: 'not_a_number']
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_type_error-TypeError: can only concatenate str (not "int") to str]
        type: Function
        lineno: 60
      
    • tests/test_utils_get_adj.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_get_adj.py::test_get_adj_success
        type: Function
        lineno: 23
      -   nodeid: tests/test_utils_get_adj.py::test_get_adj_not_found
        type: Function
        lineno: 27
      -   nodeid: tests/test_utils_get_adj.py::test_ensure_adjs_mixed
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_get_adj.py::test_get_adjs_filter
        type: Function
        lineno: 37
      
    • tests/test_utils_hastyepics.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_instantiation_fast_vs_epics
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_without_suffix_and_dot
        type: Function
        lineno: 38
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_invalid_name_raises
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_init_list_has_no_disabled
        type: Function
        lineno: 55
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_initializes_device_attrs
        type: Function
        lineno: 59
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_pv_connection_skipped_by_default
        type: Function
        lineno: 82
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_adds_all_extras_pvs
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_PV_method_exists_and_works
        type: Function
        lineno: 109
      
    • tests/test_utils_ipy.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_ipy.py::test_devices_repr_fallback_and_ignore
        type: Function
        lineno: 19
      
    • tests/test_utils_jsonext.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj0-expected0]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj1-42]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[(1-1j)-expected2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj3-/tmp/file.txt]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj4-expected4]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj5-expected5]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj6-expected6]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj7-expected7]
        type: Function
        lineno: 7
      
    • tests/test_utils_lazypv.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_lazypv.py::test_getattr
        type: Function
        lineno: 7
      
    • tests/test_utils_logcfg.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_logcfg.py::test_custom_log_outputs[LONG-<lambda>-This is a LONG message]
        type: Function
        lineno: 21
      -   nodeid: tests/test_utils_logcfg.py::test_custom_log_outputs[ENLARGE-<lambda>-Please ENLARGE this!]
        type: Function
        lineno: 21
      -   nodeid: tests/test_utils_logcfg.py::test_import_logging_once_per_module
        type: Function
        lineno: 51
      
    • tests/test_utils_logign.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_logign.py::test_ignore_log_msg_behavior[WARNING-This should be ignored-This should appear]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_logign.py::test_ignore_log_msg_behavior[ENLARGE-ENLARGE this-Keep this ENLARGE]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_logign.py::test_ignore_only_by_level
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_logign.py::test_ignore_only_by_msg
        type: Function
        lineno: 64
      -   nodeid: tests/test_utils_logign.py::test_filter_removed_after_context
        type: Function
        lineno: 86
      
    • tests/test_utils_metaclasses.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_metaclasses.py::test_combine_classes_combines_methods
        type: Function
        lineno: 14
      -   nodeid: tests/test_utils_metaclasses.py::test_registryabc_combines_registrymeta_and_abcmeta
        type: Function
        lineno: 25
      
    • tests/test_utils_npy.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[0-5-1-expected0]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[5-0--1-expected1]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[1-2-0.3-expected2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[-2-2-1.5-expected3]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[2.5-0.5--0.4-expected4]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[0-10-4-expected0]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[5-15-2-expected1]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[-5-5-4-expected2]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[0-1-3-expected3]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[2-2-3-expected4]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[3-0-3-expected5]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[0-1-0-expected6]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_centered[-2-2-2-True-expected0]
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_centered[0-5-2-True-expected1]
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_centered[0-5-2-False-expected2]
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_centered[-1-2-1.5-True-expected3]
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[0-5-2-True-expected0]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[0-5-2-False-expected1]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[-1-2-1.5-True-expected2]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[-1-2-1.5-False-expected3]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[-2-1-1.2-True-expected4]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[5-0--2-True-expected5]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[5-0--2-False-expected6]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[0-5-2-True-expected0]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[0-5-2-False-expected1]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[-1-2-1.5-True-expected2]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[-1-2-1.5-False-expected3]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[5-0--2-True-expected4]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[5-0--2-False-expected5]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[-3-3-2-True-expected6]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-0-10-True]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-6-10-False]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-None-10-True]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-0-None-True]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-None-None-True]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_fraction[data0-2-5-0.6]
        type: Function
        lineno: 81
      -   nodeid: tests/test_utils_npy.py::test_within_fraction[data1-5-25-0.6666666666666666]
        type: Function
        lineno: 81
      -   nodeid: tests/test_utils_npy.py::test_within_fraction[data2-None-2-0.3333333333333333]
        type: Function
        lineno: 81
      -   nodeid: tests/test_utils_npy.py::test_within_fraction[data3-0-1-0]
        type: Function
        lineno: 81
      -   nodeid: tests/test_utils_npy.py::test_fraction_to_percentage[0.456-1-45.6]
        type: Function
        lineno: 92
      -   nodeid: tests/test_utils_npy.py::test_fraction_to_percentage[0.12345-2-12.35]
        type: Function
        lineno: 92
      -   nodeid: tests/test_utils_npy.py::test_fraction_to_percentage[0.9999-0-100.0]
        type: Function
        lineno: 92
      -   nodeid: tests/test_utils_npy.py::test_get_dtype[val0-ndarray]
        type: Function
        lineno: 101
      -   nodeid: tests/test_utils_npy.py::test_get_dtype[val1-list]
        type: Function
        lineno: 101
      -   nodeid: tests/test_utils_npy.py::test_get_dtype[3.14-float]
        type: Function
        lineno: 101
      -   nodeid: tests/test_utils_npy.py::test_get_shape[val0-expected0]
        type: Function
        lineno: 114
      -   nodeid: tests/test_utils_npy.py::test_get_shape[val1-expected1]
        type: Function
        lineno: 114
      -   nodeid: tests/test_utils_npy.py::test_get_shape[42-expected2]
        type: Function
        lineno: 114
      -   nodeid: tests/test_utils_npy.py::test_is_array[val0-True]
        type: Function
        lineno: 123
      -   nodeid: tests/test_utils_npy.py::test_is_array[val1-False]
        type: Function
        lineno: 123
      -   nodeid: tests/test_utils_npy.py::test_is_array[42-False]
        type: Function
        lineno: 123
      
    • tests/test_utils_path.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_path.py::test_can_create_all_files_user_says_yes
        type: Function
        lineno: 10
      -   nodeid: tests/test_utils_path.py::test_can_create_all_files_user_says_no
        type: Function
        lineno: 36
      -   nodeid: tests/test_utils_path.py::test_make_missing_dir_creates_folder
        type: Function
        lineno: 54
      -   nodeid: tests/test_utils_path.py::test_glob_files_returns_matching_files_only
        type: Function
        lineno: 66
      -   nodeid: tests/test_utils_path.py::test_filter_files_excludes_directories
        type: Function
        lineno: 83
      
    • tests/test_utils_picklio.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[test_obj0]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[test_obj1]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[simple string]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[42]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[3.14159]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[test_obj5]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[test_obj6]
        type: Function
        lineno: 6
      
    • tests/test_utils_printing.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_printing.py::test_maxlen_valid[seq0-3]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_printing.py::test_maxlen_valid[seq1-0]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_printing.py::test_maxlen_valid[seq2-3]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_printing.py::test_maxlen_valid[seq3-2]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_printing.py::test_strlen[42-2]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[hello-5]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[False-5]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[None-4]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[value4-9]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[value5-8]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[value6-6]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[-0]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[this is a phrase-16]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq0-6]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq1-3]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq2-9]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq3-16]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq4-5]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_transpose_matrix[data0-expected0]
        type: Function
        lineno: 41
      -   nodeid: tests/test_utils_printing.py::test_transpose_matrix[data1-expected1]
        type: Function
        lineno: 41
      -   nodeid: tests/test_utils_printing.py::test_transpose_matrix[data2-expected2]
        type: Function
        lineno: 41
      -   nodeid: tests/test_utils_printing.py::test_prepend[initial0-1-expected0]
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_printing.py::test_prepend[initial1-a-expected1]
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_printing.py::test_prepend[initial2-prepend2-expected2]
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_printing.py::test_prepend[initial3-prepend3-expected3]
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries0-widths0-  a   bbb]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries1-widths1- 1  2]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries2-widths2-  long  val]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries3-widths3- True  False]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries4-widths4-  123  4567]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries5-widths5- text with space   end]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries6-widths6-  {'a': 1}   {'b': 2}]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries7-widths7-    [1, 2]     [3, 4]]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_label_sep[widths0------ ----]
        type: Function
        lineno: 74
      -   nodeid: tests/test_utils_printing.py::test_fmt_label_sep[widths1-=-== ===]
        type: Function
        lineno: 74
      -   nodeid: tests/test_utils_printing.py::test_fmt_label_sep[widths2-*-***** **]
        type: Function
        lineno: 74
      -   nodeid: tests/test_utils_printing.py::test_printable_dict_with_header[d0-HeaderTest-expected_lines0]
        type: Function
        lineno: 82
      -   nodeid: tests/test_utils_printing.py::test_printable_dict_of_dicts
        type: Function
        lineno: 101
      -   nodeid: tests/test_utils_printing.py::test_printable_table[data0-labels0-A: ID\nB: \u2713 Success?\nC: SuperPrecisionValue\nD: Result Metadata\n\n#             A     B          C                            D\n- ------------- ----- ---------- ----------------------------\n0            X1  True     0.1234               {'meta': 'ok'}\n1 AnotherSample False 98765.4321          {'meta': [1, 2, 3]}\n2             Z  None        0.0 {'meta': {'nested_key': 42}}]
        type: Function
        lineno: 128
      
    • tests/test_utils_pv.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_pv.py::test_progress_and_repr[25.0-\u2588\u2588\u258c       -\x1b[32m-PV "TEST:PV" at 25.0 units]
        type: Function
        lineno: 43
      -   nodeid: tests/test_utils_pv.py::test_progress_and_repr[50.0-\u2588\u2588\u2588\u2588\u2588     -\x1b[32m-PV "TEST:PV" at 50.0 units]
        type: Function
        lineno: 43
      -   nodeid: tests/test_utils_pv.py::test_progress_and_repr[75.0-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  -\x1b[32m-PV "TEST:PV" at 75.0 units]
        type: Function
        lineno: 43
      -   nodeid: tests/test_utils_pv.py::test_progress_and_repr[100.0-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588-\x1b[32m-PV "TEST:PV" at 100.0 units]
        type: Function
        lineno: 43
      -   nodeid: tests/test_utils_pv.py::test_progress_and_repr[150.0->>>>>>>>>>-\x1b[31m-PV "TEST:PV" at 150.0 units]
        type: Function
        lineno: 43
      -   nodeid: tests/test_utils_pv.py::test_progress_and_repr[-50.0-<<<<<<<<<<-\x1b[31m-PV "TEST:PV" at -50.0 units]
        type: Function
        lineno: 43
      -   nodeid: tests/test_utils_pv.py::test_use_callback_context_manager
        type: Function
        lineno: 73
      
    • tests/test_utils_rangebar.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_rangebar.py::test_full_progress_bar
        type: Function
        lineno: 14
      -   nodeid: tests/test_utils_rangebar.py::test_half_progress_bar
        type: Function
        lineno: 27
      -   nodeid: tests/test_utils_rangebar.py::test_zero_progress_bar
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_rangebar.py::test_overflow_bar
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_rangebar.py::test_underflow_bar
        type: Function
        lineno: 69
      -   nodeid: tests/test_utils_rangebar.py::test_repr
        type: Function
        lineno: 82
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[0-          ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[10-\u2588         ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[25-\u2588\u2588\u258c       ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[27-\u2588\u2588\u258a       ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[49-\u2588\u2588\u2588\u2588\u2589     ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[50-\u2588\u2588\u2588\u2588\u2588     ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[51-\u2588\u2588\u2588\u2588\u2588\u258f    ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[73-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258e  ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[75-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[90-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[100-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588]
        type: Function
        lineno: 89
      
    • tests/test_utils_readable.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[59.4-59 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[59.9-60 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[119.9-120 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[120.1-2 minutes]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[3599.9-60 minutes]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[3600.1-1 hour]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[7199.9-2 hours]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[7200.1-2 hours]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[90.4-90 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[90.6-91 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[121.9-2 minutes]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[3660.1-1 hour]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[1296000.0-15 days]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[2332800.0-27 days]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[2592000.0-1 month]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[2678400.0-1 month]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[3888000.0-2 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[5097600.0-2 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[5184000.0-2 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[5270400.0-2 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[23328000.0-9 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[31104000.0-1 year]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[33696000.0-1 year]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[59616000.0-2 years]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[62208000.0-2 years]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[5158080.0-2 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[5209920.0-2 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[30844800.0-12 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[31363200.0-1 year]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[3153600.0-1 month]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[15452640.0-5 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_rounding_cases
        type: Function
        lineno: 47
      
    • tests/test_utils_sendmail.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_sendmail.py::test_sendmail_real_local_verbose
        type: Function
        lineno: 70
      
    • tests/test_utils_snapshot.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[exclude_internals]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[include_internals]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[empty_case]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_str]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_id]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_case_insensitive]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_length]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_reverse]
        type: Function
        lineno: 83
      
    • tests/test_utils_termtitle.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_termtitle.py::test_terminal_title_with_tmux
        type: Function
        lineno: 9
      
    • tests/test_utils_tqdm_mod.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_tqdm_mod.py::test_complete_progress_bar
        type: Function
        lineno: 25
      -   nodeid: tests/test_utils_tqdm_mod.py::test_set_progress_multiple_points
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_tqdm_mod.py::test_format_sizeof_alignment
        type: Function
        lineno: 65
      -   nodeid: tests/test_utils_tqdm_mod.py::test_float_alignment_in_bar
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_tqdm_mod.py::test_custom_unit
        type: Function
        lineno: 132
      -   nodeid: tests/test_utils_tqdm_mod.py::test_clamp_above_total
        type: Function
        lineno: 146
      -   nodeid: tests/test_utils_tqdm_mod.py::test_clamp_below_zero
        type: Function
        lineno: 163
      
    • tests/test_utils_trinary.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_trinary.py::test_check_trinary_valid_values
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_trinary.py::test_check_trinary_invalid_value
        type: Function
        lineno: 14
      -   nodeid: tests/test_utils_trinary.py::test_check_trinary_with_custom_allowed_values
        type: Function
        lineno: 22
      
    • tests/test_utils_typecast.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_typecast.py::test_downcast_success
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_typecast.py::test_upcast_success
        type: Function
        lineno: 30
      -   nodeid: tests/test_utils_typecast.py::test_downcast_invalid
        type: Function
        lineno: 41
      -   nodeid: tests/test_utils_typecast.py::test_upcast_invalid
        type: Function
        lineno: 48
      -   nodeid: tests/test_utils_typecast.py::test_object_identity_preserved
        type: Function
        lineno: 53
      -   nodeid: tests/test_utils_typecast.py::test_ensure_subclass_valid
        type: Function
        lineno: 64
      -   nodeid: tests/test_utils_typecast.py::test_ensure_subclass_invalid
        type: Function
        lineno: 67
      -   nodeid: tests/test_utils_typecast.py::test_cast_changes_class
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_typecast.py::test_cast_preserves_identity
        type: Function
        lineno: 86
      
    • tests/test_utils_utils.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_utils.py::test_singleton_instance
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_utils.py::test_singleton_identity
        type: Function
        lineno: 25
      -   nodeid: tests/test_utils_utils.py::test_typename[None-NoneType]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[True-bool]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[42-int]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[3.14-float]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[text-str]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj5-set]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj6-list]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj7-list]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj8-dict]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[<lambda>-function]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[sample_function-function]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[nested-function]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[len-builtin_function_or_method]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[sum-builtin_function_or_method]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[math-module]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[sys-module]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[function-type]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[<genexpr>-generator]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj18-list_iterator]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_next_int[nums0-4]
        type: Function
        lineno: 77
      -   nodeid: tests/test_utils_utils.py::test_next_int[nums1-21]
        type: Function
        lineno: 77
      -   nodeid: tests/test_utils_utils.py::test_next_int[nums2-0]
        type: Function
        lineno: 77
      -   nodeid: tests/test_utils_utils.py::test_zero_pad[7-3-007]
        type: Function
        lineno: 87
      -   nodeid: tests/test_utils_utils.py::test_zero_pad[123-5-00123]
        type: Function
        lineno: 87
      -   nodeid: tests/test_utils_utils.py::test_zero_pad[0-2-00]
        type: Function
        lineno: 87
      -   nodeid: tests/test_utils_utils.py::test_iround[3.6-4]
        type: Function
        lineno: 97
      -   nodeid: tests/test_utils_utils.py::test_iround[2.1-2]
        type: Function
        lineno: 97
      -   nodeid: tests/test_utils_utils.py::test_iround[-1.5--2]
        type: Function
        lineno: 97
      -   nodeid: tests/test_utils_utils.py::test_iround[-1.4--1]
        type: Function
        lineno: 97
      -   nodeid: tests/test_utils_utils.py::test_sorted_naturally[items0-expected0]
        type: Function
        lineno: 108
      -   nodeid: tests/test_utils_utils.py::test_sorted_naturally[items1-expected1]
        type: Function
        lineno: 108
      -   nodeid: tests/test_utils_utils.py::test_sorted_naturally_reverse[items0-expected0]
        type: Function
        lineno: 115
      
    • tests/test_utils_xrange.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_xrange.py::test_xrange_finite[args0-kwargs0-expected0]
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_xrange.py::test_xrange_finite[args1-kwargs1-expected1]
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_xrange.py::test_xrange_finite[args2-kwargs2-expected2]
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_xrange.py::test_xrange_finite[args3-kwargs3-expected3]
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_xrange.py::test_xrange_infinite[args0-kwargs0-count(0)]
        type: Function
        lineno: 20
      -   nodeid: tests/test_utils_xrange.py::test_xrange_infinite[args1-kwargs1-count(0, 2)]
        type: Function
        lineno: 20
      -   nodeid: tests/test_utils_xrange.py::test_xrange_too_many_args[args0]
        type: Function
        lineno: 31
      
. (1 tests)
  • .
    • Outcome: passed
    • result:
    -   nodeid: ci-reports
      type: Dir
    -   nodeid: outputs
      type: Dir
    -   nodeid: slic
      type: Package
    -   nodeid: temp-ci
      type: Dir
    -   nodeid: tests
      type: Dir
    

⚠️ Warnings

Warnings nº1
message: invalid escape sequence \-
category: DeprecationWarning
when: collect
filename: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/bsread/h5.py
lineno: 207
Warnings nº2
message: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
category: DeprecationWarning
when: collect
filename: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/ca.py
lineno: 28
Warnings nº3
message: Deprecated call to `pkg_resources.declare_namespace('mpl_toolkits')`.
Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
category: DeprecationWarning
when: collect
filename: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pkg_resources/__init__.py
lineno: 3154
Warnings nº4
message: The module numpy.dual is deprecated.  Instead of using dual, use the functions directly from numpy or scipy.
category: DeprecationWarning
when: collect
filename: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/scipy/fft/__init__.py
lineno: 97