mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-04-16 00:42:51 +08:00
Updating test and Ratio calculation
This commit is contained in:
parent
fc0b553a4a
commit
20a2f727f7
@ -9,7 +9,17 @@ internal static class Ratio
|
|||||||
{
|
{
|
||||||
static (int Div, float Mod) DivMod(float x, float y)
|
static (int Div, float Mod) DivMod(float x, float y)
|
||||||
{
|
{
|
||||||
return ((int)(x / y), x % y);
|
var (div, mod) = ((int)(x / y), x % y);
|
||||||
|
|
||||||
|
// If remainder is withing .0001 of 1 then we round up
|
||||||
|
if (!(mod > 0.9999))
|
||||||
|
{
|
||||||
|
return (div, mod);
|
||||||
|
}
|
||||||
|
|
||||||
|
div++;
|
||||||
|
mod = 0;
|
||||||
|
return (div, mod);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int? GetEdgeWidth(IRatioResolvable edge)
|
static int? GetEdgeWidth(IRatioResolvable edge)
|
||||||
@ -46,7 +56,8 @@ internal static class Ratio
|
|||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
var portion = (float)remaining / flexibleEdges.Sum(x => Math.Max(1, x.Edge.Ratio));
|
var r = flexibleEdges.Sum(x => Math.Max(1, x.Edge.Ratio));
|
||||||
|
var portion = (float)remaining / r;
|
||||||
|
|
||||||
var invalidate = false;
|
var invalidate = false;
|
||||||
foreach (var (index, size, edge) in flexibleEdges)
|
foreach (var (index, size, edge) in flexibleEdges)
|
||||||
|
@ -463,8 +463,14 @@ public class Segment
|
|||||||
var result = new List<Segment>();
|
var result = new List<Segment>();
|
||||||
|
|
||||||
var segmentBuilder = (SegmentBuilder?)null;
|
var segmentBuilder = (SegmentBuilder?)null;
|
||||||
|
var c = 0;
|
||||||
foreach (var segment in segments)
|
foreach (var segment in segments)
|
||||||
{
|
{
|
||||||
|
if (c == 163)
|
||||||
|
{
|
||||||
|
System.Console.Write("test");
|
||||||
|
}
|
||||||
|
c++;
|
||||||
if (segmentBuilder == null)
|
if (segmentBuilder == null)
|
||||||
{
|
{
|
||||||
segmentBuilder = new SegmentBuilder(segment);
|
segmentBuilder = new SegmentBuilder(segment);
|
||||||
|
@ -264,4 +264,37 @@ public sealed class LayoutTests
|
|||||||
// Then
|
// Then
|
||||||
return Verifier.Verify(console.Output);
|
return Verifier.Verify(console.Output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[Expectation("Render_Layout_With_Three_And_One_Columns")]
|
||||||
|
public Task Should_Render_Layout_With_Three_And_One_Columns()
|
||||||
|
{
|
||||||
|
// Given
|
||||||
|
var console = new TestConsole().Size(new Size(40, 17));
|
||||||
|
var layout = new Layout();
|
||||||
|
var col1 = new Layout();
|
||||||
|
var col1Row1 = new Layout();
|
||||||
|
var col1Row2 = new Layout();
|
||||||
|
var col1Row3 = new Layout();
|
||||||
|
|
||||||
|
col1.SplitRows(col1Row1, col1Row2, col1Row3);
|
||||||
|
|
||||||
|
var col2 = new Layout();
|
||||||
|
|
||||||
|
layout.SplitColumns(col1, col2);
|
||||||
|
|
||||||
|
var panel = new Panel("Hello, World!") { Expand = true };
|
||||||
|
|
||||||
|
List<Layout> layouts = [col1Row1, col1Row2, col1Row3, col2];
|
||||||
|
foreach (var l in layouts)
|
||||||
|
{
|
||||||
|
l.Update(panel);
|
||||||
|
}
|
||||||
|
|
||||||
|
// When
|
||||||
|
console.Write(layout);
|
||||||
|
|
||||||
|
// Then
|
||||||
|
return Verifier.Verify(console.Output);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user