public void SetUp() { var settings = A.Fake <ICloudSettings>(); center = new Point(100, 100); archimedeanSpiral = new ArchimedeanSpiral(settings); }
public void StartAtCenter() { var startingPoint = new Point(1, 5); var shiftedSpiral = new ArchimedeanSpiral(startingPoint); shiftedSpiral.CurrentPoint.Should().Be(startingPoint); }
public void ReturnCenterPointFirst_WithZeroA(int centerX, int centerY) { var center = new Point(centerX, centerY); var archimedeanSpiral = new ArchimedeanSpiral(center, a: 0); archimedeanSpiral.GetNextPoint().Should().BeEquivalentTo(center); }
public void PutPointsOnStepLengthDistance_AfterFullCircle( double stepLength, double angleShiftForEachPoint, int amountOfFullCircles) { var spiral = new ArchimedeanSpiral(center, stepLength, angleShiftForEachPoint); var firstPoint = spiral.CalculateNextPoint(); var amountOfSubsteps = 2 * Math.PI / angleShiftForEachPoint; amountOfSubsteps *= amountOfFullCircles; Point secondPoint = new Point(); while (amountOfSubsteps-- > 0) { secondPoint = spiral.CalculateNextPoint(); } var expectedSquaredDistance = stepLength * stepLength * amountOfFullCircles * amountOfFullCircles; firstPoint.GetSquaredDistanceTo(secondPoint) .Should().BeApproximately(expectedSquaredDistance, 0.0005, $"two points differed by {amountOfFullCircles}*2PI must be " + $"distanced by {amountOfFullCircles} lengths of spiral step"); }
public void SetUp() { spiral = new ArchimedeanSpiral(new Point(0, 0)); wordsProvider = new CircularWordsProvider(); wordsFilter = new WordsFilter().Normalize(); tagCloudWithCenterInZero = new CircularCloudLayouter(spiral, wordsProvider, wordsFilter); }
private ITagCloud GetDefaultTagCloud() { var spiral = new ArchimedeanSpiral(new Point(0, 0)); var wordsProvider = GetDefaultWordsProvider(); var wordsFilter = GetDefaultWordsFilter(); return(new CircularCloudLayouter(spiral, wordsProvider, wordsFilter)); }
public void SetUp() { Center = new Point(500, 500); const double distanceBetweenLoops = 1; const double angleDelta = 1; Spiral = new ArchimedeanSpiral(Center, distanceBetweenLoops, angleDelta); }
public void ReturnCenter_AsFirstPoint(int x, int y) { var center = new Point(x, y); var spiral = new ArchimedeanSpiral(center, stepLength, angleShiftForEachPoint); spiral.CalculateNextPoint().Should().BeEquivalentTo(center, "first point must be the center of the spiral"); }
public void GetNextPoint_OnEqualSpiralInstance_ShouldBeEqual() { var firstSpiral = new ArchimedeanSpiral(cloudLayouterSettings); var secondSpiral = new ArchimedeanSpiral(cloudLayouterSettings); var firstPoints = Enumerable.Range(0, 50).Select(i => firstSpiral.GetNextPoint()); var secondPoints = Enumerable.Range(0, 50).Select(i => secondSpiral.GetNextPoint()); firstPoints.Should().BeEquivalentTo(secondPoints); }
public CircularCloudLayouter(Point center, ITagsCloudFactory tagsCloudFactory) { Center = center; TagsCloud = tagsCloudFactory.CreateTagsCloud(); const double coefficients = 0.5; const double spiralStep = 0.05; var geometryObject = new ArchimedeanSpiral(center, coefficients, spiralStep); geometryEnumerator = geometryObject.GetEnumerator(); }
public void SetUp() { rectangles = null; config = new PictureConfig { Size = new Size(0, 0) }; var spiral = new ArchimedeanSpiral(config); layouter = new CircularCloudLayouter(spiral, config); }
public void ReturnPointWithGreaterRadius_OnNextStep(int centerX, int centerY, double a, double b, double step) { var center = new Point(centerX, centerY); var archimedeanSpiral = new ArchimedeanSpiral(center, step, a, b); var firstPoint = archimedeanSpiral.GetNextPoint(); var secondPoint = archimedeanSpiral.GetNextPoint(); var firstRadius = GetDistance(center, firstPoint); var secondRadius = GetDistance(center, secondPoint); secondRadius.Should().BeGreaterThan(firstRadius); }
public void GetNextPoint_OnDifferentSpiralInstance_ShouldBeDifferent() { var firstSpiral = new ArchimedeanSpiral(cloudLayouterSettings); var secondSpiral = new ArchimedeanSpiral(new CloudLayouterSettings { StartPoint = new Point(100, 100) }); var firstPoints = Enumerable.Range(0, 50).Select(i => firstSpiral.GetNextPoint()); var secondPoints = Enumerable.Range(0, 50).Select(i => secondSpiral.GetNextPoint()); firstPoints.Should().NotBeEquivalentTo(secondPoints); }
public void SetUp() { var parser = new TextParser(new WordValidator()); var center = new Point(200, 200); var spiral = new ArchimedeanSpiral(center, 0.2, 1.0); spiralType = SpiralType.Archimedean; var factory = new LayouterFactory(new List <ISpiral> { spiral }); container = new TagsCloudContainer.TagsCloudContainer.TagsCloudContainer(parser, factory); }
public void ReturnCorrectPoints_OnNextSteps(int centerX, int centerY, double a, double b, double step, int stepsNumber) { var center = new Point(centerX, centerY); var archimedeanSpiral = new ArchimedeanSpiral(center, step, a, b); for (var i = 0; i < stepsNumber; i++) { var nextPoint = archimedeanSpiral.GetNextPoint(); var pointRadius = GetDistance(center, nextPoint); var pointPhi = step * i; pointRadius.Should().BeApproximately(GetArchimedeanSpiralRadius(a, b, pointPhi), 1); } }
private static ArchimedeanSpiral GetMoveControl(SpiralInvoluteParam moveParam) { foreach (var keyItem in _spiralPool.Keys) { if (SpiralInvoluteParam.IsEquals(keyItem, moveParam)) { return(_spiralPool[keyItem]); } } ArchimedeanSpiral spiral = new ArchimedeanSpiral(moveParam); _spiralPool[moveParam] = spiral; return(spiral); }
public void GetNextPoint_SavesDistance_DuringGeneration() { const int distance = 10; var spiral = new ArchimedeanSpiral(distance, 2 * Math.PI); var points = new List <PointF>(); for (var i = 0; i < 1000; i++) { points.Add(spiral.GetNextPoint()); } for (var i = 1; i < points.Count; i++) { GetSquaredDistance(points[i - 1], points[i]) .Should().Be(distance * distance); } }
protected override void Load(ContainerBuilder builder) { var ulamSpiral = new UlamSpiral(new Point(250, 250)); var archimedeanSpiral = new ArchimedeanSpiral(new Point(250, 250), 0.2, 1.0); var formConfig = new FormConfig(Color.Tan, new Size(600, 600), SpiralType.Archimedean); builder.RegisterInstance(formConfig); builder.RegisterInstance(ulamSpiral).As <ISpiral>(); builder.RegisterInstance(archimedeanSpiral).As <ISpiral>().PreserveExistingDefaults(); builder.RegisterType <LayouterFactory>().As <ILayouterFactory>(); builder.RegisterType <WordValidator>().As <IWordValidator>(); builder.RegisterType <BitmapSaver>().As <IBitmapSaver>(); builder.RegisterType <TextParser>().As <ITextParser>(); builder.RegisterType <CloudLayouter>().As <ILayouter>(); builder.RegisterType <TagsVisualizer>(); builder.RegisterType <TagsCloudContainer.TagsCloudContainer.TagsCloudContainer>().As <ITagsContainer>(); builder.RegisterType <TagsCloudForm>(); }
public void GenerateNextPoint_SavesDelta_DuringGeneration() { const double delta = Math.PI / 3; const double epsilon = Math.PI / 180; var spiral = new ArchimedeanSpiral(delta: delta); var points = new List <PointF>(); for (var i = 0; i < 1000; i++) { points.Add(spiral.GetNextPoint()); } for (var i = 1; i < points.Count; i++) { var previous = GetAngleToPoint(points[i - 1]); var current = GetAngleToPoint(points[i]); CalculateAngleDifference(current, previous) .Should().BeInRange(delta - epsilon, delta + epsilon); } }
public void GetNextPoint_ShouldContainPointsFromSpiral_OnCorrespondingInput(int expectedPointShift) { const int parameter = 2; const float stepInRadians = (float)(Math.PI / 6); var expectedPoint = GeometryUtils.ConvertPolarToIntegerCartesian( parameter * stepInRadians * expectedPointShift, stepInRadians * expectedPointShift); var config = new PictureConfig { Parameters = new LayouterParameters { Parameter = parameter, StepInDegrees = 30 } }; var spiral = new ArchimedeanSpiral(config); for (var i = 0; i < expectedPointShift; i++) { spiral.GetNextPoint(); } var pointFromSpiral = spiral.GetNextPoint(); pointFromSpiral.Should().Be(expectedPoint); }
public void ArchimedeanSpiralCtor_OnAllPoints_DoesNotThrow(int x, int y) { Action callCtor = () => _ = new ArchimedeanSpiral(cloudLayouterSettings); callCtor.Should().NotThrow(); }
public void SetUp() { archimedeanSpiral = new ArchimedeanSpiral(1, 0.05f); }
public void SetUp() { _spiral = new ArchimedeanSpiral(new Point(5, 7)); }
public void SetUp() { spiral = new ArchimedeanSpiral(Point.Empty); }
public void SetUp() { curve = new ArchimedeanSpiral(new Point(0, 0)); }
public void GenerateNextPoint_ReturnsEmptyPoint_AtFirstGeneration(double distance, double delta) { var spiral = new ArchimedeanSpiral(distance, delta); spiral.GetNextPoint().Should().Be(PointF.Empty); }
public CircularCloudLayouter(Point canvasCenter) { _rectangles = new List <Rectangle>(); _canvasCenter = canvasCenter; _spiral = new ArchimedeanSpiral(_canvasCenter); }