MCPcopy Create free account
hub / github.com/IChooseYou/Reclass / testArrayCollapsedNoChildren

Method testArrayCollapsedNoChildren

tests/test_compose.cpp:909–959  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

907 }
908
909 void testArrayCollapsedNoChildren() {
910 // Collapsed array: header only, no children or footer
911 NodeTree tree;
912 tree.baseAddress = 0;
913
914 Node root;
915 root.kind = NodeKind::Struct;
916 root.name = "Root";
917 root.parentId = 0;
918 int ri = tree.addNode(root);
919 uint64_t rootId = tree.nodes[ri].id;
920
921 Node arr;
922 arr.kind = NodeKind::Array;
923 arr.name = "data";
924 arr.parentId = rootId;
925 arr.offset = 0;
926 arr.elementKind = NodeKind::Float;
927 arr.arrayLen = 100;
928 arr.collapsed = true;
929 int ai = tree.addNode(arr);
930 uint64_t arrId = tree.nodes[ai].id;
931
932 // Child that should NOT appear when collapsed
933 Node child;
934 child.kind = NodeKind::Float;
935 child.name = "elem";
936 child.parentId = arrId;
937 child.offset = 0;
938 tree.addNode(child);
939
940 NullProvider prov;
941 ComposeResult result = compose(tree, prov);
942
943 // CommandRow + Array header(collapsed) + root footer = 3
944 QCOMPARE(result.meta.size(), 3);
945
946 // Array header is collapsed (at index 1)
947 int arrLine = -1;
948 for (int i = 0; i < result.meta.size(); i++) {
949 if (result.meta[i].isArrayHeader) { arrLine = i; break; }
950 }
951 QVERIFY(arrLine >= 0);
952 QCOMPARE(arrLine, 1);
953 QVERIFY(result.meta[arrLine].foldCollapsed);
954
955 // Header text should NOT contain "{"
956 QStringList lines = result.text.split('\n');
957 QVERIFY2(!lines[arrLine].contains("{"),
958 qPrintable("Collapsed header should not have '{': " + lines[arrLine]));
959 }
960
961 void testArrayCountRecompose() {
962 // After changing arrayLen and recomposing, the text shows the new count

Callers

nothing calls this directly

Calls 3

composeFunction · 0.85
addNodeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected