Files
yoga/tests/util/TestUtil.h
Maddie Lord 1a3bc6bfbc Add test support for intrinsic sized nodes (#1671)
Summary:
Pull Request resolved: https://github.com/facebook/yoga/pull/1671

This diff adds support for intrinsic sizing in generated tests. This is done by importing a testing font called "Ahem" which, as used, has an exact width and height of 10px for each character. Support has been added for C++, Java, and Javascript generated tests.

Reviewed By: NickGerleman

Differential Revision: D58307002

fbshipit-source-id: e1dcc1e03310d35a32e0c70f71994880d8f7de55
2024-06-26 10:00:17 -07:00

44 lines
977 B
C++

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#pragma once
#include <yoga/YGNode.h>
#include <yoga/event/event.h>
#include <functional>
#include <string_view>
namespace facebook::yoga::test {
struct TestUtil {
static void startCountingNodes();
static int nodeCount();
static int stopCountingNodes();
};
struct ScopedEventSubscription {
explicit ScopedEventSubscription(std::function<Event::Subscriber>&&);
~ScopedEventSubscription();
};
YGSize IntrinsicSizeMeasure(
YGNodeConstRef node,
float width,
YGMeasureMode widthMode,
float height,
YGMeasureMode heightMode);
float longestWordWidth(std::string_view text, float widthPerChar);
float calculateHeight(
std::string_view text,
float measuredWidth,
float widthPerChar,
float heightPerChar);
} // namespace facebook::yoga::test