fix rounding error when constructing position with negatives
							parent
							
								
									960f4626f9
								
							
						
					
					
						commit
						982de6a910
					
				| 
						 | 
				
			
			@ -38,8 +38,8 @@ namespace MoonTools.Core.Structs
 | 
			
		|||
 | 
			
		||||
        public Position2D(float X, float Y)
 | 
			
		||||
        {
 | 
			
		||||
            _x = Floor(X);
 | 
			
		||||
            _y = Floor(Y);
 | 
			
		||||
            _x = Truncate(X);
 | 
			
		||||
            _y = Truncate(Y);
 | 
			
		||||
            remainder = new Vector2(Remainder(X), Remainder(Y));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -147,6 +147,11 @@ namespace MoonTools.Core.Structs
 | 
			
		|||
            return (int)Math.Floor(value);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static int Truncate(float value)
 | 
			
		||||
        {
 | 
			
		||||
            return (int)Math.Truncate(value);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public override bool Equals(object other)
 | 
			
		||||
        {
 | 
			
		||||
            if (other is Position2D otherPosition)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,17 @@ namespace Tests
 | 
			
		|||
{
 | 
			
		||||
    public class Position2DTest
 | 
			
		||||
    {
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void Negatives()
 | 
			
		||||
        {
 | 
			
		||||
            var position = new Position2D(-3.6f, -4.2f);
 | 
			
		||||
 | 
			
		||||
            position.X.Should().Be(-3);
 | 
			
		||||
            position.Y.Should().Be(-4);
 | 
			
		||||
            position.ToVector2().X.Should().Be(-3.6f);
 | 
			
		||||
            position.ToVector2().Y.Should().Be(-4.2f);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void PositionVectorAddition()
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -99,4 +110,4 @@ namespace Tests
 | 
			
		|||
            (one != two).Should().BeTrue();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue