feat: add shoulders, chest, and bust data files

This commit is contained in:
BRADSEC
2026-06-21 19:38:19 +10:00
parent 9d26faba64
commit ffb2b4d29b
9 changed files with 75 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
[
{ "label": "round", "description": "round" },
{ "label": "teardrop", "description": "teardrop" },
{ "label": "wide-set", "description": "wide-set" },
{ "label": "close-set", "description": "close-set" },
{ "label": "natural", "description": "natural" }
]
+7
View File
@@ -0,0 +1,7 @@
[
{ "label": "petite", "description": "petite" },
{ "label": "small", "description": "small" },
{ "label": "average", "description": "average" },
{ "label": "full", "description": "full" },
{ "label": "large", "description": "large" }
]
+3
View File
@@ -0,0 +1,3 @@
[
{ "label": "none", "description": "" }
]
+8
View File
@@ -0,0 +1,8 @@
[
{ "label": "narrow", "description": "narrow shoulders" },
{ "label": "average", "description": "average shoulders" },
{ "label": "broad", "description": "broad shoulders" },
{ "label": "sloping", "description": "sloping shoulders" },
{ "label": "square", "description": "square shoulders" },
{ "label": "soft", "description": "soft shoulders" }
]
+3
View File
@@ -0,0 +1,3 @@
[
{ "label": "none", "description": "" }
]
+3
View File
@@ -0,0 +1,3 @@
[
{ "label": "none", "description": "" }
]
+7
View File
@@ -0,0 +1,7 @@
[
{ "label": "flat", "description": "a flat chest" },
{ "label": "average", "description": "an average chest" },
{ "label": "broad", "description": "a broad chest" },
{ "label": "muscular", "description": "a muscular chest" },
{ "label": "barrel", "description": "a barrel chest" }
]
+8
View File
@@ -0,0 +1,8 @@
[
{ "label": "narrow", "description": "narrow shoulders" },
{ "label": "average", "description": "average shoulders" },
{ "label": "broad", "description": "broad shoulders" },
{ "label": "sloping", "description": "sloping shoulders" },
{ "label": "square", "description": "square shoulders" },
{ "label": "muscular", "description": "muscular shoulders" }
]
+29
View File
@@ -154,5 +154,34 @@ class TestBuildDescription(unittest.TestCase):
self.assertNotIn("eyes eyes", s)
class TestBodyData(unittest.TestCase):
BODY_KEYS = ("shoulders", "chest", "bust_size", "bust_shape")
def test_all_body_files_load(self):
for sex in ("male", "female"):
for key in self.BODY_KEYS:
data = core.load_sex(sex, f"{key}.json")
self.assertTrue(len(data) >= 1, f"{sex}/{key}")
for item in data:
self.assertIn("label", item)
self.assertIn("description", item)
def test_male_bust_is_stub(self):
for key in ("bust_size", "bust_shape"):
labels = [i["label"] for i in core.load_sex("male", f"{key}.json")]
self.assertEqual(labels, ["none"], key)
def test_female_chest_is_stub(self):
labels = [i["label"] for i in core.load_sex("female", "chest.json")]
self.assertEqual(labels, ["none"])
def test_shoulders_real_for_both(self):
for sex in ("male", "female"):
labels = [i["label"] for i in core.load_sex(sex, "shoulders.json")]
self.assertGreater(len(labels), 1, sex)
self.assertNotIn("none", labels)
if __name__ == "__main__":
unittest.main()