@vived/core 1.4.2 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +118 -20
- package/dist/cjs/AppObject/AppObject.js +53 -0
- package/dist/cjs/AppObject/AppObject.js.map +1 -1
- package/dist/cjs/AppObject/AppObjectComponent.js +78 -0
- package/dist/cjs/AppObject/AppObjectComponent.js.map +1 -1
- package/dist/cjs/AppObject/AppObjectController.js +22 -0
- package/dist/cjs/AppObject/AppObjectController.js.map +1 -1
- package/dist/cjs/AppObject/AppObjectEntity.js +52 -0
- package/dist/cjs/AppObject/AppObjectEntity.js.map +1 -1
- package/dist/cjs/AppObject/AppObjectEntityRepo.js +75 -1
- package/dist/cjs/AppObject/AppObjectEntityRepo.js.map +1 -1
- package/dist/cjs/AppObject/AppObjectPM.js +46 -0
- package/dist/cjs/AppObject/AppObjectPM.js.map +1 -1
- package/dist/cjs/AppObject/AppObjectRepo.js +20 -0
- package/dist/cjs/AppObject/AppObjectRepo.js.map +1 -1
- package/dist/cjs/AppObject/AppObjectUC.js +23 -0
- package/dist/cjs/AppObject/AppObjectUC.js.map +1 -1
- package/dist/cjs/AppObject/AppObjectView.js +22 -0
- package/dist/cjs/AppObject/AppObjectView.js.map +1 -1
- package/dist/cjs/AppObject/getSingletonComponent.js +19 -0
- package/dist/cjs/AppObject/getSingletonComponent.js.map +1 -1
- package/dist/cjs/Entities/MemoizedAngle.js +21 -0
- package/dist/cjs/Entities/MemoizedAngle.js.map +1 -1
- package/dist/cjs/Entities/MemoizedBoolean.js +21 -0
- package/dist/cjs/Entities/MemoizedBoolean.js.map +1 -1
- package/dist/cjs/Entities/MemoizedColor.js +21 -0
- package/dist/cjs/Entities/MemoizedColor.js.map +1 -1
- package/dist/cjs/Entities/MemoizedNumber.js +21 -0
- package/dist/cjs/Entities/MemoizedNumber.js.map +1 -1
- package/dist/cjs/Entities/MemoizedQuaternion.js +21 -0
- package/dist/cjs/Entities/MemoizedQuaternion.js.map +1 -1
- package/dist/cjs/Entities/MemoizedString.js +21 -0
- package/dist/cjs/Entities/MemoizedString.js.map +1 -1
- package/dist/cjs/Entities/MemoizedVector2.js +21 -0
- package/dist/cjs/Entities/MemoizedVector2.js.map +1 -1
- package/dist/cjs/Entities/MemoizedVector3.js +21 -0
- package/dist/cjs/Entities/MemoizedVector3.js.map +1 -1
- package/dist/cjs/Entities/ObservableEntity.js +17 -0
- package/dist/cjs/Entities/ObservableEntity.js.map +1 -1
- package/dist/cjs/Entities/ObserverList.js +21 -0
- package/dist/cjs/Entities/ObserverList.js.map +1 -1
- package/dist/cjs/Entities/RangedNumber.js +29 -0
- package/dist/cjs/Entities/RangedNumber.js.map +1 -1
- package/dist/cjs/Types/PmAdapter.js.map +1 -1
- package/dist/cjs/Types/SingletonPmAdapter.js.map +1 -1
- package/dist/cjs/ValueObjects/Angle.js +1 -1
- package/dist/cjs/ValueObjects/Angle.js.map +1 -1
- package/dist/cjs/ValueObjects/LineSegment2D.js +6 -6
- package/dist/cjs/ValueObjects/LineSegment2D.js.map +1 -1
- package/dist/cjs/ValueObjects/Matrix.js +6 -6
- package/dist/cjs/ValueObjects/Matrix.js.map +1 -1
- package/dist/cjs/ValueObjects/Quaternion.js +17 -17
- package/dist/cjs/ValueObjects/Quaternion.js.map +1 -1
- package/dist/cjs/ValueObjects/Vector2.js +15 -8
- package/dist/cjs/ValueObjects/Vector2.js.map +1 -1
- package/dist/esm/AppObject/AppObject.js +53 -0
- package/dist/esm/AppObject/AppObject.js.map +1 -1
- package/dist/esm/AppObject/AppObjectComponent.js +78 -0
- package/dist/esm/AppObject/AppObjectComponent.js.map +1 -1
- package/dist/esm/AppObject/AppObjectController.js +22 -0
- package/dist/esm/AppObject/AppObjectController.js.map +1 -1
- package/dist/esm/AppObject/AppObjectEntity.js +52 -0
- package/dist/esm/AppObject/AppObjectEntity.js.map +1 -1
- package/dist/esm/AppObject/AppObjectEntityRepo.js +75 -1
- package/dist/esm/AppObject/AppObjectEntityRepo.js.map +1 -1
- package/dist/esm/AppObject/AppObjectPM.js +46 -0
- package/dist/esm/AppObject/AppObjectPM.js.map +1 -1
- package/dist/esm/AppObject/AppObjectRepo.js +20 -0
- package/dist/esm/AppObject/AppObjectRepo.js.map +1 -1
- package/dist/esm/AppObject/AppObjectUC.js +24 -1
- package/dist/esm/AppObject/AppObjectUC.js.map +1 -1
- package/dist/esm/AppObject/AppObjectView.js +23 -1
- package/dist/esm/AppObject/AppObjectView.js.map +1 -1
- package/dist/esm/AppObject/getSingletonComponent.js +19 -0
- package/dist/esm/AppObject/getSingletonComponent.js.map +1 -1
- package/dist/esm/Entities/MemoizedAngle.js +21 -0
- package/dist/esm/Entities/MemoizedAngle.js.map +1 -1
- package/dist/esm/Entities/MemoizedBoolean.js +21 -0
- package/dist/esm/Entities/MemoizedBoolean.js.map +1 -1
- package/dist/esm/Entities/MemoizedColor.js +21 -0
- package/dist/esm/Entities/MemoizedColor.js.map +1 -1
- package/dist/esm/Entities/MemoizedNumber.js +21 -0
- package/dist/esm/Entities/MemoizedNumber.js.map +1 -1
- package/dist/esm/Entities/MemoizedQuaternion.js +21 -0
- package/dist/esm/Entities/MemoizedQuaternion.js.map +1 -1
- package/dist/esm/Entities/MemoizedString.js +21 -0
- package/dist/esm/Entities/MemoizedString.js.map +1 -1
- package/dist/esm/Entities/MemoizedVector2.js +21 -0
- package/dist/esm/Entities/MemoizedVector2.js.map +1 -1
- package/dist/esm/Entities/MemoizedVector3.js +21 -0
- package/dist/esm/Entities/MemoizedVector3.js.map +1 -1
- package/dist/esm/Entities/ObservableEntity.js +17 -0
- package/dist/esm/Entities/ObservableEntity.js.map +1 -1
- package/dist/esm/Entities/ObserverList.js +21 -0
- package/dist/esm/Entities/ObserverList.js.map +1 -1
- package/dist/esm/Entities/RangedNumber.js +29 -0
- package/dist/esm/Entities/RangedNumber.js.map +1 -1
- package/dist/esm/Types/PmAdapter.js.map +1 -1
- package/dist/esm/Types/SingletonPmAdapter.js.map +1 -1
- package/dist/esm/ValueObjects/Angle.js +1 -1
- package/dist/esm/ValueObjects/Angle.js.map +1 -1
- package/dist/esm/ValueObjects/LineSegment2D.js +6 -6
- package/dist/esm/ValueObjects/LineSegment2D.js.map +1 -1
- package/dist/esm/ValueObjects/Matrix.js +6 -6
- package/dist/esm/ValueObjects/Matrix.js.map +1 -1
- package/dist/esm/ValueObjects/Quaternion.js +17 -17
- package/dist/esm/ValueObjects/Quaternion.js.map +1 -1
- package/dist/esm/ValueObjects/Vector2.js +15 -8
- package/dist/esm/ValueObjects/Vector2.js.map +1 -1
- package/dist/types/AppObject/AppObject.d.ts +42 -0
- package/dist/types/AppObject/AppObject.d.ts.map +1 -1
- package/dist/types/AppObject/AppObjectComponent.d.ts +80 -0
- package/dist/types/AppObject/AppObjectComponent.d.ts.map +1 -1
- package/dist/types/AppObject/AppObjectController.d.ts +22 -0
- package/dist/types/AppObject/AppObjectController.d.ts.map +1 -1
- package/dist/types/AppObject/AppObjectEntity.d.ts +55 -0
- package/dist/types/AppObject/AppObjectEntity.d.ts.map +1 -1
- package/dist/types/AppObject/AppObjectEntityRepo.d.ts +75 -0
- package/dist/types/AppObject/AppObjectEntityRepo.d.ts.map +1 -1
- package/dist/types/AppObject/AppObjectPM.d.ts +53 -0
- package/dist/types/AppObject/AppObjectPM.d.ts.map +1 -1
- package/dist/types/AppObject/AppObjectRepo.d.ts +124 -0
- package/dist/types/AppObject/AppObjectRepo.d.ts.map +1 -1
- package/dist/types/AppObject/AppObjectUC.d.ts +23 -0
- package/dist/types/AppObject/AppObjectUC.d.ts.map +1 -1
- package/dist/types/AppObject/AppObjectView.d.ts +22 -0
- package/dist/types/AppObject/AppObjectView.d.ts.map +1 -1
- package/dist/types/AppObject/getSingletonComponent.d.ts +19 -0
- package/dist/types/AppObject/getSingletonComponent.d.ts.map +1 -1
- package/dist/types/Entities/MemoizedAngle.d.ts +21 -0
- package/dist/types/Entities/MemoizedAngle.d.ts.map +1 -1
- package/dist/types/Entities/MemoizedBoolean.d.ts +21 -0
- package/dist/types/Entities/MemoizedBoolean.d.ts.map +1 -1
- package/dist/types/Entities/MemoizedColor.d.ts +21 -0
- package/dist/types/Entities/MemoizedColor.d.ts.map +1 -1
- package/dist/types/Entities/MemoizedNumber.d.ts +21 -0
- package/dist/types/Entities/MemoizedNumber.d.ts.map +1 -1
- package/dist/types/Entities/MemoizedQuaternion.d.ts +21 -0
- package/dist/types/Entities/MemoizedQuaternion.d.ts.map +1 -1
- package/dist/types/Entities/MemoizedString.d.ts +21 -0
- package/dist/types/Entities/MemoizedString.d.ts.map +1 -1
- package/dist/types/Entities/MemoizedVector2.d.ts +21 -0
- package/dist/types/Entities/MemoizedVector2.d.ts.map +1 -1
- package/dist/types/Entities/MemoizedVector3.d.ts +21 -0
- package/dist/types/Entities/MemoizedVector3.d.ts.map +1 -1
- package/dist/types/Entities/ObservableEntity.d.ts +20 -0
- package/dist/types/Entities/ObservableEntity.d.ts.map +1 -1
- package/dist/types/Entities/ObserverList.d.ts +21 -0
- package/dist/types/Entities/ObserverList.d.ts.map +1 -1
- package/dist/types/Entities/RangedNumber.d.ts +37 -0
- package/dist/types/Entities/RangedNumber.d.ts.map +1 -1
- package/dist/types/Types/PmAdapter.d.ts +60 -0
- package/dist/types/Types/PmAdapter.d.ts.map +1 -1
- package/dist/types/Types/SingletonPmAdapter.d.ts +55 -0
- package/dist/types/Types/SingletonPmAdapter.d.ts.map +1 -1
- package/dist/types/ValueObjects/Angle.d.ts +1 -1
- package/dist/types/ValueObjects/Matrix.d.ts +5 -5
- package/dist/types/ValueObjects/Matrix.d.ts.map +1 -1
- package/dist/types/ValueObjects/Quaternion.d.ts +17 -17
- package/dist/types/ValueObjects/Vector2.d.ts +8 -3
- package/dist/types/ValueObjects/Vector2.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/AppObject/AppObject.test.js +0 -113
- package/dist/cjs/AppObject/AppObject.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectComponent.test.js +0 -132
- package/dist/cjs/AppObject/AppObjectComponent.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectEntity.test.js +0 -108
- package/dist/cjs/AppObject/AppObjectEntity.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectEntityRepo.test.js +0 -149
- package/dist/cjs/AppObject/AppObjectEntityRepo.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectPM.test.js +0 -103
- package/dist/cjs/AppObject/AppObjectPM.test.js.map +0 -1
- package/dist/cjs/AppObject/AppObjectRepo.test.js +0 -213
- package/dist/cjs/AppObject/AppObjectRepo.test.js.map +0 -1
- package/dist/cjs/AppObject/getSingletonComponent.test.js +0 -13
- package/dist/cjs/AppObject/getSingletonComponent.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedAngle.test.js +0 -30
- package/dist/cjs/Entities/MemoizedAngle.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedBoolean.test.js +0 -34
- package/dist/cjs/Entities/MemoizedBoolean.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedColor.test.js +0 -32
- package/dist/cjs/Entities/MemoizedColor.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedNumber.test.js +0 -29
- package/dist/cjs/Entities/MemoizedNumber.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedQuaternion.test.js +0 -32
- package/dist/cjs/Entities/MemoizedQuaternion.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedString.test.js +0 -29
- package/dist/cjs/Entities/MemoizedString.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedVector2.test.js +0 -32
- package/dist/cjs/Entities/MemoizedVector2.test.js.map +0 -1
- package/dist/cjs/Entities/MemoizedVector3.test.js +0 -32
- package/dist/cjs/Entities/MemoizedVector3.test.js.map +0 -1
- package/dist/cjs/Entities/ObservableEntity.test.js +0 -25
- package/dist/cjs/Entities/ObservableEntity.test.js.map +0 -1
- package/dist/cjs/Entities/ObserverList.test.js +0 -44
- package/dist/cjs/Entities/ObserverList.test.js.map +0 -1
- package/dist/cjs/Entities/RangedNumber.test.js +0 -96
- package/dist/cjs/Entities/RangedNumber.test.js.map +0 -1
- package/dist/cjs/Utilities/LengthConverters.test.js +0 -24
- package/dist/cjs/Utilities/LengthConverters.test.js.map +0 -1
- package/dist/cjs/Utilities/LerpNumber.test.js +0 -90
- package/dist/cjs/Utilities/LerpNumber.test.js.map +0 -1
- package/dist/cjs/Utilities/addAlphaToHex.test.js +0 -34
- package/dist/cjs/Utilities/addAlphaToHex.test.js.map +0 -1
- package/dist/cjs/Utilities/alphaToHex.test.js +0 -75
- package/dist/cjs/Utilities/alphaToHex.test.js.map +0 -1
- package/dist/cjs/Utilities/degreesToRadians.test.js +0 -9
- package/dist/cjs/Utilities/degreesToRadians.test.js.map +0 -1
- package/dist/cjs/Utilities/easeFunctions.test.js +0 -209
- package/dist/cjs/Utilities/easeFunctions.test.js.map +0 -1
- package/dist/cjs/Utilities/interpolateNumber.test.js +0 -26
- package/dist/cjs/Utilities/interpolateNumber.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Angle.test.js +0 -28
- package/dist/cjs/ValueObjects/Angle.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Color.test.js +0 -147
- package/dist/cjs/ValueObjects/Color.test.js.map +0 -1
- package/dist/cjs/ValueObjects/LineSegment2D.test.js +0 -102
- package/dist/cjs/ValueObjects/LineSegment2D.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Matrix.test.js +0 -385
- package/dist/cjs/ValueObjects/Matrix.test.js.map +0 -1
- package/dist/cjs/ValueObjects/ParametricLine.test.js +0 -126
- package/dist/cjs/ValueObjects/ParametricLine.test.js.map +0 -1
- package/dist/cjs/ValueObjects/ParametricPlane.test.js +0 -101
- package/dist/cjs/ValueObjects/ParametricPlane.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Quaternion.test.js +0 -240
- package/dist/cjs/ValueObjects/Quaternion.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Rectangle.test.js +0 -32
- package/dist/cjs/ValueObjects/Rectangle.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Vector2.test.js +0 -136
- package/dist/cjs/ValueObjects/Vector2.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Vector3.test.js +0 -188
- package/dist/cjs/ValueObjects/Vector3.test.js.map +0 -1
- package/dist/cjs/ValueObjects/Version.test.js +0 -310
- package/dist/cjs/ValueObjects/Version.test.js.map +0 -1
- package/dist/esm/AppObject/AppObject.test.js +0 -110
- package/dist/esm/AppObject/AppObject.test.js.map +0 -1
- package/dist/esm/AppObject/AppObjectComponent.test.js +0 -130
- package/dist/esm/AppObject/AppObjectComponent.test.js.map +0 -1
- package/dist/esm/AppObject/AppObjectEntity.test.js +0 -106
- package/dist/esm/AppObject/AppObjectEntity.test.js.map +0 -1
- package/dist/esm/AppObject/AppObjectEntityRepo.test.js +0 -147
- package/dist/esm/AppObject/AppObjectEntityRepo.test.js.map +0 -1
- package/dist/esm/AppObject/AppObjectPM.test.js +0 -101
- package/dist/esm/AppObject/AppObjectPM.test.js.map +0 -1
- package/dist/esm/AppObject/AppObjectRepo.test.js +0 -211
- package/dist/esm/AppObject/AppObjectRepo.test.js.map +0 -1
- package/dist/esm/AppObject/getSingletonComponent.test.js +0 -11
- package/dist/esm/AppObject/getSingletonComponent.test.js.map +0 -1
- package/dist/esm/Entities/MemoizedAngle.test.js +0 -28
- package/dist/esm/Entities/MemoizedAngle.test.js.map +0 -1
- package/dist/esm/Entities/MemoizedBoolean.test.js +0 -32
- package/dist/esm/Entities/MemoizedBoolean.test.js.map +0 -1
- package/dist/esm/Entities/MemoizedColor.test.js +0 -30
- package/dist/esm/Entities/MemoizedColor.test.js.map +0 -1
- package/dist/esm/Entities/MemoizedNumber.test.js +0 -27
- package/dist/esm/Entities/MemoizedNumber.test.js.map +0 -1
- package/dist/esm/Entities/MemoizedQuaternion.test.js +0 -30
- package/dist/esm/Entities/MemoizedQuaternion.test.js.map +0 -1
- package/dist/esm/Entities/MemoizedString.test.js +0 -27
- package/dist/esm/Entities/MemoizedString.test.js.map +0 -1
- package/dist/esm/Entities/MemoizedVector2.test.js +0 -30
- package/dist/esm/Entities/MemoizedVector2.test.js.map +0 -1
- package/dist/esm/Entities/MemoizedVector3.test.js +0 -30
- package/dist/esm/Entities/MemoizedVector3.test.js.map +0 -1
- package/dist/esm/Entities/ObservableEntity.test.js +0 -23
- package/dist/esm/Entities/ObservableEntity.test.js.map +0 -1
- package/dist/esm/Entities/ObserverList.test.js +0 -42
- package/dist/esm/Entities/ObserverList.test.js.map +0 -1
- package/dist/esm/Entities/RangedNumber.test.js +0 -94
- package/dist/esm/Entities/RangedNumber.test.js.map +0 -1
- package/dist/esm/Utilities/LengthConverters.test.js +0 -22
- package/dist/esm/Utilities/LengthConverters.test.js.map +0 -1
- package/dist/esm/Utilities/LerpNumber.test.js +0 -88
- package/dist/esm/Utilities/LerpNumber.test.js.map +0 -1
- package/dist/esm/Utilities/addAlphaToHex.test.js +0 -32
- package/dist/esm/Utilities/addAlphaToHex.test.js.map +0 -1
- package/dist/esm/Utilities/alphaToHex.test.js +0 -73
- package/dist/esm/Utilities/alphaToHex.test.js.map +0 -1
- package/dist/esm/Utilities/degreesToRadians.test.js +0 -7
- package/dist/esm/Utilities/degreesToRadians.test.js.map +0 -1
- package/dist/esm/Utilities/easeFunctions.test.js +0 -207
- package/dist/esm/Utilities/easeFunctions.test.js.map +0 -1
- package/dist/esm/Utilities/interpolateNumber.test.js +0 -24
- package/dist/esm/Utilities/interpolateNumber.test.js.map +0 -1
- package/dist/esm/ValueObjects/Angle.test.js +0 -26
- package/dist/esm/ValueObjects/Angle.test.js.map +0 -1
- package/dist/esm/ValueObjects/Color.test.js +0 -145
- package/dist/esm/ValueObjects/Color.test.js.map +0 -1
- package/dist/esm/ValueObjects/LineSegment2D.test.js +0 -100
- package/dist/esm/ValueObjects/LineSegment2D.test.js.map +0 -1
- package/dist/esm/ValueObjects/Matrix.test.js +0 -383
- package/dist/esm/ValueObjects/Matrix.test.js.map +0 -1
- package/dist/esm/ValueObjects/ParametricLine.test.js +0 -124
- package/dist/esm/ValueObjects/ParametricLine.test.js.map +0 -1
- package/dist/esm/ValueObjects/ParametricPlane.test.js +0 -99
- package/dist/esm/ValueObjects/ParametricPlane.test.js.map +0 -1
- package/dist/esm/ValueObjects/Quaternion.test.js +0 -238
- package/dist/esm/ValueObjects/Quaternion.test.js.map +0 -1
- package/dist/esm/ValueObjects/Rectangle.test.js +0 -30
- package/dist/esm/ValueObjects/Rectangle.test.js.map +0 -1
- package/dist/esm/ValueObjects/Vector2.test.js +0 -134
- package/dist/esm/ValueObjects/Vector2.test.js.map +0 -1
- package/dist/esm/ValueObjects/Vector3.test.js +0 -186
- package/dist/esm/ValueObjects/Vector3.test.js.map +0 -1
- package/dist/esm/ValueObjects/Version.test.js +0 -308
- package/dist/esm/ValueObjects/Version.test.js.map +0 -1
- package/dist/types/AppObject/AppObject.test.d.ts +0 -7
- package/dist/types/AppObject/AppObject.test.d.ts.map +0 -1
- package/dist/types/AppObject/AppObjectComponent.test.d.ts +0 -2
- package/dist/types/AppObject/AppObjectComponent.test.d.ts.map +0 -1
- package/dist/types/AppObject/AppObjectEntity.test.d.ts +0 -2
- package/dist/types/AppObject/AppObjectEntity.test.d.ts.map +0 -1
- package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts +0 -2
- package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts.map +0 -1
- package/dist/types/AppObject/AppObjectPM.test.d.ts +0 -2
- package/dist/types/AppObject/AppObjectPM.test.d.ts.map +0 -1
- package/dist/types/AppObject/AppObjectRepo.test.d.ts +0 -2
- package/dist/types/AppObject/AppObjectRepo.test.d.ts.map +0 -1
- package/dist/types/AppObject/getSingletonComponent.test.d.ts +0 -2
- package/dist/types/AppObject/getSingletonComponent.test.d.ts.map +0 -1
- package/dist/types/Entities/MemoizedAngle.test.d.ts +0 -2
- package/dist/types/Entities/MemoizedAngle.test.d.ts.map +0 -1
- package/dist/types/Entities/MemoizedBoolean.test.d.ts +0 -2
- package/dist/types/Entities/MemoizedBoolean.test.d.ts.map +0 -1
- package/dist/types/Entities/MemoizedColor.test.d.ts +0 -2
- package/dist/types/Entities/MemoizedColor.test.d.ts.map +0 -1
- package/dist/types/Entities/MemoizedNumber.test.d.ts +0 -2
- package/dist/types/Entities/MemoizedNumber.test.d.ts.map +0 -1
- package/dist/types/Entities/MemoizedQuaternion.test.d.ts +0 -2
- package/dist/types/Entities/MemoizedQuaternion.test.d.ts.map +0 -1
- package/dist/types/Entities/MemoizedString.test.d.ts +0 -2
- package/dist/types/Entities/MemoizedString.test.d.ts.map +0 -1
- package/dist/types/Entities/MemoizedVector2.test.d.ts +0 -2
- package/dist/types/Entities/MemoizedVector2.test.d.ts.map +0 -1
- package/dist/types/Entities/MemoizedVector3.test.d.ts +0 -2
- package/dist/types/Entities/MemoizedVector3.test.d.ts.map +0 -1
- package/dist/types/Entities/ObservableEntity.test.d.ts +0 -2
- package/dist/types/Entities/ObservableEntity.test.d.ts.map +0 -1
- package/dist/types/Entities/ObserverList.test.d.ts +0 -2
- package/dist/types/Entities/ObserverList.test.d.ts.map +0 -1
- package/dist/types/Entities/RangedNumber.test.d.ts +0 -2
- package/dist/types/Entities/RangedNumber.test.d.ts.map +0 -1
- package/dist/types/Utilities/LengthConverters.test.d.ts +0 -2
- package/dist/types/Utilities/LengthConverters.test.d.ts.map +0 -1
- package/dist/types/Utilities/LerpNumber.test.d.ts +0 -2
- package/dist/types/Utilities/LerpNumber.test.d.ts.map +0 -1
- package/dist/types/Utilities/addAlphaToHex.test.d.ts +0 -2
- package/dist/types/Utilities/addAlphaToHex.test.d.ts.map +0 -1
- package/dist/types/Utilities/alphaToHex.test.d.ts +0 -2
- package/dist/types/Utilities/alphaToHex.test.d.ts.map +0 -1
- package/dist/types/Utilities/degreesToRadians.test.d.ts +0 -2
- package/dist/types/Utilities/degreesToRadians.test.d.ts.map +0 -1
- package/dist/types/Utilities/easeFunctions.test.d.ts +0 -2
- package/dist/types/Utilities/easeFunctions.test.d.ts.map +0 -1
- package/dist/types/Utilities/interpolateNumber.test.d.ts +0 -2
- package/dist/types/Utilities/interpolateNumber.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/Angle.test.d.ts +0 -2
- package/dist/types/ValueObjects/Angle.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/Color.test.d.ts +0 -2
- package/dist/types/ValueObjects/Color.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/LineSegment2D.test.d.ts +0 -2
- package/dist/types/ValueObjects/LineSegment2D.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/Matrix.test.d.ts +0 -2
- package/dist/types/ValueObjects/Matrix.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/ParametricLine.test.d.ts +0 -2
- package/dist/types/ValueObjects/ParametricLine.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/ParametricPlane.test.d.ts +0 -2
- package/dist/types/ValueObjects/ParametricPlane.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/Quaternion.test.d.ts +0 -2
- package/dist/types/ValueObjects/Quaternion.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/Rectangle.test.d.ts +0 -2
- package/dist/types/ValueObjects/Rectangle.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/Vector2.test.d.ts +0 -2
- package/dist/types/ValueObjects/Vector2.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/Vector3.test.d.ts +0 -2
- package/dist/types/ValueObjects/Vector3.test.d.ts.map +0 -1
- package/dist/types/ValueObjects/Version.test.d.ts +0 -2
- package/dist/types/ValueObjects/Version.test.d.ts.map +0 -1
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const _1 = require(".");
|
|
4
|
-
const Angle_1 = require("./Angle");
|
|
5
|
-
const Matrix_1 = require("./Matrix");
|
|
6
|
-
const Quaternion_1 = require("./Quaternion");
|
|
7
|
-
describe("Vector 3 Value object - Creation", () => {
|
|
8
|
-
it("Creates a zero vector", () => {
|
|
9
|
-
const v = _1.Vector3.Zero();
|
|
10
|
-
expect(v).toEqual(new _1.Vector3(0, 0, 0));
|
|
11
|
-
});
|
|
12
|
-
it("Creates a one vector", () => {
|
|
13
|
-
const v = _1.Vector3.One();
|
|
14
|
-
expect(v).toEqual(new _1.Vector3(1, 1, 1));
|
|
15
|
-
});
|
|
16
|
-
it("Creates a vector from an array", () => {
|
|
17
|
-
const v = _1.Vector3.FromArray([2, 5, 7]);
|
|
18
|
-
expect(v).toEqual(new _1.Vector3(2, 5, 7));
|
|
19
|
-
});
|
|
20
|
-
it("Creates a unit right vector", () => {
|
|
21
|
-
const v = _1.Vector3.Right();
|
|
22
|
-
expect(v).toEqual(new _1.Vector3(1, 0, 0));
|
|
23
|
-
});
|
|
24
|
-
it("Creates a right vector with length", () => {
|
|
25
|
-
const v = _1.Vector3.Right(3);
|
|
26
|
-
expect(v).toEqual(new _1.Vector3(3, 0, 0));
|
|
27
|
-
});
|
|
28
|
-
it("Creates a unit left vector", () => {
|
|
29
|
-
const v = _1.Vector3.Left();
|
|
30
|
-
expect(v).toEqual(new _1.Vector3(-1, 0, 0));
|
|
31
|
-
});
|
|
32
|
-
it("Creates a left vector with length", () => {
|
|
33
|
-
const v = _1.Vector3.Left(3);
|
|
34
|
-
expect(v).toEqual(new _1.Vector3(-3, 0, 0));
|
|
35
|
-
});
|
|
36
|
-
it("Creates a unit up vector", () => {
|
|
37
|
-
const v = _1.Vector3.Up();
|
|
38
|
-
expect(v).toEqual(new _1.Vector3(0, 1, 0));
|
|
39
|
-
});
|
|
40
|
-
it("Creates a up vector with length", () => {
|
|
41
|
-
const v = _1.Vector3.Up(3);
|
|
42
|
-
expect(v).toEqual(new _1.Vector3(0, 3, 0));
|
|
43
|
-
});
|
|
44
|
-
it("Creates a unit down vector", () => {
|
|
45
|
-
const v = _1.Vector3.Down();
|
|
46
|
-
expect(v).toEqual(new _1.Vector3(0, -1, 0));
|
|
47
|
-
});
|
|
48
|
-
it("Creates a down vector with length", () => {
|
|
49
|
-
const v = _1.Vector3.Down(3);
|
|
50
|
-
expect(v).toEqual(new _1.Vector3(0, -3, 0));
|
|
51
|
-
});
|
|
52
|
-
it("Creates a unit forward vector", () => {
|
|
53
|
-
const v = _1.Vector3.Forward();
|
|
54
|
-
expect(v).toEqual(new _1.Vector3(0, 0, 1));
|
|
55
|
-
});
|
|
56
|
-
it("Creates a forward vector with length", () => {
|
|
57
|
-
const v = _1.Vector3.Forward(3);
|
|
58
|
-
expect(v).toEqual(new _1.Vector3(0, 0, 3));
|
|
59
|
-
});
|
|
60
|
-
it("Creates a unit backward vector", () => {
|
|
61
|
-
const v = _1.Vector3.Backward();
|
|
62
|
-
expect(v).toEqual(new _1.Vector3(0, 0, -1));
|
|
63
|
-
});
|
|
64
|
-
it("Creates a backward vector with length", () => {
|
|
65
|
-
const v = _1.Vector3.Backward(3);
|
|
66
|
-
expect(v).toEqual(new _1.Vector3(0, 0, -3));
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
describe("Vector 3 Value object - Static actions", () => {
|
|
70
|
-
it("Adds two vectors", () => {
|
|
71
|
-
const v1 = new _1.Vector3(1, 2, 3);
|
|
72
|
-
const v2 = new _1.Vector3(4, 5, 6);
|
|
73
|
-
const v3 = _1.Vector3.Add(v1, v2);
|
|
74
|
-
expect(v3).toEqual(new _1.Vector3(5, 7, 9));
|
|
75
|
-
});
|
|
76
|
-
test("Subtracts two vectors", () => {
|
|
77
|
-
const v1 = new _1.Vector3(1, 2, 3);
|
|
78
|
-
const v2 = new _1.Vector3(6, 5, 4);
|
|
79
|
-
const v3 = _1.Vector3.Subtract(v1, v2);
|
|
80
|
-
expect(v3).toEqual(new _1.Vector3(-5, -3, -1));
|
|
81
|
-
});
|
|
82
|
-
test("Checks if two vectors are equal", () => {
|
|
83
|
-
const v1 = new _1.Vector3(1, 2, 3);
|
|
84
|
-
const v2 = new _1.Vector3(4, 5, 6);
|
|
85
|
-
const v3 = new _1.Vector3(1, 2, 3);
|
|
86
|
-
expect(_1.Vector3.Equal(v1, v2)).toEqual(false);
|
|
87
|
-
expect(_1.Vector3.Equal(v1, v3)).toEqual(true);
|
|
88
|
-
});
|
|
89
|
-
it("Checks if Vectors are close without a tolerance", () => {
|
|
90
|
-
const v1 = new _1.Vector3(1, 2, 3);
|
|
91
|
-
const v2 = new _1.Vector3(1.1, 2.2, 3.3);
|
|
92
|
-
const v3 = new _1.Vector3(1.001, 2.001, 3.001);
|
|
93
|
-
expect(_1.Vector3.Close(v1, v2)).toEqual(false);
|
|
94
|
-
expect(_1.Vector3.Close(v1, v3)).toEqual(true);
|
|
95
|
-
});
|
|
96
|
-
it("Checks if Vectors are close with a tolerance", () => {
|
|
97
|
-
const v1 = new _1.Vector3(1, 2, 3);
|
|
98
|
-
const v2 = new _1.Vector3(1.1, 2.2, 3.3);
|
|
99
|
-
expect(_1.Vector3.Close(v1, v2, 0.3)).toEqual(false);
|
|
100
|
-
expect(_1.Vector3.Close(v1, v2, 0.4)).toEqual(true);
|
|
101
|
-
});
|
|
102
|
-
it("Computes the cross product", () => {
|
|
103
|
-
// From https://www.symbolab.com/solver/vector-cross-product-calculator
|
|
104
|
-
const v1 = new _1.Vector3(1, 2, 3);
|
|
105
|
-
const v2 = new _1.Vector3(4, 5, -6);
|
|
106
|
-
const cross = _1.Vector3.Cross(v1, v2);
|
|
107
|
-
expect(cross).toEqual(new _1.Vector3(-27, 18, -3));
|
|
108
|
-
});
|
|
109
|
-
test("Cross product", () => {
|
|
110
|
-
// From https://www.symbolab.com/solver/vector-cross-product-calculator
|
|
111
|
-
const v1 = new _1.Vector3(1, 2, 3);
|
|
112
|
-
const v2 = new _1.Vector3(4, 5, -6);
|
|
113
|
-
const cross = _1.Vector3.Cross(v2, v1);
|
|
114
|
-
expect(cross).toEqual(new _1.Vector3(27, -18, 3));
|
|
115
|
-
});
|
|
116
|
-
test("Dot product", () => {
|
|
117
|
-
// From https://www.calculatorsoup.com/calculators/algebra/dot-product-calculator.php
|
|
118
|
-
const v1 = new _1.Vector3(1, 5, 3);
|
|
119
|
-
const v2 = new _1.Vector3(2, 3, 6);
|
|
120
|
-
const dot = _1.Vector3.Dot(v1, v2);
|
|
121
|
-
expect(dot).toEqual(35);
|
|
122
|
-
});
|
|
123
|
-
test("New vector of length", () => {
|
|
124
|
-
const v1 = new _1.Vector3(1, -5, 3);
|
|
125
|
-
const v2 = _1.Vector3.NewVectorOfLength(v1, 10);
|
|
126
|
-
expect(v2.x).toBeCloseTo(1.69);
|
|
127
|
-
expect(v2.y).toBeCloseTo(-8.45);
|
|
128
|
-
expect(v2.z).toBeCloseTo(5.07);
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
describe("Vector 3 Value object - parameters", () => {
|
|
132
|
-
it("Gets the vector components", () => {
|
|
133
|
-
const v = new _1.Vector3(2, 5, 7);
|
|
134
|
-
expect(v.x).toEqual(2);
|
|
135
|
-
expect(v.y).toEqual(5);
|
|
136
|
-
expect(v.z).toEqual(7);
|
|
137
|
-
});
|
|
138
|
-
it("Gets the magnitue", () => {
|
|
139
|
-
// https://www.omnicalculator.com/math/unit-vector
|
|
140
|
-
const v1 = new _1.Vector3(1, -5, 3);
|
|
141
|
-
expect(v1.magnitude).toBeCloseTo(5.916);
|
|
142
|
-
});
|
|
143
|
-
it("Gets the unit vector", () => {
|
|
144
|
-
// https://www.omnicalculator.com/math/unit-vector
|
|
145
|
-
const v1 = new _1.Vector3(1, -5, 3);
|
|
146
|
-
expect(v1.unit.x).toBeCloseTo(0.169);
|
|
147
|
-
expect(v1.unit.y).toBeCloseTo(-0.845);
|
|
148
|
-
expect(v1.unit.z).toBeCloseTo(0.507);
|
|
149
|
-
});
|
|
150
|
-
it("Gets the vector as an array", () => {
|
|
151
|
-
const v1 = new _1.Vector3(1, -5, 3);
|
|
152
|
-
expect(v1.array).toEqual([1, -5, 3]);
|
|
153
|
-
});
|
|
154
|
-
it("Lerps", () => {
|
|
155
|
-
const start = new _1.Vector3(10, 20, 30);
|
|
156
|
-
const end = new _1.Vector3(20, 30, 40);
|
|
157
|
-
const lerped = _1.Vector3.Lerp(start, end, 0.5);
|
|
158
|
-
expect(lerped).toEqual(new _1.Vector3(15, 25, 35));
|
|
159
|
-
});
|
|
160
|
-
it("Transforms a Vector with a matrix", () => {
|
|
161
|
-
const pos = new _1.Vector3(5, 0, 0);
|
|
162
|
-
const rot = Quaternion_1.Quaternion.FromAngleAxis(_1.Vector3.Up(), Angle_1.Angle.FromDegrees(-90));
|
|
163
|
-
const scale = new _1.Vector3(2, 2, 2);
|
|
164
|
-
const matrix = Matrix_1.Matrix.Compose(scale, rot, pos);
|
|
165
|
-
const transformed = _1.Vector3.Transform(new _1.Vector3(2, 1, -1), matrix);
|
|
166
|
-
const expected = new _1.Vector3(7, 2, 4);
|
|
167
|
-
expect(_1.Vector3.Close(transformed, expected)).toEqual(true);
|
|
168
|
-
});
|
|
169
|
-
it("Gets the Data Transfer Object", () => {
|
|
170
|
-
const vec = new _1.Vector3(1, 2, 3);
|
|
171
|
-
expect(vec.dto).toEqual({
|
|
172
|
-
x: 1,
|
|
173
|
-
y: 2,
|
|
174
|
-
z: 3,
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
it("Makes a vector from a DTO", () => {
|
|
178
|
-
const vec = _1.Vector3.FromDTO({
|
|
179
|
-
x: 1,
|
|
180
|
-
y: 2,
|
|
181
|
-
z: 3,
|
|
182
|
-
});
|
|
183
|
-
expect(vec.x).toEqual(1);
|
|
184
|
-
expect(vec.y).toEqual(2);
|
|
185
|
-
expect(vec.z).toEqual(3);
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
//# sourceMappingURL=Vector3.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Vector3.test.js","sourceRoot":"","sources":["../../../src/ValueObjects/Vector3.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector3 } from \".\";\r\nimport { Angle } from \"./Angle\";\r\nimport { Matrix } from \"./Matrix\";\r\nimport { Quaternion } from \"./Quaternion\";\r\n\r\ndescribe(\"Vector 3 Value object - Creation\", () => {\r\n it(\"Creates a zero vector\", () => {\r\n const v = Vector3.Zero();\r\n expect(v).toEqual(new Vector3(0, 0, 0));\r\n });\r\n it(\"Creates a one vector\", () => {\r\n const v = Vector3.One();\r\n expect(v).toEqual(new Vector3(1, 1, 1));\r\n });\r\n\r\n it(\"Creates a vector from an array\", () => {\r\n const v = Vector3.FromArray([2, 5, 7]);\r\n expect(v).toEqual(new Vector3(2, 5, 7));\r\n });\r\n\r\n it(\"Creates a unit right vector\", () => {\r\n const v = Vector3.Right();\r\n expect(v).toEqual(new Vector3(1, 0, 0));\r\n });\r\n\r\n it(\"Creates a right vector with length\", () => {\r\n const v = Vector3.Right(3);\r\n expect(v).toEqual(new Vector3(3, 0, 0));\r\n });\r\n\r\n it(\"Creates a unit left vector\", () => {\r\n const v = Vector3.Left();\r\n expect(v).toEqual(new Vector3(-1, 0, 0));\r\n });\r\n\r\n it(\"Creates a left vector with length\", () => {\r\n const v = Vector3.Left(3);\r\n expect(v).toEqual(new Vector3(-3, 0, 0));\r\n });\r\n\r\n it(\"Creates a unit up vector\", () => {\r\n const v = Vector3.Up();\r\n expect(v).toEqual(new Vector3(0, 1, 0));\r\n });\r\n\r\n it(\"Creates a up vector with length\", () => {\r\n const v = Vector3.Up(3);\r\n expect(v).toEqual(new Vector3(0, 3, 0));\r\n });\r\n\r\n it(\"Creates a unit down vector\", () => {\r\n const v = Vector3.Down();\r\n expect(v).toEqual(new Vector3(0, -1, 0));\r\n });\r\n\r\n it(\"Creates a down vector with length\", () => {\r\n const v = Vector3.Down(3);\r\n expect(v).toEqual(new Vector3(0, -3, 0));\r\n });\r\n\r\n it(\"Creates a unit forward vector\", () => {\r\n const v = Vector3.Forward();\r\n expect(v).toEqual(new Vector3(0, 0, 1));\r\n });\r\n\r\n it(\"Creates a forward vector with length\", () => {\r\n const v = Vector3.Forward(3);\r\n expect(v).toEqual(new Vector3(0, 0, 3));\r\n });\r\n\r\n it(\"Creates a unit backward vector\", () => {\r\n const v = Vector3.Backward();\r\n expect(v).toEqual(new Vector3(0, 0, -1));\r\n });\r\n\r\n it(\"Creates a backward vector with length\", () => {\r\n const v = Vector3.Backward(3);\r\n expect(v).toEqual(new Vector3(0, 0, -3));\r\n });\r\n});\r\n\r\ndescribe(\"Vector 3 Value object - Static actions\", () => {\r\n it(\"Adds two vectors\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(4, 5, 6);\r\n\r\n const v3 = Vector3.Add(v1, v2);\r\n expect(v3).toEqual(new Vector3(5, 7, 9));\r\n });\r\n\r\n test(\"Subtracts two vectors\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(6, 5, 4);\r\n\r\n const v3 = Vector3.Subtract(v1, v2);\r\n expect(v3).toEqual(new Vector3(-5, -3, -1));\r\n });\r\n\r\n test(\"Checks if two vectors are equal\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(4, 5, 6);\r\n const v3 = new Vector3(1, 2, 3);\r\n expect(Vector3.Equal(v1, v2)).toEqual(false);\r\n expect(Vector3.Equal(v1, v3)).toEqual(true);\r\n });\r\n\r\n it(\"Checks if Vectors are close without a tolerance\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(1.1, 2.2, 3.3);\r\n const v3 = new Vector3(1.001, 2.001, 3.001);\r\n expect(Vector3.Close(v1, v2)).toEqual(false);\r\n expect(Vector3.Close(v1, v3)).toEqual(true);\r\n });\r\n\r\n it(\"Checks if Vectors are close with a tolerance\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(1.1, 2.2, 3.3);\r\n expect(Vector3.Close(v1, v2, 0.3)).toEqual(false);\r\n expect(Vector3.Close(v1, v2, 0.4)).toEqual(true);\r\n });\r\n\r\n it(\"Computes the cross product\", () => {\r\n // From https://www.symbolab.com/solver/vector-cross-product-calculator\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(4, 5, -6);\r\n\r\n const cross = Vector3.Cross(v1, v2);\r\n expect(cross).toEqual(new Vector3(-27, 18, -3));\r\n });\r\n\r\n test(\"Cross product\", () => {\r\n // From https://www.symbolab.com/solver/vector-cross-product-calculator\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(4, 5, -6);\r\n\r\n const cross = Vector3.Cross(v2, v1);\r\n expect(cross).toEqual(new Vector3(27, -18, 3));\r\n });\r\n\r\n test(\"Dot product\", () => {\r\n // From https://www.calculatorsoup.com/calculators/algebra/dot-product-calculator.php\r\n const v1 = new Vector3(1, 5, 3);\r\n const v2 = new Vector3(2, 3, 6);\r\n\r\n const dot = Vector3.Dot(v1, v2);\r\n expect(dot).toEqual(35);\r\n });\r\n\r\n test(\"New vector of length\", () => {\r\n const v1 = new Vector3(1, -5, 3);\r\n const v2 = Vector3.NewVectorOfLength(v1, 10);\r\n\r\n expect(v2.x).toBeCloseTo(1.69);\r\n expect(v2.y).toBeCloseTo(-8.45);\r\n expect(v2.z).toBeCloseTo(5.07);\r\n });\r\n});\r\n\r\ndescribe(\"Vector 3 Value object - parameters\", () => {\r\n it(\"Gets the vector components\", () => {\r\n const v = new Vector3(2, 5, 7);\r\n expect(v.x).toEqual(2);\r\n expect(v.y).toEqual(5);\r\n expect(v.z).toEqual(7);\r\n });\r\n\r\n it(\"Gets the magnitue\", () => {\r\n // https://www.omnicalculator.com/math/unit-vector\r\n const v1 = new Vector3(1, -5, 3);\r\n expect(v1.magnitude).toBeCloseTo(5.916);\r\n });\r\n\r\n it(\"Gets the unit vector\", () => {\r\n // https://www.omnicalculator.com/math/unit-vector\r\n const v1 = new Vector3(1, -5, 3);\r\n\r\n expect(v1.unit.x).toBeCloseTo(0.169);\r\n expect(v1.unit.y).toBeCloseTo(-0.845);\r\n expect(v1.unit.z).toBeCloseTo(0.507);\r\n });\r\n\r\n it(\"Gets the vector as an array\", () => {\r\n const v1 = new Vector3(1, -5, 3);\r\n expect(v1.array).toEqual([1, -5, 3]);\r\n });\r\n\r\n it(\"Lerps\", () => {\r\n const start = new Vector3(10, 20, 30);\r\n const end = new Vector3(20, 30, 40);\r\n const lerped = Vector3.Lerp(start, end, 0.5);\r\n\r\n expect(lerped).toEqual(new Vector3(15, 25, 35));\r\n });\r\n\r\n it(\"Transforms a Vector with a matrix\", () => {\r\n const pos = new Vector3(5, 0, 0);\r\n const rot = Quaternion.FromAngleAxis(Vector3.Up(), Angle.FromDegrees(-90));\r\n const scale = new Vector3(2, 2, 2);\r\n const matrix = Matrix.Compose(scale, rot, pos);\r\n\r\n const transformed = Vector3.Transform(new Vector3(2, 1, -1), matrix);\r\n const expected = new Vector3(7, 2, 4);\r\n\r\n expect(Vector3.Close(transformed, expected)).toEqual(true);\r\n });\r\n\r\n it(\"Gets the Data Transfer Object\", () => {\r\n const vec = new Vector3(1, 2, 3);\r\n\r\n expect(vec.dto).toEqual({\r\n x: 1,\r\n y: 2,\r\n z: 3,\r\n });\r\n });\r\n\r\n it(\"Makes a vector from a DTO\", () => {\r\n const vec = Vector3.FromDTO({\r\n x: 1,\r\n y: 2,\r\n z: 3,\r\n });\r\n\r\n expect(vec.x).toEqual(1);\r\n expect(vec.y).toEqual(2);\r\n expect(vec.z).toEqual(3);\r\n });\r\n});\r\n"]}
|
|
@@ -1,310 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Version_1 = require("./Version");
|
|
4
|
-
test('Initialization', () => {
|
|
5
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.BETA, 'yo');
|
|
6
|
-
expect(version.major).toEqual(1);
|
|
7
|
-
expect(version.minor).toEqual(2);
|
|
8
|
-
expect(version.patch).toEqual(3);
|
|
9
|
-
expect(version.stage).toEqual(Version_1.VersionStage.BETA);
|
|
10
|
-
expect(version.label).toEqual('yo');
|
|
11
|
-
});
|
|
12
|
-
test('Without a label', () => {
|
|
13
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA);
|
|
14
|
-
expect(version.major).toEqual(1);
|
|
15
|
-
expect(version.minor).toEqual(2);
|
|
16
|
-
expect(version.patch).toEqual(3);
|
|
17
|
-
expect(version.stage).toEqual(Version_1.VersionStage.ALPHA);
|
|
18
|
-
expect(version.label).toBeUndefined();
|
|
19
|
-
});
|
|
20
|
-
describe('Version strings', () => {
|
|
21
|
-
it('Shows alpha after the version', () => {
|
|
22
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA);
|
|
23
|
-
expect(version.displayString).toEqual('1.2.3-alpha');
|
|
24
|
-
});
|
|
25
|
-
it('Appends the label after alpha', () => {
|
|
26
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
27
|
-
expect(version.displayString).toEqual('1.2.3-alpha-yo');
|
|
28
|
-
});
|
|
29
|
-
it('Shows beta after the version', () => {
|
|
30
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.BETA);
|
|
31
|
-
expect(version.displayString).toEqual('1.2.3-beta');
|
|
32
|
-
});
|
|
33
|
-
it('Appends the label after beta', () => {
|
|
34
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.BETA, 'yo');
|
|
35
|
-
expect(version.displayString).toEqual('1.2.3-beta-yo');
|
|
36
|
-
});
|
|
37
|
-
it('Does not show a release string', () => {
|
|
38
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.RELEASED);
|
|
39
|
-
expect(version.displayString).toEqual('1.2.3');
|
|
40
|
-
});
|
|
41
|
-
it('Appends the label after version for release', () => {
|
|
42
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.RELEASED, 'yo');
|
|
43
|
-
expect(version.displayString).toEqual('1.2.3-yo');
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
describe('Version strings', () => {
|
|
47
|
-
it('Returns the stripped string for a release without label', () => {
|
|
48
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.RELEASED);
|
|
49
|
-
expect(version.baseVersionString).toEqual('1.2.3');
|
|
50
|
-
});
|
|
51
|
-
it('Returns the stripped string for a release with a label', () => {
|
|
52
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.RELEASED, 'yo');
|
|
53
|
-
expect(version.baseVersionString).toEqual('1.2.3');
|
|
54
|
-
});
|
|
55
|
-
it('Returns the stripped string for an alpha without label', () => {
|
|
56
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA);
|
|
57
|
-
expect(version.baseVersionString).toEqual('1.2.3');
|
|
58
|
-
});
|
|
59
|
-
it('Returns the stripped string for an alpha with a label', () => {
|
|
60
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
61
|
-
expect(version.baseVersionString).toEqual('1.2.3');
|
|
62
|
-
});
|
|
63
|
-
it('Returns the stripped string for a beta without label', () => {
|
|
64
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.BETA);
|
|
65
|
-
expect(version.baseVersionString).toEqual('1.2.3');
|
|
66
|
-
});
|
|
67
|
-
it('Returns the stripped string for a beta with a label', () => {
|
|
68
|
-
const version = new Version_1.Version(1, 2, 3, Version_1.VersionStage.BETA, 'yo');
|
|
69
|
-
expect(version.baseVersionString).toEqual('1.2.3');
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
describe('Getting the latest from a list', () => {
|
|
73
|
-
it('Gets the latest from list', () => {
|
|
74
|
-
const version1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.RELEASED);
|
|
75
|
-
const version2 = new Version_1.Version(0, 2, 3, Version_1.VersionStage.RELEASED);
|
|
76
|
-
const version3 = new Version_1.Version(1, 2, 4, Version_1.VersionStage.RELEASED);
|
|
77
|
-
const version4 = new Version_1.Version(0, 0, 4, Version_1.VersionStage.RELEASED);
|
|
78
|
-
const versions = [version1, version2, version3, version4];
|
|
79
|
-
const latest = Version_1.Version.GetLatest(versions);
|
|
80
|
-
expect(latest).toEqual(version3);
|
|
81
|
-
});
|
|
82
|
-
it('Returns the latest regardless of the stage', () => {
|
|
83
|
-
const version1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA);
|
|
84
|
-
const version2 = new Version_1.Version(0, 2, 3, Version_1.VersionStage.BETA);
|
|
85
|
-
const version3 = new Version_1.Version(1, 2, 4, Version_1.VersionStage.ALPHA);
|
|
86
|
-
const version4 = new Version_1.Version(0, 0, 4, Version_1.VersionStage.BETA);
|
|
87
|
-
const versions = [version1, version2, version3, version4];
|
|
88
|
-
const latest = Version_1.Version.GetLatest(versions);
|
|
89
|
-
expect(latest).toEqual(version3);
|
|
90
|
-
});
|
|
91
|
-
it('Returns undefined if the list is empty', () => {
|
|
92
|
-
const latest = Version_1.Version.GetLatest([]);
|
|
93
|
-
expect(latest).toBeUndefined();
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
describe('Getting the latest major', () => {
|
|
97
|
-
it('Gets the latest major', () => {
|
|
98
|
-
const version1 = new Version_1.Version(2, 2, 3, Version_1.VersionStage.RELEASED);
|
|
99
|
-
const version2 = new Version_1.Version(0, 2, 3, Version_1.VersionStage.RELEASED);
|
|
100
|
-
const version3 = new Version_1.Version(1, 2, 4, Version_1.VersionStage.RELEASED);
|
|
101
|
-
const version4 = new Version_1.Version(0, 3, 4, Version_1.VersionStage.RELEASED);
|
|
102
|
-
const versions = [version1, version2, version3, version4];
|
|
103
|
-
const latest = Version_1.Version.GetLatestWithMajor(versions, 0);
|
|
104
|
-
expect(latest).toEqual(version4);
|
|
105
|
-
});
|
|
106
|
-
it('Returns undefined if there are no majors that match', () => {
|
|
107
|
-
const version1 = new Version_1.Version(2, 2, 3, Version_1.VersionStage.RELEASED);
|
|
108
|
-
const version2 = new Version_1.Version(0, 2, 3, Version_1.VersionStage.RELEASED);
|
|
109
|
-
const version3 = new Version_1.Version(1, 2, 4, Version_1.VersionStage.RELEASED);
|
|
110
|
-
const version4 = new Version_1.Version(0, 3, 4, Version_1.VersionStage.RELEASED);
|
|
111
|
-
const versions = [version1, version2, version3, version4];
|
|
112
|
-
const latest = Version_1.Version.GetLatestWithMajor(versions, 4);
|
|
113
|
-
expect(latest).toBeUndefined();
|
|
114
|
-
});
|
|
115
|
-
it('Gets the latest major regardless of stage', () => {
|
|
116
|
-
const version1 = new Version_1.Version(2, 2, 3, Version_1.VersionStage.ALPHA);
|
|
117
|
-
const version2 = new Version_1.Version(0, 2, 3, Version_1.VersionStage.BETA);
|
|
118
|
-
const version3 = new Version_1.Version(1, 2, 4, Version_1.VersionStage.ALPHA);
|
|
119
|
-
const version4 = new Version_1.Version(0, 3, 4, Version_1.VersionStage.BETA);
|
|
120
|
-
const versions = [version1, version2, version3, version4];
|
|
121
|
-
const latest = Version_1.Version.GetLatestWithMajor(versions, 0);
|
|
122
|
-
expect(latest).toEqual(version4);
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
describe('Get the latest major/minor', () => {
|
|
126
|
-
it('Get the latest major/minor combo', () => {
|
|
127
|
-
const version1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.RELEASED);
|
|
128
|
-
const version2 = new Version_1.Version(0, 2, 3, Version_1.VersionStage.RELEASED);
|
|
129
|
-
const version3 = new Version_1.Version(1, 2, 4, Version_1.VersionStage.RELEASED);
|
|
130
|
-
const version4 = new Version_1.Version(0, 3, 4, Version_1.VersionStage.RELEASED);
|
|
131
|
-
const versions = [version1, version2, version3, version4];
|
|
132
|
-
const latest = Version_1.Version.GetLatestWithMajorMinor(versions, 1, 2);
|
|
133
|
-
expect(latest).toEqual(version3);
|
|
134
|
-
});
|
|
135
|
-
it('Returns undefined if there are no major/minor combos', () => {
|
|
136
|
-
const version1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.RELEASED);
|
|
137
|
-
const version2 = new Version_1.Version(0, 2, 3, Version_1.VersionStage.RELEASED);
|
|
138
|
-
const version3 = new Version_1.Version(1, 2, 4, Version_1.VersionStage.RELEASED);
|
|
139
|
-
const version4 = new Version_1.Version(0, 3, 4, Version_1.VersionStage.RELEASED);
|
|
140
|
-
const versions = [version1, version2, version3, version4];
|
|
141
|
-
const latest = Version_1.Version.GetLatestWithMajorMinor(versions, 1, 3);
|
|
142
|
-
expect(latest).toBeUndefined();
|
|
143
|
-
});
|
|
144
|
-
it('Get the latest major/minor combo regardless of stage', () => {
|
|
145
|
-
const version1 = new Version_1.Version(1, 2, 2, Version_1.VersionStage.RELEASED);
|
|
146
|
-
const version2 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.BETA);
|
|
147
|
-
const version3 = new Version_1.Version(1, 2, 4, Version_1.VersionStage.ALPHA);
|
|
148
|
-
const versions = [version1, version2, version3];
|
|
149
|
-
const latest = Version_1.Version.GetLatestWithMajorMinor(versions, 1, 2);
|
|
150
|
-
expect(latest).toEqual(version3);
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
describe('Version from string', () => {
|
|
154
|
-
it('Forms the version from string', () => {
|
|
155
|
-
const version = Version_1.Version.FromString('1.2.3');
|
|
156
|
-
expect(version.major).toEqual(1);
|
|
157
|
-
expect(version.minor).toEqual(2);
|
|
158
|
-
expect(version.patch).toEqual(3);
|
|
159
|
-
expect(version.label).toBeUndefined();
|
|
160
|
-
expect(version.stage).toEqual(Version_1.VersionStage.RELEASED);
|
|
161
|
-
});
|
|
162
|
-
it('Gets the alpha stage from the string', () => {
|
|
163
|
-
const version = Version_1.Version.FromString('1.2.3-alpha');
|
|
164
|
-
expect(version.major).toEqual(1);
|
|
165
|
-
expect(version.minor).toEqual(2);
|
|
166
|
-
expect(version.patch).toEqual(3);
|
|
167
|
-
expect(version.label).toBeUndefined();
|
|
168
|
-
expect(version.stage).toEqual(Version_1.VersionStage.ALPHA);
|
|
169
|
-
});
|
|
170
|
-
it('Gets the alpha stage and label from the string', () => {
|
|
171
|
-
const version = Version_1.Version.FromString('1.2.3-alpha-your-mom');
|
|
172
|
-
expect(version.major).toEqual(1);
|
|
173
|
-
expect(version.minor).toEqual(2);
|
|
174
|
-
expect(version.patch).toEqual(3);
|
|
175
|
-
expect(version.label).toEqual('your-mom');
|
|
176
|
-
expect(version.stage).toEqual(Version_1.VersionStage.ALPHA);
|
|
177
|
-
});
|
|
178
|
-
it('Gets the beta stage from the string', () => {
|
|
179
|
-
const version = Version_1.Version.FromString('1.2.3-beta');
|
|
180
|
-
expect(version.major).toEqual(1);
|
|
181
|
-
expect(version.minor).toEqual(2);
|
|
182
|
-
expect(version.patch).toEqual(3);
|
|
183
|
-
expect(version.label).toBeUndefined();
|
|
184
|
-
expect(version.stage).toEqual(Version_1.VersionStage.BETA);
|
|
185
|
-
});
|
|
186
|
-
it('Gets the beta stage and label from the string', () => {
|
|
187
|
-
const version = Version_1.Version.FromString('1.2.3-beta-your-mom');
|
|
188
|
-
expect(version.major).toEqual(1);
|
|
189
|
-
expect(version.minor).toEqual(2);
|
|
190
|
-
expect(version.patch).toEqual(3);
|
|
191
|
-
expect(version.label).toEqual('your-mom');
|
|
192
|
-
expect(version.stage).toEqual(Version_1.VersionStage.BETA);
|
|
193
|
-
});
|
|
194
|
-
it('Gets the label for a released stage from the string', () => {
|
|
195
|
-
const version = Version_1.Version.FromString('1.2.3-yo');
|
|
196
|
-
expect(version.major).toEqual(1);
|
|
197
|
-
expect(version.minor).toEqual(2);
|
|
198
|
-
expect(version.patch).toEqual(3);
|
|
199
|
-
expect(version.label).toEqual('yo');
|
|
200
|
-
expect(version.stage).toEqual(Version_1.VersionStage.RELEASED);
|
|
201
|
-
});
|
|
202
|
-
it('Forms the version from string with a hyphenated label', () => {
|
|
203
|
-
const version = Version_1.Version.FromString('1.2.3-your-mom');
|
|
204
|
-
expect(version.major).toEqual(1);
|
|
205
|
-
expect(version.minor).toEqual(2);
|
|
206
|
-
expect(version.patch).toEqual(3);
|
|
207
|
-
expect(version.label).toEqual('your-mom');
|
|
208
|
-
expect(version.stage).toEqual(Version_1.VersionStage.RELEASED);
|
|
209
|
-
});
|
|
210
|
-
it('Throws if there are not enough parts', () => {
|
|
211
|
-
expect.assertions(1);
|
|
212
|
-
try {
|
|
213
|
-
Version_1.Version.FromString('1.2');
|
|
214
|
-
}
|
|
215
|
-
catch (e) {
|
|
216
|
-
expect(e).not.toBeUndefined();
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
it('Throws if there are too many parts', () => {
|
|
220
|
-
expect.assertions(1);
|
|
221
|
-
try {
|
|
222
|
-
Version_1.Version.FromString('1.2.3.4');
|
|
223
|
-
}
|
|
224
|
-
catch (e) {
|
|
225
|
-
expect(e).not.toBeUndefined();
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
it('Throws if major is not a number', () => {
|
|
229
|
-
expect.assertions(1);
|
|
230
|
-
try {
|
|
231
|
-
Version_1.Version.FromString('boo.2.3');
|
|
232
|
-
}
|
|
233
|
-
catch (e) {
|
|
234
|
-
expect(e).not.toBeUndefined();
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
it('Throws if minor is not a number', () => {
|
|
238
|
-
expect.assertions(1);
|
|
239
|
-
try {
|
|
240
|
-
Version_1.Version.FromString('1.boo.3');
|
|
241
|
-
}
|
|
242
|
-
catch (e) {
|
|
243
|
-
expect(e).not.toBeUndefined();
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
it('Throws if patch is not a number', () => {
|
|
247
|
-
expect.assertions(1);
|
|
248
|
-
try {
|
|
249
|
-
Version_1.Version.FromString('1.2.boo');
|
|
250
|
-
}
|
|
251
|
-
catch (e) {
|
|
252
|
-
expect(e).not.toBeUndefined();
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
describe('Testing are equal', () => {
|
|
257
|
-
it('Returns true if equal', () => {
|
|
258
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
259
|
-
const v2 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
260
|
-
expect(Version_1.Version.AreEqual(v1, v2)).toEqual(true);
|
|
261
|
-
});
|
|
262
|
-
it('Returns false if the majors are different', () => {
|
|
263
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
264
|
-
const v2 = new Version_1.Version(2, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
265
|
-
expect(Version_1.Version.AreEqual(v1, v2)).toEqual(false);
|
|
266
|
-
});
|
|
267
|
-
it('Returns false if the minors are different', () => {
|
|
268
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
269
|
-
const v2 = new Version_1.Version(1, 1, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
270
|
-
expect(Version_1.Version.AreEqual(v1, v2)).toEqual(false);
|
|
271
|
-
});
|
|
272
|
-
it('Returns false if the patches are different', () => {
|
|
273
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
274
|
-
const v2 = new Version_1.Version(1, 2, 2, Version_1.VersionStage.ALPHA, 'yo');
|
|
275
|
-
expect(Version_1.Version.AreEqual(v1, v2)).toEqual(false);
|
|
276
|
-
});
|
|
277
|
-
it('Returns false if the stages are different', () => {
|
|
278
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
279
|
-
const v2 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.BETA, 'yo');
|
|
280
|
-
expect(Version_1.Version.AreEqual(v1, v2)).toEqual(false);
|
|
281
|
-
});
|
|
282
|
-
it('Returns false if the labels are different', () => {
|
|
283
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
284
|
-
const v2 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA);
|
|
285
|
-
expect(Version_1.Version.AreEqual(v1, v2)).toEqual(false);
|
|
286
|
-
});
|
|
287
|
-
});
|
|
288
|
-
describe('Testing for a newer version', () => {
|
|
289
|
-
it('Returns true if the major version is larger', () => {
|
|
290
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
291
|
-
const v2 = new Version_1.Version(2, 2, 3, Version_1.VersionStage.BETA);
|
|
292
|
-
expect(Version_1.Version.IsNewerVersion(v1, v2)).toEqual(true);
|
|
293
|
-
});
|
|
294
|
-
it('Returns true if the minor version is larger', () => {
|
|
295
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
296
|
-
const v2 = new Version_1.Version(1, 3, 3, Version_1.VersionStage.BETA);
|
|
297
|
-
expect(Version_1.Version.IsNewerVersion(v1, v2)).toEqual(true);
|
|
298
|
-
});
|
|
299
|
-
it('Returns true if the patch version is larger', () => {
|
|
300
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
301
|
-
const v2 = new Version_1.Version(1, 2, 4, Version_1.VersionStage.BETA);
|
|
302
|
-
expect(Version_1.Version.IsNewerVersion(v1, v2)).toEqual(true);
|
|
303
|
-
});
|
|
304
|
-
it('Returns false if equal', () => {
|
|
305
|
-
const v1 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.ALPHA, 'yo');
|
|
306
|
-
const v2 = new Version_1.Version(1, 2, 3, Version_1.VersionStage.BETA);
|
|
307
|
-
expect(Version_1.Version.IsNewerVersion(v1, v2)).toEqual(false);
|
|
308
|
-
});
|
|
309
|
-
});
|
|
310
|
-
//# sourceMappingURL=Version.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Version.test.js","sourceRoot":"","sources":["../../../src/ValueObjects/Version.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { Version, VersionStage } from './Version';\r\n\r\ntest('Initialization', () => {\r\n const version = new Version(1, 2, 3, VersionStage.BETA, 'yo');\r\n expect(version.major).toEqual(1);\r\n expect(version.minor).toEqual(2);\r\n expect(version.patch).toEqual(3);\r\n expect(version.stage).toEqual(VersionStage.BETA);\r\n expect(version.label).toEqual('yo');\r\n});\r\n\r\ntest('Without a label', () => {\r\n const version = new Version(1, 2, 3, VersionStage.ALPHA);\r\n expect(version.major).toEqual(1);\r\n expect(version.minor).toEqual(2);\r\n expect(version.patch).toEqual(3);\r\n expect(version.stage).toEqual(VersionStage.ALPHA);\r\n expect(version.label).toBeUndefined();\r\n});\r\n\r\ndescribe('Version strings', () => {\r\n it('Shows alpha after the version', () => {\r\n const version = new Version(1, 2, 3, VersionStage.ALPHA);\r\n expect(version.displayString).toEqual('1.2.3-alpha');\r\n });\r\n\r\n it('Appends the label after alpha', () => {\r\n const version = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n expect(version.displayString).toEqual('1.2.3-alpha-yo');\r\n });\r\n\r\n it('Shows beta after the version', () => {\r\n const version = new Version(1, 2, 3, VersionStage.BETA);\r\n expect(version.displayString).toEqual('1.2.3-beta');\r\n });\r\n\r\n it('Appends the label after beta', () => {\r\n const version = new Version(1, 2, 3, VersionStage.BETA, 'yo');\r\n expect(version.displayString).toEqual('1.2.3-beta-yo');\r\n });\r\n\r\n it('Does not show a release string', () => {\r\n const version = new Version(1, 2, 3, VersionStage.RELEASED);\r\n expect(version.displayString).toEqual('1.2.3');\r\n });\r\n\r\n it('Appends the label after version for release', () => {\r\n const version = new Version(1, 2, 3, VersionStage.RELEASED, 'yo');\r\n expect(version.displayString).toEqual('1.2.3-yo');\r\n });\r\n});\r\n\r\ndescribe('Version strings', () => {\r\n it('Returns the stripped string for a release without label', () => {\r\n const version = new Version(1, 2, 3, VersionStage.RELEASED);\r\n expect(version.baseVersionString).toEqual('1.2.3');\r\n });\r\n\r\n it('Returns the stripped string for a release with a label', () => {\r\n const version = new Version(1, 2, 3, VersionStage.RELEASED, 'yo');\r\n expect(version.baseVersionString).toEqual('1.2.3');\r\n });\r\n\r\n it('Returns the stripped string for an alpha without label', () => {\r\n const version = new Version(1, 2, 3, VersionStage.ALPHA);\r\n expect(version.baseVersionString).toEqual('1.2.3');\r\n });\r\n\r\n it('Returns the stripped string for an alpha with a label', () => {\r\n const version = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n expect(version.baseVersionString).toEqual('1.2.3');\r\n });\r\n\r\n it('Returns the stripped string for a beta without label', () => {\r\n const version = new Version(1, 2, 3, VersionStage.BETA);\r\n expect(version.baseVersionString).toEqual('1.2.3');\r\n });\r\n\r\n it('Returns the stripped string for a beta with a label', () => {\r\n const version = new Version(1, 2, 3, VersionStage.BETA, 'yo');\r\n expect(version.baseVersionString).toEqual('1.2.3');\r\n });\r\n});\r\n\r\ndescribe('Getting the latest from a list', () => {\r\n it('Gets the latest from list', () => {\r\n const version1 = new Version(1, 2, 3, VersionStage.RELEASED);\r\n const version2 = new Version(0, 2, 3, VersionStage.RELEASED);\r\n const version3 = new Version(1, 2, 4, VersionStage.RELEASED);\r\n const version4 = new Version(0, 0, 4, VersionStage.RELEASED);\r\n const versions = [version1, version2, version3, version4];\r\n\r\n const latest = Version.GetLatest(versions);\r\n\r\n expect(latest).toEqual(version3);\r\n });\r\n\r\n it('Returns the latest regardless of the stage', () => {\r\n const version1 = new Version(1, 2, 3, VersionStage.ALPHA);\r\n const version2 = new Version(0, 2, 3, VersionStage.BETA);\r\n const version3 = new Version(1, 2, 4, VersionStage.ALPHA);\r\n const version4 = new Version(0, 0, 4, VersionStage.BETA);\r\n const versions = [version1, version2, version3, version4];\r\n\r\n const latest = Version.GetLatest(versions);\r\n\r\n expect(latest).toEqual(version3);\r\n });\r\n\r\n it('Returns undefined if the list is empty', () => {\r\n const latest = Version.GetLatest([]);\r\n expect(latest).toBeUndefined();\r\n });\r\n});\r\n\r\ndescribe('Getting the latest major', () => {\r\n it('Gets the latest major', () => {\r\n const version1 = new Version(2, 2, 3, VersionStage.RELEASED);\r\n const version2 = new Version(0, 2, 3, VersionStage.RELEASED);\r\n const version3 = new Version(1, 2, 4, VersionStage.RELEASED);\r\n const version4 = new Version(0, 3, 4, VersionStage.RELEASED);\r\n const versions = [version1, version2, version3, version4];\r\n\r\n const latest = Version.GetLatestWithMajor(versions, 0);\r\n\r\n expect(latest).toEqual(version4);\r\n });\r\n\r\n it('Returns undefined if there are no majors that match', () => {\r\n const version1 = new Version(2, 2, 3, VersionStage.RELEASED);\r\n const version2 = new Version(0, 2, 3, VersionStage.RELEASED);\r\n const version3 = new Version(1, 2, 4, VersionStage.RELEASED);\r\n const version4 = new Version(0, 3, 4, VersionStage.RELEASED);\r\n const versions = [version1, version2, version3, version4];\r\n\r\n const latest = Version.GetLatestWithMajor(versions, 4);\r\n\r\n expect(latest).toBeUndefined();\r\n });\r\n\r\n it('Gets the latest major regardless of stage', () => {\r\n const version1 = new Version(2, 2, 3, VersionStage.ALPHA);\r\n const version2 = new Version(0, 2, 3, VersionStage.BETA);\r\n const version3 = new Version(1, 2, 4, VersionStage.ALPHA);\r\n const version4 = new Version(0, 3, 4, VersionStage.BETA);\r\n const versions = [version1, version2, version3, version4];\r\n\r\n const latest = Version.GetLatestWithMajor(versions, 0);\r\n\r\n expect(latest).toEqual(version4);\r\n });\r\n});\r\n\r\ndescribe('Get the latest major/minor', () => {\r\n it('Get the latest major/minor combo', () => {\r\n const version1 = new Version(1, 2, 3, VersionStage.RELEASED);\r\n const version2 = new Version(0, 2, 3, VersionStage.RELEASED);\r\n const version3 = new Version(1, 2, 4, VersionStage.RELEASED);\r\n const version4 = new Version(0, 3, 4, VersionStage.RELEASED);\r\n const versions = [version1, version2, version3, version4];\r\n\r\n const latest = Version.GetLatestWithMajorMinor(versions, 1, 2);\r\n\r\n expect(latest).toEqual(version3);\r\n });\r\n\r\n it('Returns undefined if there are no major/minor combos', () => {\r\n const version1 = new Version(1, 2, 3, VersionStage.RELEASED);\r\n const version2 = new Version(0, 2, 3, VersionStage.RELEASED);\r\n const version3 = new Version(1, 2, 4, VersionStage.RELEASED);\r\n const version4 = new Version(0, 3, 4, VersionStage.RELEASED);\r\n const versions = [version1, version2, version3, version4];\r\n\r\n const latest = Version.GetLatestWithMajorMinor(versions, 1, 3);\r\n\r\n expect(latest).toBeUndefined();\r\n });\r\n\r\n it('Get the latest major/minor combo regardless of stage', () => {\r\n const version1 = new Version(1, 2, 2, VersionStage.RELEASED);\r\n const version2 = new Version(1, 2, 3, VersionStage.BETA);\r\n const version3 = new Version(1, 2, 4, VersionStage.ALPHA);\r\n const versions = [version1, version2, version3];\r\n\r\n const latest = Version.GetLatestWithMajorMinor(versions, 1, 2);\r\n\r\n expect(latest).toEqual(version3);\r\n });\r\n});\r\n\r\ndescribe('Version from string', () => {\r\n it('Forms the version from string', () => {\r\n const version = Version.FromString('1.2.3');\r\n\r\n expect(version.major).toEqual(1);\r\n expect(version.minor).toEqual(2);\r\n expect(version.patch).toEqual(3);\r\n expect(version.label).toBeUndefined();\r\n expect(version.stage).toEqual(VersionStage.RELEASED);\r\n });\r\n\r\n it('Gets the alpha stage from the string', () => {\r\n const version = Version.FromString('1.2.3-alpha');\r\n\r\n expect(version.major).toEqual(1);\r\n expect(version.minor).toEqual(2);\r\n expect(version.patch).toEqual(3);\r\n expect(version.label).toBeUndefined();\r\n expect(version.stage).toEqual(VersionStage.ALPHA);\r\n });\r\n\r\n it('Gets the alpha stage and label from the string', () => {\r\n const version = Version.FromString('1.2.3-alpha-your-mom');\r\n\r\n expect(version.major).toEqual(1);\r\n expect(version.minor).toEqual(2);\r\n expect(version.patch).toEqual(3);\r\n expect(version.label).toEqual('your-mom');\r\n expect(version.stage).toEqual(VersionStage.ALPHA);\r\n });\r\n\r\n it('Gets the beta stage from the string', () => {\r\n const version = Version.FromString('1.2.3-beta');\r\n\r\n expect(version.major).toEqual(1);\r\n expect(version.minor).toEqual(2);\r\n expect(version.patch).toEqual(3);\r\n expect(version.label).toBeUndefined();\r\n expect(version.stage).toEqual(VersionStage.BETA);\r\n });\r\n\r\n it('Gets the beta stage and label from the string', () => {\r\n const version = Version.FromString('1.2.3-beta-your-mom');\r\n\r\n expect(version.major).toEqual(1);\r\n expect(version.minor).toEqual(2);\r\n expect(version.patch).toEqual(3);\r\n expect(version.label).toEqual('your-mom');\r\n expect(version.stage).toEqual(VersionStage.BETA);\r\n });\r\n\r\n it('Gets the label for a released stage from the string', () => {\r\n const version = Version.FromString('1.2.3-yo');\r\n\r\n expect(version.major).toEqual(1);\r\n expect(version.minor).toEqual(2);\r\n expect(version.patch).toEqual(3);\r\n expect(version.label).toEqual('yo');\r\n expect(version.stage).toEqual(VersionStage.RELEASED);\r\n });\r\n\r\n it('Forms the version from string with a hyphenated label', () => {\r\n const version = Version.FromString('1.2.3-your-mom');\r\n\r\n expect(version.major).toEqual(1);\r\n expect(version.minor).toEqual(2);\r\n expect(version.patch).toEqual(3);\r\n expect(version.label).toEqual('your-mom');\r\n expect(version.stage).toEqual(VersionStage.RELEASED);\r\n });\r\n\r\n it('Throws if there are not enough parts', () => {\r\n expect.assertions(1);\r\n\r\n try {\r\n Version.FromString('1.2');\r\n } catch (e) {\r\n expect(e).not.toBeUndefined();\r\n }\r\n });\r\n\r\n it('Throws if there are too many parts', () => {\r\n expect.assertions(1);\r\n try {\r\n Version.FromString('1.2.3.4');\r\n } catch (e) {\r\n expect(e).not.toBeUndefined();\r\n }\r\n });\r\n\r\n it('Throws if major is not a number', () => {\r\n expect.assertions(1);\r\n try {\r\n Version.FromString('boo.2.3');\r\n } catch (e) {\r\n expect(e).not.toBeUndefined();\r\n }\r\n });\r\n\r\n it('Throws if minor is not a number', () => {\r\n expect.assertions(1);\r\n try {\r\n Version.FromString('1.boo.3');\r\n } catch (e) {\r\n expect(e).not.toBeUndefined();\r\n }\r\n });\r\n\r\n it('Throws if patch is not a number', () => {\r\n expect.assertions(1);\r\n try {\r\n Version.FromString('1.2.boo');\r\n } catch (e) {\r\n expect(e).not.toBeUndefined();\r\n }\r\n });\r\n});\r\n\r\ndescribe('Testing are equal', () => {\r\n it('Returns true if equal', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n expect(Version.AreEqual(v1, v2)).toEqual(true);\r\n });\r\n\r\n it('Returns false if the majors are different', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(2, 2, 3, VersionStage.ALPHA, 'yo');\r\n expect(Version.AreEqual(v1, v2)).toEqual(false);\r\n });\r\n\r\n it('Returns false if the minors are different', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(1, 1, 3, VersionStage.ALPHA, 'yo');\r\n expect(Version.AreEqual(v1, v2)).toEqual(false);\r\n });\r\n\r\n it('Returns false if the patches are different', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(1, 2, 2, VersionStage.ALPHA, 'yo');\r\n expect(Version.AreEqual(v1, v2)).toEqual(false);\r\n });\r\n\r\n it('Returns false if the stages are different', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(1, 2, 3, VersionStage.BETA, 'yo');\r\n expect(Version.AreEqual(v1, v2)).toEqual(false);\r\n });\r\n\r\n it('Returns false if the labels are different', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(1, 2, 3, VersionStage.ALPHA);\r\n expect(Version.AreEqual(v1, v2)).toEqual(false);\r\n });\r\n});\r\n\r\ndescribe('Testing for a newer version', () => {\r\n it('Returns true if the major version is larger', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(2, 2, 3, VersionStage.BETA);\r\n expect(Version.IsNewerVersion(v1, v2)).toEqual(true);\r\n });\r\n\r\n it('Returns true if the minor version is larger', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(1, 3, 3, VersionStage.BETA);\r\n expect(Version.IsNewerVersion(v1, v2)).toEqual(true);\r\n });\r\n\r\n it('Returns true if the patch version is larger', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(1, 2, 4, VersionStage.BETA);\r\n expect(Version.IsNewerVersion(v1, v2)).toEqual(true);\r\n });\r\n\r\n it('Returns false if equal', () => {\r\n const v1 = new Version(1, 2, 3, VersionStage.ALPHA, 'yo');\r\n const v2 = new Version(1, 2, 3, VersionStage.BETA);\r\n expect(Version.IsNewerVersion(v1, v2)).toEqual(false);\r\n });\r\n});\r\n"]}
|