123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- using System;
- using Xunit;
- namespace Avalonia.Base.UnitTests
- {
- public class VectorTests
- {
- [Fact]
- public void Length_Should_Return_Correct_Length_Of_Vector()
- {
- var vector = new Vector(2, 4);
- var length = Math.Sqrt(2 * 2 + 4 * 4);
- Assert.Equal(length, vector.Length);
- }
- [Fact]
- public void Length_Squared_Should_Return_Correct_Length_Of_Vector()
- {
- var vectorA = new Vector(2, 4);
- var squaredLengthA = 2 * 2 + 4 * 4;
- Assert.Equal(squaredLengthA, vectorA.SquaredLength);
- }
- [Fact]
- public void Normalize_Should_Return_Normalized_Vector()
- {
- // the length of a normalized vector must be 1
- var vectorA = new Vector(13, 84);
- var vectorB = new Vector(-34, 345);
- var vectorC = new Vector(-34, -84);
- Assert.Equal(1.0, vectorA.Normalize().Length);
- Assert.Equal(1.0, vectorB.Normalize().Length);
- Assert.Equal(1.0, vectorC.Normalize().Length);
- }
- [Fact]
- public void Negate_Should_Return_Negated_Vector()
- {
- var vector = new Vector(2, 4);
- var negated = new Vector(-2, -4);
- Assert.Equal(negated, vector.Negate());
- }
- [Fact]
- public void Dot_Should_Return_Correct_Value()
- {
- var a = new Vector(-6, 8.0);
- var b = new Vector(5, 12.0);
- Assert.Equal(66.0, Vector.Dot(a, b));
- }
- [Fact]
- public void Cross_Should_Return_Correct_Value()
- {
- var a = new Vector(-6, 8.0);
- var b = new Vector(5, 12.0);
- Assert.Equal(-112.0, Vector.Cross(a, b));
- }
- [Fact]
- public void Divied_By_Vector_Should_Return_Correct_Value()
- {
- var a = new Vector(10, 2);
- var b = new Vector(5, 2);
- var expected = new Vector(2, 1);
- Assert.Equal(expected, Vector.Divide(a, b));
- }
- [Fact]
- public void Divied_Should_Return_Correct_Value()
- {
- var vector = new Vector(10, 2);
- var expected = new Vector(5, 1);
- Assert.Equal(expected, Vector.Divide(vector, 2));
- }
- [Fact]
- public void Multiply_By_Vector_Should_Return_Correct_Value()
- {
- var a = new Vector(10, 2);
- var b = new Vector(2, 2);
- var expected = new Vector(20, 4);
- Assert.Equal(expected, Vector.Multiply(a, b));
- }
- [Fact]
- public void Multiply_Should_Return_Correct_Value()
- {
- var vector = new Vector(10, 2);
- var expected = new Vector(20, 4);
- Assert.Equal(expected, Vector.Multiply(vector, 2));
- }
- [Fact]
- public void Scale_Vector_Should_Be_Commutative()
- {
- var vector = new Vector(10, 2);
- var expected = vector * 2;
- Assert.Equal(expected, 2 * vector);
- }
- }
- }
|