Files
divkit/client/ios/LayoutKit/LayoutKitTests/Blocks/ResizableBlockMeasureTests.swift
denlvovich e001d74afe Update to VGSL6.0
4f8b5f480ade3f347d5f0a2d01a1618069bcb846
2024-07-12 20:33:42 +03:00

48 lines
1.5 KiB
Swift

import XCTest
import LayoutKit
import VGSL
final class ResizableBlockMeasureTests: XCTestCase {
func test_FillsAvailableSpace() {
var blockMeasure = ResizableBlockMeasure(
resizableBlockCount: 11,
lengthAvailablePerWeightUnit: 20.0 / 11,
lengthAvailableForResizableBlocks: 20
)
var totalLength: CGFloat = 0
for _ in 0..<11 {
let blockLength = blockMeasure.measureNext(.resizable(LayoutTrait.Weight(rawValue: 1)!))
XCTAssertTrue(blockLength.isApproximatelyEqualTo(blockLength.flooredToScreenScale))
totalLength += blockLength
}
XCTAssertTrue(totalLength.isApproximatelyEqualTo(20))
}
func test_DistributedEvenly() {
var blockMeasure = ResizableBlockMeasure(
resizableBlockCount: 3,
lengthAvailablePerWeightUnit: 10,
lengthAvailableForResizableBlocks: 1000
)
XCTAssertTrue(
blockMeasure.measureNext(.resizable(LayoutTrait.Weight(rawValue: 10)!))
.isApproximatelyEqualTo(100)
)
XCTAssertTrue(blockMeasure.measureNext(.nonResizable).isApproximatelyEqualTo(0))
XCTAssertTrue(blockMeasure.measureNext(.nonResizable).isApproximatelyEqualTo(0))
XCTAssertTrue(
blockMeasure.measureNext(.resizable(LayoutTrait.Weight(rawValue: 65)!))
.isApproximatelyEqualTo(650)
)
XCTAssertTrue(blockMeasure.measureNext(.nonResizable).isApproximatelyEqualTo(0))
XCTAssertTrue(
blockMeasure.measureNext(.resizable(LayoutTrait.Weight(rawValue: 25)!))
.isApproximatelyEqualTo(250)
)
}
}