Revert D48712710: C++ Cleanup 3/N: Reorganize YGNode

Differential Revision:
D48712710

Original commit changeset: d28eae38469a

Original Phabricator Diff: D48712710

fbshipit-source-id: 7a10b071edcf045ce98bbf8f9deca0d0e2e80a14
This commit is contained in:
Zhiyao Zhou
2023-08-29 23:27:25 -07:00
committed by Facebook GitHub Bot
parent 6ca56e87ce
commit ea7f61a3db
31 changed files with 578 additions and 625 deletions

View File

@@ -9,6 +9,7 @@
#include <yoga/event/event.h>
#include <yoga/Yoga.h>
#include <yoga/YGEnums.h>
#include <yoga/YGNode.h>
#include <algorithm>
#include <functional>
@@ -29,7 +30,7 @@ struct TypedEventTestData<Event::LayoutPassEnd> {
};
struct EventArgs {
const YGNodeConstRef node;
const YGNode* node;
Event::Type type;
std::unique_ptr<void, std::function<void(void*)>> dataPtr;
std::unique_ptr<void, std::function<void(void*)>> eventTestDataPtr;
@@ -47,7 +48,7 @@ struct EventArgs {
class EventTest : public ::testing::Test {
ScopedEventSubscription subscription = {&EventTest::listen};
static void listen(YGNodeConstRef, Event::Type, Event::Data);
static void listen(const YGNode&, Event::Type, Event::Data);
public:
static std::vector<EventArgs> events;
@@ -283,16 +284,16 @@ TEST_F(EventTest, baseline_functions_get_wrapped) {
namespace {
template <Event::Type E>
EventArgs createArgs(YGNodeConstRef node, const Event::Data data) {
EventArgs createArgs(const YGNode& node, const Event::Data data) {
using Data = Event::TypedData<E>;
auto deleteData = [](void* x) { delete static_cast<Data*>(x); };
return {node, E, {new Data{(data.get<E>())}, deleteData}, nullptr};
return {&node, E, {new Data{(data.get<E>())}, deleteData}, nullptr};
}
template <Event::Type E>
EventArgs createArgs(
YGNodeConstRef node,
const YGNode& node,
const Event::Data data,
TypedEventTestData<E> eventTestData) {
using EventTestData = TypedEventTestData<E>;
@@ -308,10 +309,7 @@ EventArgs createArgs(
} // namespace
void EventTest::listen(
YGNodeConstRef node,
Event::Type type,
Event::Data data) {
void EventTest::listen(const YGNode& node, Event::Type type, Event::Data data) {
switch (type) {
case Event::NodeAllocation:
events.push_back(createArgs<Event::NodeAllocation>(node, data));

View File

@@ -6,6 +6,7 @@
*/
#include <gtest/gtest.h>
#include <yoga/YGNode.h>
#include <yoga/Yoga.h>
static float _baselineFunc(
@@ -196,7 +197,7 @@ TEST(YogaTest, align_baseline_parent_using_child_in_column_as_reference) {
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeInsertChild(root_child1, root_child1_child1, 1);
@@ -241,7 +242,7 @@ TEST(
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeStyleSetPadding(root_child1_child1, YGEdgeLeft, 100);
YGNodeStyleSetPadding(root_child1_child1, YGEdgeRight, 100);
@@ -294,7 +295,7 @@ TEST(
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeInsertChild(root_child1, root_child1_child1, 1);
@@ -343,7 +344,7 @@ TEST(
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeInsertChild(root_child1, root_child1_child1, 1);
@@ -388,7 +389,7 @@ TEST(
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeStyleSetMargin(root_child1_child1, YGEdgeLeft, 100);
YGNodeStyleSetMargin(root_child1_child1, YGEdgeRight, 100);
@@ -435,7 +436,7 @@ TEST(YogaTest, align_baseline_parent_using_child_in_row_as_reference) {
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeInsertChild(root_child1, root_child1_child1, 1);
@@ -480,7 +481,7 @@ TEST(
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeStyleSetPadding(root_child1_child1, YGEdgeLeft, 100);
YGNodeStyleSetPadding(root_child1_child1, YGEdgeRight, 100);
@@ -529,7 +530,7 @@ TEST(
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeStyleSetMargin(root_child1_child1, YGEdgeLeft, 100);
YGNodeStyleSetMargin(root_child1_child1, YGEdgeRight, 100);
@@ -669,7 +670,7 @@ TEST(
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeInsertChild(root_child1, root_child1_child1, 1);
@@ -720,7 +721,7 @@ TEST(
const YGNodeRef root_child1_child1 =
createYGNode(config, YGFlexDirectionColumn, 500, 400, false);
YGNodeSetBaselineFunc(root_child1_child1, _baselineFunc);
root_child1_child1->setBaselineFunc(_baselineFunc);
YGNodeSetIsReferenceBaseline(root_child1_child1, true);
YGNodeInsertChild(root_child1, root_child1_child1, 1);

View File

@@ -6,6 +6,7 @@
*/
#include <gtest/gtest.h>
#include <yoga/YGNode.h>
#include <yoga/Yoga.h>
static YGSize _measure(
@@ -448,7 +449,7 @@ TEST(YogaTest, aspect_ratio_with_measure_func) {
YGNodeStyleSetHeight(root, 100);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setMeasureFunc(_measure);
YGNodeStyleSetAspectRatio(root_child0, 1);
YGNodeInsertChild(root, root_child0, 0);

View File

@@ -6,13 +6,14 @@
*/
#include <gtest/gtest.h>
#include <yoga/YGNode.h>
#include <yoga/Yoga.h>
static float _baseline(
YGNodeRef node,
const float /*width*/,
const float /*height*/) {
float* baseline = (float*) YGNodeGetContext(node);
float* baseline = (float*) node->getContext();
return *baseline;
}
@@ -35,9 +36,9 @@ TEST(YogaTest, align_baseline_customer_func) {
float baselineValue = 10;
const YGNodeRef root_child1_child0 = YGNodeNew();
YGNodeSetContext(root_child1_child0, &baselineValue);
root_child1_child0->setContext(&baselineValue);
YGNodeStyleSetWidth(root_child1_child0, 50);
YGNodeSetBaselineFunc(root_child1_child0, _baseline);
root_child1_child0->setBaselineFunc(_baseline);
YGNodeStyleSetHeight(root_child1_child0, 20);
YGNodeInsertChild(root_child1, root_child1_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);

View File

@@ -6,13 +6,10 @@
*/
#include <gtest/gtest.h>
#include <yoga/Yoga.h>
#include <yoga/node/Node.h>
using namespace facebook;
#include <yoga/YGNode.h>
static void _dirtied(YGNodeRef node) {
int* dirtiedCount = (int*) YGNodeGetContext(node);
int* dirtiedCount = (int*) node->getContext();
(*dirtiedCount)++;
}
@@ -25,17 +22,17 @@ TEST(YogaTest, dirtied) {
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
int dirtiedCount = 0;
YGNodeSetContext(root, &dirtiedCount);
YGNodeSetDirtiedFunc(root, _dirtied);
root->setContext(&dirtiedCount);
root->setDirtiedFunc(_dirtied);
ASSERT_EQ(0, dirtiedCount);
// `_dirtied` MUST be called in case of explicit dirtying.
static_cast<yoga::Node*>(root)->setDirty(true);
root->setDirty(true);
ASSERT_EQ(1, dirtiedCount);
// `_dirtied` MUST be called ONCE.
static_cast<yoga::Node*>(root)->setDirty(true);
root->setDirty(true);
ASSERT_EQ(1, dirtiedCount);
}
@@ -58,17 +55,17 @@ TEST(YogaTest, dirtied_propagation) {
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
int dirtiedCount = 0;
YGNodeSetContext(root, &dirtiedCount);
YGNodeSetDirtiedFunc(root, _dirtied);
root->setContext(&dirtiedCount);
root->setDirtiedFunc(_dirtied);
ASSERT_EQ(0, dirtiedCount);
// `_dirtied` MUST be called for the first time.
static_cast<yoga::Node*>(root_child0)->markDirtyAndPropagate();
root_child0->markDirtyAndPropagate();
ASSERT_EQ(1, dirtiedCount);
// `_dirtied` must NOT be called for the second time.
static_cast<yoga::Node*>(root_child0)->markDirtyAndPropagate();
root_child0->markDirtyAndPropagate();
ASSERT_EQ(1, dirtiedCount);
}
@@ -91,20 +88,20 @@ TEST(YogaTest, dirtied_hierarchy) {
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
int dirtiedCount = 0;
YGNodeSetContext(root_child0, &dirtiedCount);
YGNodeSetDirtiedFunc(root_child0, _dirtied);
root_child0->setContext(&dirtiedCount);
root_child0->setDirtiedFunc(_dirtied);
ASSERT_EQ(0, dirtiedCount);
// `_dirtied` must NOT be called for descendants.
static_cast<yoga::Node*>(root)->markDirtyAndPropagate();
root->markDirtyAndPropagate();
ASSERT_EQ(0, dirtiedCount);
// `_dirtied` must NOT be called for the sibling node.
static_cast<yoga::Node*>(root_child1)->markDirtyAndPropagate();
root_child1->markDirtyAndPropagate();
ASSERT_EQ(0, dirtiedCount);
// `_dirtied` MUST be called in case of explicit dirtying.
static_cast<yoga::Node*>(root_child0)->markDirtyAndPropagate();
root_child0->markDirtyAndPropagate();
ASSERT_EQ(1, dirtiedCount);
}

View File

@@ -6,7 +6,7 @@
*/
#include <gtest/gtest.h>
#include <yoga/Yoga.h>
#include <yoga/YGNode.h>
TEST(YogaTest, dirty_propagation) {
const YGNodeRef root = YGNodeNew();
@@ -28,15 +28,15 @@ TEST(YogaTest, dirty_propagation) {
YGNodeStyleSetWidth(root_child0, 20);
EXPECT_TRUE(YGNodeIsDirty(root_child0));
EXPECT_FALSE(YGNodeIsDirty(root_child1));
EXPECT_TRUE(YGNodeIsDirty(root));
EXPECT_TRUE(root_child0->isDirty());
EXPECT_FALSE(root_child1->isDirty());
EXPECT_TRUE(root->isDirty());
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
EXPECT_FALSE(YGNodeIsDirty(root_child0));
EXPECT_FALSE(YGNodeIsDirty(root_child1));
EXPECT_FALSE(YGNodeIsDirty(root));
EXPECT_FALSE(root_child0->isDirty());
EXPECT_FALSE(root_child1->isDirty());
EXPECT_FALSE(root->isDirty());
YGNodeFreeRecursive(root);
}
@@ -61,9 +61,9 @@ TEST(YogaTest, dirty_propagation_only_if_prop_changed) {
YGNodeStyleSetWidth(root_child0, 50);
EXPECT_FALSE(YGNodeIsDirty(root_child0));
EXPECT_FALSE(YGNodeIsDirty(root_child1));
EXPECT_FALSE(YGNodeIsDirty(root));
EXPECT_FALSE(root_child0->isDirty());
EXPECT_FALSE(root_child1->isDirty());
EXPECT_FALSE(root->isDirty());
YGNodeFreeRecursive(root);
}
@@ -91,26 +91,26 @@ TEST(YogaTest, dirty_propagation_changing_layout_config) {
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
EXPECT_FALSE(YGNodeIsDirty(root));
EXPECT_FALSE(YGNodeIsDirty(root_child0));
EXPECT_FALSE(YGNodeIsDirty(root_child1));
EXPECT_FALSE(YGNodeIsDirty(root_child0_child0));
EXPECT_FALSE(root->isDirty());
EXPECT_FALSE(root_child0->isDirty());
EXPECT_FALSE(root_child1->isDirty());
EXPECT_FALSE(root_child0_child0->isDirty());
YGConfigRef newConfig = YGConfigNew();
YGConfigSetErrata(newConfig, YGErrataStretchFlexBasis);
YGNodeSetConfig(root_child0, newConfig);
EXPECT_TRUE(YGNodeIsDirty(root));
EXPECT_TRUE(YGNodeIsDirty(root_child0));
EXPECT_FALSE(YGNodeIsDirty(root_child1));
EXPECT_FALSE(YGNodeIsDirty(root_child0_child0));
EXPECT_TRUE(root->isDirty());
EXPECT_TRUE(root_child0->isDirty());
EXPECT_FALSE(root_child1->isDirty());
EXPECT_FALSE(root_child0_child0->isDirty());
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
EXPECT_FALSE(YGNodeIsDirty(root));
EXPECT_FALSE(YGNodeIsDirty(root_child0));
EXPECT_FALSE(YGNodeIsDirty(root_child1));
EXPECT_FALSE(YGNodeIsDirty(root_child0_child0));
EXPECT_FALSE(root->isDirty());
EXPECT_FALSE(root_child0->isDirty());
EXPECT_FALSE(root_child1->isDirty());
EXPECT_FALSE(root_child0_child0->isDirty());
YGConfigFree(newConfig);
YGNodeFreeRecursive(root);
@@ -139,10 +139,10 @@ TEST(YogaTest, dirty_propagation_changing_benign_config) {
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
EXPECT_FALSE(YGNodeIsDirty(root));
EXPECT_FALSE(YGNodeIsDirty(root_child0));
EXPECT_FALSE(YGNodeIsDirty(root_child1));
EXPECT_FALSE(YGNodeIsDirty(root_child0_child0));
EXPECT_FALSE(root->isDirty());
EXPECT_FALSE(root_child0->isDirty());
EXPECT_FALSE(root_child1->isDirty());
EXPECT_FALSE(root_child0_child0->isDirty());
YGConfigRef newConfig = YGConfigNew();
YGConfigSetLogger(
@@ -152,10 +152,10 @@ TEST(YogaTest, dirty_propagation_changing_benign_config) {
});
YGNodeSetConfig(root_child0, newConfig);
EXPECT_FALSE(YGNodeIsDirty(root));
EXPECT_FALSE(YGNodeIsDirty(root_child0));
EXPECT_FALSE(YGNodeIsDirty(root_child1));
EXPECT_FALSE(YGNodeIsDirty(root_child0_child0));
EXPECT_FALSE(root->isDirty());
EXPECT_FALSE(root_child0->isDirty());
EXPECT_FALSE(root_child1->isDirty());
EXPECT_FALSE(root_child0_child0->isDirty());
YGConfigFree(newConfig);
YGNodeFreeRecursive(root);
@@ -224,11 +224,11 @@ TEST(YogaTest, dirty_node_only_if_children_are_actually_removed) {
const YGNodeRef child1 = YGNodeNew();
YGNodeRemoveChild(root, child1);
EXPECT_FALSE(YGNodeIsDirty(root));
EXPECT_FALSE(root->isDirty());
YGNodeFree(child1);
YGNodeRemoveChild(root, child0);
EXPECT_TRUE(YGNodeIsDirty(root));
EXPECT_TRUE(root->isDirty());
YGNodeFree(child0);
YGNodeFreeRecursive(root);
@@ -241,11 +241,12 @@ TEST(YogaTest, dirty_node_only_if_undefined_values_gets_set_to_undefined) {
YGNodeStyleSetMinWidth(root, YGUndefined);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
EXPECT_FALSE(YGNodeIsDirty(root));
EXPECT_FALSE(root->isDirty());
YGNodeStyleSetMinWidth(root, YGUndefined);
EXPECT_FALSE(YGNodeIsDirty(root));
EXPECT_FALSE(root->isDirty());
YGNodeFreeRecursive(root);
}

View File

@@ -6,6 +6,7 @@
*/
#include <gtest/gtest.h>
#include <yoga/YGNode.h>
#include <yoga/Yoga.h>
static YGSize _measureMax(
@@ -14,7 +15,7 @@ static YGSize _measureMax(
YGMeasureMode widthMode,
float height,
YGMeasureMode heightMode) {
int* measureCount = (int*) YGNodeGetContext(node);
int* measureCount = (int*) node->getContext();
(*measureCount)++;
return YGSize{
@@ -29,7 +30,7 @@ static YGSize _measureMin(
YGMeasureMode widthMode,
float height,
YGMeasureMode heightMode) {
int* measureCount = (int*) YGNodeGetContext(node);
int* measureCount = (int*) node->getContext();
*measureCount = *measureCount + 1;
return YGSize{
widthMode == YGMeasureModeUndefined ||
@@ -49,7 +50,7 @@ static YGSize _measure_84_49(
YGMeasureMode /*widthMode*/,
float /*height*/,
YGMeasureMode /*heightMode*/) {
int* measureCount = (int*) YGNodeGetContext(node);
int* measureCount = (int*) node->getContext();
if (measureCount) {
(*measureCount)++;
}
@@ -66,8 +67,8 @@ TEST(YogaTest, measure_once_single_flexible_child) {
const YGNodeRef root_child0 = YGNodeNew();
int measureCount = 0;
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measureMax);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measureMax);
YGNodeStyleSetFlexGrow(root_child0, 1);
YGNodeInsertChild(root, root_child0, 0);
@@ -83,8 +84,8 @@ TEST(YogaTest, remeasure_with_same_exact_width_larger_than_needed_height) {
const YGNodeRef root_child0 = YGNodeNew();
int measureCount = 0;
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measureMin);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measureMin);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, 100, 100, YGDirectionLTR);
@@ -101,8 +102,8 @@ TEST(YogaTest, remeasure_with_same_atmost_width_larger_than_needed_height) {
const YGNodeRef root_child0 = YGNodeNew();
int measureCount = 0;
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measureMin);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measureMin);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, 100, 100, YGDirectionLTR);
@@ -119,8 +120,8 @@ TEST(YogaTest, remeasure_with_computed_width_larger_than_needed_height) {
const YGNodeRef root_child0 = YGNodeNew();
int measureCount = 0;
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measureMin);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measureMin);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, 100, 100, YGDirectionLTR);
@@ -138,8 +139,8 @@ TEST(YogaTest, remeasure_with_atmost_computed_width_undefined_height) {
const YGNodeRef root_child0 = YGNodeNew();
int measureCount = 0;
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measureMin);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measureMin);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, 100, YGUndefined, YGDirectionLTR);
@@ -166,8 +167,8 @@ TEST(
YGNodeInsertChild(root, root_child0, 0);
const YGNodeRef root_child0_child0 = YGNodeNew();
YGNodeSetContext(root_child0_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0_child0, _measure_84_49);
root_child0_child0->setContext(&measureCount);
root_child0_child0->setMeasureFunc(_measure_84_49);
YGNodeInsertChild(root_child0, root_child0_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);

View File

@@ -6,6 +6,7 @@
*/
#include <gtest/gtest.h>
#include <yoga/YGNode.h>
#include <yoga/Yoga.h>
struct _MeasureConstraint {
@@ -27,7 +28,7 @@ static YGSize _measure(
float height,
YGMeasureMode heightMode) {
struct _MeasureConstraintList* constraintList =
(struct _MeasureConstraintList*) YGNodeGetContext(node);
(struct _MeasureConstraintList*) node->getContext();
struct _MeasureConstraint* constraints = constraintList->constraints;
uint32_t currentIndex = constraintList->length;
(&constraints[currentIndex])->width = width;
@@ -54,8 +55,10 @@ TEST(YogaTest, exactly_measure_stretched_child_column) {
YGNodeStyleSetHeight(root, 100);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
// root_child0->setContext(&constraintList);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
// root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -82,8 +85,9 @@ TEST(YogaTest, exactly_measure_stretched_child_row) {
YGNodeStyleSetHeight(root, 100);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
// root_child0->setContext(&constraintList);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -109,8 +113,8 @@ TEST(YogaTest, at_most_main_axis_column) {
YGNodeStyleSetHeight(root, 100);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -137,8 +141,8 @@ TEST(YogaTest, at_most_cross_axis_column) {
YGNodeStyleSetHeight(root, 100);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -165,8 +169,8 @@ TEST(YogaTest, at_most_main_axis_row) {
YGNodeStyleSetHeight(root, 100);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -194,8 +198,8 @@ TEST(YogaTest, at_most_cross_axis_row) {
YGNodeStyleSetHeight(root, 100);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -221,8 +225,8 @@ TEST(YogaTest, flex_child) {
const YGNodeRef root_child0 = YGNodeNew();
YGNodeStyleSetFlexGrow(root_child0, 1);
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -252,8 +256,8 @@ TEST(YogaTest, flex_child_with_flex_basis) {
const YGNodeRef root_child0 = YGNodeNew();
YGNodeStyleSetFlexGrow(root_child0, 1);
YGNodeStyleSetFlexBasis(root_child0, 0);
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -281,8 +285,8 @@ TEST(YogaTest, overflow_scroll_column) {
YGNodeStyleSetWidth(root, 100);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -314,8 +318,8 @@ TEST(YogaTest, overflow_scroll_row) {
YGNodeStyleSetWidth(root, 100);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &constraintList);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&constraintList);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);

View File

@@ -6,6 +6,7 @@
*/
#include <gtest/gtest.h>
#include <yoga/YGNode.h>
#include <yoga/Yoga.h>
static YGSize _measure(
@@ -14,7 +15,7 @@ static YGSize _measure(
YGMeasureMode /*widthMode*/,
float /*height*/,
YGMeasureMode /*heightMode*/) {
int* measureCount = (int*) YGNodeGetContext(node);
int* measureCount = (int*) node->getContext();
if (measureCount) {
(*measureCount)++;
}
@@ -55,8 +56,8 @@ TEST(YogaTest, dont_measure_single_grow_shrink_child) {
int measureCount = 0;
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measure);
YGNodeStyleSetFlexGrow(root_child0, 1);
YGNodeStyleSetFlexShrink(root_child0, 1);
YGNodeInsertChild(root, root_child0, 0);
@@ -78,8 +79,8 @@ TEST(YogaTest, measure_absolute_child_with_no_constraints) {
const YGNodeRef root_child0_child0 = YGNodeNew();
YGNodeStyleSetPositionType(root_child0_child0, YGPositionTypeAbsolute);
YGNodeSetContext(root_child0_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0_child0, _measure);
root_child0_child0->setContext(&measureCount);
root_child0_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root_child0, root_child0_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -98,8 +99,8 @@ TEST(YogaTest, dont_measure_when_min_equals_max) {
int measureCount = 0;
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measure);
YGNodeStyleSetMinWidth(root_child0, 10);
YGNodeStyleSetMaxWidth(root_child0, 10);
YGNodeStyleSetMinHeight(root_child0, 10);
@@ -126,8 +127,8 @@ TEST(YogaTest, dont_measure_when_min_equals_max_percentages) {
int measureCount = 0;
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measure);
YGNodeStyleSetMinWidthPercent(root_child0, 10);
YGNodeStyleSetMaxWidthPercent(root_child0, 10);
YGNodeStyleSetMinHeightPercent(root_child0, 10);
@@ -151,7 +152,7 @@ TEST(YogaTest, measure_nodes_with_margin_auto_and_stretch) {
YGNodeStyleSetHeight(root, 500);
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setMeasureFunc(_measure);
YGNodeStyleSetMarginAuto(root_child0, YGEdgeLeft);
YGNodeInsertChild(root, root_child0, 0);
@@ -174,8 +175,8 @@ TEST(YogaTest, dont_measure_when_min_equals_max_mixed_width_percent) {
int measureCount = 0;
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measure);
YGNodeStyleSetMinWidthPercent(root_child0, 10);
YGNodeStyleSetMaxWidthPercent(root_child0, 10);
YGNodeStyleSetMinHeight(root_child0, 10);
@@ -202,8 +203,8 @@ TEST(YogaTest, dont_measure_when_min_equals_max_mixed_height_percent) {
int measureCount = 0;
const YGNodeRef root_child0 = YGNodeNew();
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measure);
YGNodeStyleSetMinWidth(root_child0, 10);
YGNodeStyleSetMaxWidth(root_child0, 10);
YGNodeStyleSetMinHeightPercent(root_child0, 10);
@@ -227,7 +228,7 @@ TEST(YogaTest, measure_enough_size_should_be_in_single_line) {
const YGNodeRef root_child0 = YGNodeNew();
YGNodeStyleSetAlignSelf(root_child0, YGAlignFlexStart);
YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
root_child0->setMeasureFunc(_simulate_wrapping_text);
YGNodeInsertChild(root, root_child0, 0);
@@ -246,7 +247,7 @@ TEST(YogaTest, measure_not_enough_size_should_wrap) {
const YGNodeRef root_child0 = YGNodeNew();
YGNodeStyleSetAlignSelf(root_child0, YGAlignFlexStart);
// YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
root_child0->setMeasureFunc(_simulate_wrapping_text);
YGNodeInsertChild(root, root_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -268,8 +269,8 @@ TEST(YogaTest, measure_zero_space_should_grow) {
const YGNodeRef root_child0 = YGNodeNew();
YGNodeStyleSetFlexDirection(root_child0, YGFlexDirectionColumn);
YGNodeStyleSetPadding(root_child0, YGEdgeAll, 100);
YGNodeSetContext(root_child0, &measureCount);
YGNodeSetMeasureFunc(root_child0, _measure);
root_child0->setContext(&measureCount);
root_child0->setMeasureFunc(_measure);
YGNodeInsertChild(root, root_child0, 0);
@@ -294,7 +295,8 @@ TEST(YogaTest, measure_flex_direction_row_and_padding) {
YGNodeStyleSetHeight(root, 50);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
root_child0->setMeasureFunc(_simulate_wrapping_text);
// YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
YGNodeInsertChild(root, root_child0, 0);
const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
@@ -333,7 +335,7 @@ TEST(YogaTest, measure_flex_direction_column_and_padding) {
YGNodeStyleSetHeight(root, 50);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
root_child0->setMeasureFunc(_simulate_wrapping_text);
// YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
YGNodeInsertChild(root, root_child0, 0);
@@ -374,7 +376,7 @@ TEST(YogaTest, measure_flex_direction_row_no_padding) {
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
// YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
root_child0->setMeasureFunc(_simulate_wrapping_text);
YGNodeInsertChild(root, root_child0, 0);
const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
@@ -414,7 +416,7 @@ TEST(YogaTest, measure_flex_direction_row_no_padding_align_items_flexstart) {
YGNodeStyleSetAlignItems(root, YGAlignFlexStart);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
root_child0->setMeasureFunc(_simulate_wrapping_text);
YGNodeInsertChild(root, root_child0, 0);
const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
@@ -453,7 +455,7 @@ TEST(YogaTest, measure_with_fixed_size) {
YGNodeStyleSetHeight(root, 50);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
root_child0->setMeasureFunc(_simulate_wrapping_text);
YGNodeStyleSetWidth(root_child0, 10);
YGNodeStyleSetHeight(root_child0, 10);
YGNodeInsertChild(root, root_child0, 0);
@@ -494,7 +496,7 @@ TEST(YogaTest, measure_with_flex_shrink) {
YGNodeStyleSetHeight(root, 50);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
root_child0->setMeasureFunc(_simulate_wrapping_text);
YGNodeStyleSetFlexShrink(root_child0, 1);
YGNodeInsertChild(root, root_child0, 0);
@@ -533,7 +535,7 @@ TEST(YogaTest, measure_no_padding) {
YGNodeStyleSetHeight(root, 50);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _simulate_wrapping_text);
root_child0->setMeasureFunc(_simulate_wrapping_text);
YGNodeStyleSetFlexShrink(root_child0, 1);
YGNodeInsertChild(root, root_child0, 0);
@@ -566,7 +568,7 @@ TEST(YogaTest, measure_no_padding) {
#if GTEST_HAS_DEATH_TEST
TEST(YogaDeathTest, cannot_add_child_to_node_with_measure_func) {
const YGNodeRef root = YGNodeNew();
YGNodeSetMeasureFunc(root, _measure);
root->setMeasureFunc(_measure);
const YGNodeRef root_child0 = YGNodeNew();
#if defined(__cpp_exceptions)
@@ -583,10 +585,9 @@ TEST(YogaDeathTest, cannot_add_nonnull_measure_func_to_non_leaf_node) {
const YGNodeRef root_child0 = YGNodeNew();
YGNodeInsertChild(root, root_child0, 0);
#if defined(__cpp_exceptions)
ASSERT_THROW(YGNodeSetMeasureFunc(root, _measure), std::logic_error);
ASSERT_THROW(root->setMeasureFunc(_measure), std::logic_error);
#else // !defined(__cpp_exceptions)
ASSERT_DEATH(
YGNodeSetMeasureFunc(root, _measure), "Cannot set measure function.*");
ASSERT_DEATH(root->setMeasureFunc(_measure), "Cannot set measure function.*");
#endif // defined(__cpp_exceptions)
YGNodeFreeRecursive(root);
}
@@ -596,8 +597,8 @@ TEST(YogaDeathTest, cannot_add_nonnull_measure_func_to_non_leaf_node) {
TEST(YogaTest, can_nullify_measure_func_on_any_node) {
const YGNodeRef root = YGNodeNew();
YGNodeInsertChild(root, YGNodeNew(), 0);
YGNodeSetMeasureFunc(root, nullptr);
ASSERT_TRUE(!YGNodeHasMeasureFunc(root));
root->setMeasureFunc(nullptr);
ASSERT_TRUE(!root->hasMeasureFunc());
YGNodeFreeRecursive(root);
}
@@ -610,7 +611,7 @@ TEST(YogaTest, cant_call_negative_measure) {
YGNodeStyleSetHeight(root, 10);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _measure_assert_negative);
root_child0->setMeasureFunc(_measure_assert_negative);
YGNodeStyleSetMargin(root_child0, YGEdgeTop, 20);
YGNodeInsertChild(root, root_child0, 0);
@@ -629,7 +630,7 @@ TEST(YogaTest, cant_call_negative_measure_horizontal) {
YGNodeStyleSetHeight(root, 20);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _measure_assert_negative);
root_child0->setMeasureFunc(_measure_assert_negative);
YGNodeStyleSetMargin(root_child0, YGEdgeStart, 20);
YGNodeInsertChild(root, root_child0, 0);
@@ -673,7 +674,7 @@ TEST(YogaTest, percent_with_text_node) {
YGNodeInsertChild(root, root_child0, 0);
const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child1, _measure_90_10);
root_child1->setMeasureFunc(_measure_90_10);
YGNodeStyleSetMaxWidthPercent(root_child1, 50);
YGNodeStyleSetPaddingPercent(root_child1, YGEdgeTop, 50);
YGNodeInsertChild(root, root_child1, 1);
@@ -712,28 +713,28 @@ TEST(YogaTest, percent_margin_with_measure_func) {
YGNodeStyleSetWidth(root_child0, 100);
YGNodeStyleSetHeight(root_child0, 100);
YGNodeStyleSetMargin(root_child0, YGEdgeTop, 0);
YGNodeSetMeasureFunc(root_child0, _measure_100_100);
root_child0->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child0, 0);
const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
YGNodeStyleSetWidth(root_child1, 100);
YGNodeStyleSetHeight(root_child1, 100);
YGNodeStyleSetMargin(root_child1, YGEdgeTop, 100);
YGNodeSetMeasureFunc(root_child1, _measure_100_100);
root_child1->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child1, 1);
const YGNodeRef root_child2 = YGNodeNewWithConfig(config);
YGNodeStyleSetWidth(root_child2, 100);
YGNodeStyleSetHeight(root_child2, 100);
YGNodeStyleSetMarginPercent(root_child2, YGEdgeTop, 10);
YGNodeSetMeasureFunc(root_child2, _measure_100_100);
root_child2->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child2, 2);
const YGNodeRef root_child3 = YGNodeNewWithConfig(config);
YGNodeStyleSetWidth(root_child3, 100);
YGNodeStyleSetHeight(root_child3, 100);
YGNodeStyleSetMarginPercent(root_child3, YGEdgeTop, 20);
YGNodeSetMeasureFunc(root_child3, _measure_100_100);
root_child3->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child3, 3);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -782,24 +783,24 @@ TEST(YogaTest, percent_padding_with_measure_func) {
YGNodeStyleSetWidth(root_child0, 100);
YGNodeStyleSetHeight(root_child0, 100);
YGNodeStyleSetPadding(root_child0, YGEdgeTop, 0);
YGNodeSetMeasureFunc(root_child0, _measure_100_100);
root_child0->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child0, 0);
const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
YGNodeStyleSetWidth(root_child1, 100);
YGNodeStyleSetHeight(root_child1, 100);
YGNodeStyleSetPadding(root_child1, YGEdgeTop, 100);
YGNodeSetMeasureFunc(root_child1, _measure_100_100);
root_child1->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child1, 1);
const YGNodeRef root_child2 = YGNodeNewWithConfig(config);
YGNodeStyleSetPaddingPercent(root_child2, YGEdgeTop, 10);
YGNodeSetMeasureFunc(root_child2, _measure_100_100);
root_child2->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child2, 2);
const YGNodeRef root_child3 = YGNodeNewWithConfig(config);
YGNodeStyleSetPaddingPercent(root_child3, YGEdgeTop, 20);
YGNodeSetMeasureFunc(root_child3, _measure_100_100);
root_child3->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child3, 3);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
@@ -848,26 +849,26 @@ TEST(YogaTest, percent_padding_and_percent_margin_with_measure_func) {
YGNodeStyleSetWidth(root_child0, 100);
YGNodeStyleSetHeight(root_child0, 100);
YGNodeStyleSetPadding(root_child0, YGEdgeTop, 0);
YGNodeSetMeasureFunc(root_child0, _measure_100_100);
root_child0->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child0, 0);
const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
YGNodeStyleSetWidth(root_child1, 100);
YGNodeStyleSetHeight(root_child1, 100);
YGNodeStyleSetPadding(root_child1, YGEdgeTop, 100);
YGNodeSetMeasureFunc(root_child1, _measure_100_100);
root_child1->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child1, 1);
const YGNodeRef root_child2 = YGNodeNewWithConfig(config);
YGNodeStyleSetPaddingPercent(root_child2, YGEdgeTop, 10);
YGNodeStyleSetMarginPercent(root_child2, YGEdgeTop, 10);
YGNodeSetMeasureFunc(root_child2, _measure_100_100);
root_child2->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child2, 2);
const YGNodeRef root_child3 = YGNodeNewWithConfig(config);
YGNodeStyleSetPaddingPercent(root_child3, YGEdgeTop, 20);
YGNodeStyleSetMarginPercent(root_child3, YGEdgeTop, 20);
YGNodeSetMeasureFunc(root_child3, _measure_100_100);
root_child3->setMeasureFunc(_measure_100_100);
YGNodeInsertChild(root, root_child3, 3);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);

View File

@@ -6,33 +6,33 @@
*/
#include <gtest/gtest.h>
#include <yoga/node/Node.h>
#include <yoga/YGNode.h>
#include <ostream>
using namespace facebook::yoga;
inline bool operator==(const YGSize& lhs, const YGSize& rhs) {
return lhs.width == rhs.width && lhs.height == rhs.height;
}
TEST(Node, hasMeasureFunc_initial) {
auto n = Node{};
void PrintTo(const YGSize&, std::ostream*);
TEST(YGNode, hasMeasureFunc_initial) {
auto n = YGNode{};
ASSERT_FALSE(n.hasMeasureFunc());
}
TEST(Node, hasMeasureFunc_with_measure_fn) {
auto n = Node{};
n.setMeasureFunc([](YGNodeRef, float, YGMeasureMode, float, YGMeasureMode) {
TEST(YGNode, hasMeasureFunc_with_measure_fn) {
auto n = YGNode{};
n.setMeasureFunc([](YGNode*, float, YGMeasureMode, float, YGMeasureMode) {
return YGSize{};
});
ASSERT_TRUE(n.hasMeasureFunc());
}
TEST(Node, measure_with_measure_fn) {
auto n = Node{};
TEST(YGNode, measure_with_measure_fn) {
auto n = YGNode{};
n.setMeasureFunc(
[](YGNodeRef, float w, YGMeasureMode wm, float h, YGMeasureMode hm) {
[](YGNode*, float w, YGMeasureMode wm, float h, YGMeasureMode hm) {
return YGSize{w * static_cast<int>(wm), h / static_cast<int>(hm)};
});
@@ -41,10 +41,10 @@ TEST(Node, measure_with_measure_fn) {
(YGSize{23, 12}));
}
TEST(Node, measure_with_context_measure_fn) {
auto n = Node{};
TEST(YGNode, measure_with_context_measure_fn) {
auto n = YGNode{};
n.setMeasureFunc(
[](YGNodeRef, float, YGMeasureMode, float, YGMeasureMode, void* ctx) {
[](YGNode*, float, YGMeasureMode, float, YGMeasureMode, void* ctx) {
return *(YGSize*) ctx;
});
@@ -54,14 +54,14 @@ TEST(Node, measure_with_context_measure_fn) {
result);
}
TEST(Node, switching_measure_fn_types) {
auto n = Node{};
TEST(YGNode, switching_measure_fn_types) {
auto n = YGNode{};
n.setMeasureFunc(
[](YGNodeRef, float, YGMeasureMode, float, YGMeasureMode, void*) {
[](YGNode*, float, YGMeasureMode, float, YGMeasureMode, void*) {
return YGSize{};
});
n.setMeasureFunc(
[](YGNodeRef, float w, YGMeasureMode wm, float h, YGMeasureMode hm) {
[](YGNode*, float w, YGMeasureMode wm, float h, YGMeasureMode hm) {
return YGSize{w * static_cast<int>(wm), h / static_cast<int>(hm)};
});
@@ -70,9 +70,9 @@ TEST(Node, switching_measure_fn_types) {
(YGSize{23, 12}));
}
TEST(Node, hasMeasureFunc_after_unset) {
auto n = Node{};
n.setMeasureFunc([](YGNodeRef, float, YGMeasureMode, float, YGMeasureMode) {
TEST(YGNode, hasMeasureFunc_after_unset) {
auto n = YGNode{};
n.setMeasureFunc([](YGNode*, float, YGMeasureMode, float, YGMeasureMode) {
return YGSize{};
});
@@ -80,10 +80,10 @@ TEST(Node, hasMeasureFunc_after_unset) {
ASSERT_FALSE(n.hasMeasureFunc());
}
TEST(Node, hasMeasureFunc_after_unset_context) {
auto n = Node{};
TEST(YGNode, hasMeasureFunc_after_unset_context) {
auto n = YGNode{};
n.setMeasureFunc(
[](YGNodeRef, float, YGMeasureMode, float, YGMeasureMode, void*) {
[](YGNode*, float, YGMeasureMode, float, YGMeasureMode, void*) {
return YGSize{};
});
@@ -91,27 +91,27 @@ TEST(Node, hasMeasureFunc_after_unset_context) {
ASSERT_FALSE(n.hasMeasureFunc());
}
TEST(Node, hasBaselineFunc_initial) {
auto n = Node{};
TEST(YGNode, hasBaselineFunc_initial) {
auto n = YGNode{};
ASSERT_FALSE(n.hasBaselineFunc());
}
TEST(Node, hasBaselineFunc_with_baseline_fn) {
auto n = Node{};
n.setBaselineFunc([](YGNodeRef, float, float) { return 0.0f; });
TEST(YGNode, hasBaselineFunc_with_baseline_fn) {
auto n = YGNode{};
n.setBaselineFunc([](YGNode*, float, float) { return 0.0f; });
ASSERT_TRUE(n.hasBaselineFunc());
}
TEST(Node, baseline_with_baseline_fn) {
auto n = Node{};
n.setBaselineFunc([](YGNodeRef, float w, float h) { return w + h; });
TEST(YGNode, baseline_with_baseline_fn) {
auto n = YGNode{};
n.setBaselineFunc([](YGNode*, float w, float h) { return w + h; });
ASSERT_EQ(n.baseline(1.25f, 2.5f, nullptr), 3.75f);
}
TEST(Node, baseline_with_context_baseline_fn) {
auto n = Node{};
n.setBaselineFunc([](YGNodeRef, float w, float h, void* ctx) {
TEST(YGNode, baseline_with_context_baseline_fn) {
auto n = YGNode{};
n.setBaselineFunc([](YGNode*, float w, float h, void* ctx) {
return w + h + *(float*) ctx;
});
@@ -119,25 +119,29 @@ TEST(Node, baseline_with_context_baseline_fn) {
ASSERT_EQ(n.baseline(1.25f, 2.5f, &ctx), -6.25f);
}
TEST(Node, hasBaselineFunc_after_unset) {
auto n = Node{};
n.setBaselineFunc([](YGNodeRef, float, float) { return 0.0f; });
TEST(YGNode, hasBaselineFunc_after_unset) {
auto n = YGNode{};
n.setBaselineFunc([](YGNode*, float, float) { return 0.0f; });
n.setBaselineFunc(nullptr);
ASSERT_FALSE(n.hasBaselineFunc());
}
TEST(Node, hasBaselineFunc_after_unset_context) {
auto n = Node{};
n.setBaselineFunc([](YGNodeRef, float, float, void*) { return 0.0f; });
TEST(YGNode, hasBaselineFunc_after_unset_context) {
auto n = YGNode{};
n.setBaselineFunc([](YGNode*, float, float, void*) { return 0.0f; });
n.setMeasureFunc(nullptr);
ASSERT_FALSE(n.hasMeasureFunc());
}
TEST(Node, switching_baseline_fn_types) {
auto n = Node{};
n.setBaselineFunc([](YGNodeRef, float, float, void*) { return 0.0f; });
n.setBaselineFunc([](YGNodeRef, float, float) { return 1.0f; });
TEST(YGNode, switching_baseline_fn_types) {
auto n = YGNode{};
n.setBaselineFunc([](YGNode*, float, float, void*) { return 0.0f; });
n.setBaselineFunc([](YGNode*, float, float) { return 1.0f; });
ASSERT_EQ(n.baseline(1, 2, nullptr), 1.0f);
}
void PrintTo(const YGSize& size, std::ostream* os) {
*os << "YGSize{" << size.width << ", " << size.height << "}";
}

View File

@@ -7,11 +7,10 @@
#include <gtest/gtest.h>
#include <yoga/Yoga.h>
#include <yoga/node/Node.h>
#include <yoga/YGNode.h>
#include "util/TestUtil.h"
using namespace facebook;
using facebook::yoga::test::TestUtil;
TEST(YogaTest, cloning_shared_root) {
@@ -274,10 +273,9 @@ TEST(YogaTest, mixed_shared_and_owned_children) {
YGNodeInsertChild(root1, root1_child0, 0);
YGNodeInsertChild(root1, root1_child2, 1);
auto children = static_cast<yoga::Node*>(root1)->getChildren();
children.insert(children.begin() + 1, static_cast<yoga::Node*>(root0_child0));
static_cast<yoga::Node*>(root1)->setChildren(children);
auto children = root1->getChildren();
children.insert(children.begin() + 1, root0_child0);
root1->setChildren(children);
auto secondChild = YGNodeGetChild(root1, 1);
ASSERT_EQ(secondChild, YGNodeGetChild(root0, 0));
ASSERT_EQ(YGNodeGetChild(secondChild, 0), YGNodeGetChild(root0_child0, 0));

View File

@@ -6,6 +6,7 @@
*/
#include <gtest/gtest.h>
#include <yoga/YGNode.h>
#include <yoga/Yoga.h>
static YGSize _measureFloor(
@@ -49,7 +50,7 @@ TEST(YogaTest, rounding_feature_with_custom_measure_func_floor) {
const YGNodeRef root = YGNodeNewWithConfig(config);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _measureFloor);
root_child0->setMeasureFunc(_measureFloor);
YGNodeInsertChild(root, root_child0, 0);
YGConfigSetPointScaleFactor(config, 0.0f);
@@ -97,7 +98,7 @@ TEST(YogaTest, rounding_feature_with_custom_measure_func_ceil) {
const YGNodeRef root = YGNodeNewWithConfig(config);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeSetMeasureFunc(root_child0, _measureCeil);
root_child0->setMeasureFunc(_measureCeil);
YGNodeInsertChild(root, root_child0, 0);
YGConfigSetPointScaleFactor(config, 1.0f);
@@ -120,7 +121,7 @@ TEST(
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeStyleSetPosition(root_child0, YGEdgeLeft, 73.625);
YGNodeSetMeasureFunc(root_child0, _measureFractial);
root_child0->setMeasureFunc(_measureFractial);
YGNodeInsertChild(root, root_child0, 0);
YGConfigSetPointScaleFactor(config, 2.0f);

View File

@@ -6,15 +6,16 @@
*/
#include <gtest/gtest.h>
#include <yoga/Yoga.h>
#include <yoga/YGNode.h>
#include <iostream>
TEST(YogaTest, copy_style_same) {
const YGNodeRef node0 = YGNodeNew();
const YGNodeRef node1 = YGNodeNew();
ASSERT_FALSE(YGNodeIsDirty(node0));
ASSERT_FALSE(node0->isDirty());
YGNodeCopyStyle(node0, node1);
ASSERT_FALSE(YGNodeIsDirty(node0));
ASSERT_FALSE(node0->isDirty());
YGNodeFree(node0);
YGNodeFree(node1);
@@ -22,7 +23,7 @@ TEST(YogaTest, copy_style_same) {
TEST(YogaTest, copy_style_modified) {
const YGNodeRef node0 = YGNodeNew();
ASSERT_FALSE(YGNodeIsDirty(node0));
ASSERT_FALSE(node0->isDirty());
ASSERT_EQ(YGFlexDirectionColumn, YGNodeStyleGetFlexDirection(node0));
ASSERT_FALSE(YGNodeStyleGetMaxHeight(node0).unit != YGUnitUndefined);
@@ -31,7 +32,7 @@ TEST(YogaTest, copy_style_modified) {
YGNodeStyleSetMaxHeight(node1, 10);
YGNodeCopyStyle(node0, node1);
ASSERT_TRUE(YGNodeIsDirty(node0));
ASSERT_TRUE(node0->isDirty());
ASSERT_EQ(YGFlexDirectionRow, YGNodeStyleGetFlexDirection(node0));
ASSERT_FLOAT_EQ(10, YGNodeStyleGetMaxHeight(node0).value);
@@ -44,14 +45,14 @@ TEST(YogaTest, copy_style_modified_same) {
YGNodeStyleSetFlexDirection(node0, YGFlexDirectionRow);
YGNodeStyleSetMaxHeight(node0, 10);
YGNodeCalculateLayout(node0, YGUndefined, YGUndefined, YGDirectionLTR);
ASSERT_FALSE(YGNodeIsDirty(node0));
ASSERT_FALSE(node0->isDirty());
const YGNodeRef node1 = YGNodeNew();
YGNodeStyleSetFlexDirection(node1, YGFlexDirectionRow);
YGNodeStyleSetMaxHeight(node1, 10);
YGNodeCopyStyle(node0, node1);
ASSERT_FALSE(YGNodeIsDirty(node0));
ASSERT_FALSE(node0->isDirty());
YGNodeFree(node0);
YGNodeFree(node1);

View File

@@ -10,7 +10,7 @@
#include <gtest/gtest.h>
#include <yoga/Yoga.h>
#include <yoga/config/Config.h>
#include <yoga/node/Node.h>
#include <yoga/YGNode.h>
#include <functional>
#include <memory>
@@ -22,7 +22,7 @@ struct ConfigCloningTest : public ::testing::Test {
void SetUp() override;
void TearDown() override;
static yoga::Node clonedNode;
static YGNode clonedNode;
static YGNodeRef cloneNode(YGNodeRef, YGNodeRef, int) { return &clonedNode; }
static YGNodeRef doNotClone(YGNodeRef, YGNodeRef, int) { return nullptr; }
};
@@ -30,7 +30,7 @@ struct ConfigCloningTest : public ::testing::Test {
TEST_F(ConfigCloningTest, uses_values_provided_by_cloning_callback) {
config->setCloneNodeCallback(cloneNode);
yoga::Node node{}, owner{};
YGNode node{}, owner{};
auto clone = config->cloneNode(&node, &owner, 0, nullptr);
ASSERT_EQ(clone, &clonedNode);
@@ -41,7 +41,7 @@ TEST_F(
falls_back_to_regular_cloning_if_callback_returns_null) {
config->setCloneNodeCallback(doNotClone);
yoga::Node node{}, owner{};
YGNode node{}, owner{};
auto clone = config->cloneNode(&node, &owner, 0, nullptr);
ASSERT_NE(clone, nullptr);
@@ -53,7 +53,7 @@ TEST_F(ConfigCloningTest, can_clone_with_context) {
return (YGNodeRef) context;
});
yoga::Node node{}, owner{}, clone{};
YGNode node{}, owner{}, clone{};
ASSERT_EQ(config->cloneNode(&node, &owner, 0, &clone), &clone);
}
@@ -65,4 +65,4 @@ void ConfigCloningTest::TearDown() {
config.reset();
}
yoga::Node ConfigCloningTest::clonedNode = {};
YGNode ConfigCloningTest::clonedNode = {};

View File

@@ -7,7 +7,7 @@
#include "TestUtil.h"
#include <yoga/node/Node.h>
#include <yoga/YGNode.h>
#include <yoga/event/event.h>
namespace facebook::yoga::test {
@@ -17,7 +17,7 @@ int nodeInstanceCount = 0;
namespace {
void yogaEventSubscriber(
YGNodeConstRef /*node*/,
const YGNode& /*node*/,
Event::Type eventType,
const Event::Data& /*eventData*/) {