fix tests according to offset

This commit is contained in:
Mayank Agarwal 2023-08-02 09:42:18 +05:30
parent e131f8b197
commit d170cbeda0
1 changed files with 12 additions and 12 deletions

View File

@ -13,7 +13,7 @@ from supervision.dataset.formats.pascal_voc import (
)
def are_xml_elements_equal(elem1, elem2):
def are_xml_elements_equal_with_offset(elem1, elem2):
if (
elem1.tag != elem2.tag
or elem1.attrib != elem2.attrib
@ -23,7 +23,7 @@ def are_xml_elements_equal(elem1, elem2):
return False
for child1, child2 in zip(elem1, elem2):
if not are_xml_elements_equal(child1, child2):
if not are_xml_elements_equal_with_offset(child1, child2):
return False
return True
@ -33,20 +33,20 @@ def are_xml_elements_equal(elem1, elem2):
"xyxy, name, polygon, expected_result, exception",
[
(
[0, 0, 10, 10],
np.array([0, 0, 10, 10]),
"test",
None,
ET.fromstring(
"""<object><name>test</name><bndbox><xmin>0</xmin><ymin>0</ymin><xmax>10</xmax><ymax>10</ymax></bndbox></object>"""
"""<object><name>test</name><bndbox><xmin>1</xmin><ymin>1</ymin><xmax>11</xmax><ymax>11</ymax></bndbox></object>"""
),
DoesNotRaise(),
),
(
[0, 0, 10, 10],
np.array([0, 0, 10, 10]),
"test",
[[0, 0], [10, 0], [10, 10], [0, 10]],
np.array([[0, 0], [10, 0], [10, 10], [0, 10]]),
ET.fromstring(
"""<object><name>test</name><bndbox><xmin>0</xmin><ymin>0</ymin><xmax>10</xmax><ymax>10</ymax></bndbox><polygon><x1>0</x1><y1>0</y1><x2>10</x2><y2>0</y2><x3>10</x3><y3>10</y3><x4>0</x4><y4>10</y4></polygon></object>"""
"""<object><name>test</name><bndbox><xmin>1</xmin><ymin>1</ymin><xmax>11</xmax><ymax>11</ymax></bndbox><polygon><x1>1</x1><y1>1</y1><x2>11</x2><y2>1</y2><x3>11</x3><y3>11</y3><x4>1</x4><y4>11</y4></polygon></object>"""
),
DoesNotRaise(),
),
@ -61,7 +61,7 @@ def test_object_to_pascal_voc(
):
with exception:
result = object_to_pascal_voc(xyxy=xyxy, name=name, polygon=polygon)
assert are_xml_elements_equal(result, expected_result)
assert are_xml_elements_equal_with_offset(result, expected_result)
@pytest.mark.parametrize(
@ -86,13 +86,13 @@ def test_parse_polygon_points(
assert result == expected_result
ONE_CLASS_N_BBOX = """<annotation><object><name>test</name><bndbox><xmin>0</xmin><ymin>0</ymin><xmax>10</xmax><ymax>10</ymax></bndbox></object><object><name>test</name><bndbox><xmin>10</xmin><ymin>10</ymin><xmax>20</xmax><ymax>20</ymax></bndbox></object></annotation>"""
ONE_CLASS_N_BBOX = """<annotation><object><name>test</name><bndbox><xmin>1</xmin><ymin>1</ymin><xmax>11</xmax><ymax>11</ymax></bndbox></object><object><name>test</name><bndbox><xmin>11</xmin><ymin>11</ymin><xmax>21</xmax><ymax>21</ymax></bndbox></object></annotation>"""
ONE_CLASS_ONE_BBOX = """<annotation><object><name>test</name><bndbox><xmin>0</xmin><ymin>0</ymin><xmax>10</xmax><ymax>10</ymax></bndbox></object></annotation>"""
ONE_CLASS_ONE_BBOX = """<annotation><object><name>test</name><bndbox><xmin>1</xmin><ymin>1</ymin><xmax>11</xmax><ymax>11</ymax></bndbox></object></annotation>"""
N_CLASS_N_BBOX = """<annotation><object><name>test</name><bndbox><xmin>0</xmin><ymin>0</ymin><xmax>10</xmax><ymax>10</ymax></bndbox></object><object><name>test</name><bndbox><xmin>20</xmin><ymin>30</ymin><xmax>30</xmax><ymax>40</ymax></bndbox></object><object><name>test2</name><bndbox><xmin>10</xmin><ymin>10</ymin><xmax>20</xmax><ymax>20</ymax></bndbox></object></annotation>"""
N_CLASS_N_BBOX = """<annotation><object><name>test</name><bndbox><xmin>1</xmin><ymin>1</ymin><xmax>11</xmax><ymax>11</ymax></bndbox></object><object><name>test</name><bndbox><xmin>21</xmin><ymin>31</ymin><xmax>31</xmax><ymax>41</ymax></bndbox></object><object><name>test2</name><bndbox><xmin>11</xmin><ymin>11</ymin><xmax>21</xmax><ymax>21</ymax></bndbox></object></annotation>"""
NO_DETECTIONS = """<annotation></annotation>"""
@ -138,7 +138,7 @@ NO_DETECTIONS = """<annotation></annotation>"""
),
],
)
def test_detections_from_xml_obj(
def test_detections_from_xml_obj_with_offset(
xml_string, classes, resolution_wh, force_masks, expected_result, exception
):
with exception: