1+ import { Vector3DSchema } from "@mat3ra/esse/dist/js/types" ;
12import { expect } from "chai" ;
23
3- import { RoundedVector3D , Vector3D } from "../../src/js/vector " ;
4+ import { RoundedVector3D , Vector3D } from "../../src/js" ;
45
5- const VECTOR_FLOAT : [ number , number , number ] = [ 1.23456789 , 2.345678901 , 3.456789012 ] ;
6+ const VECTOR_FLOAT : Vector3DSchema = [ 1.23456789 , 2.345678901 , 3.456789012 ] ;
67const VECTOR_FLOAT_NORM = 4.3561172682906 ;
78const FLOAT_PRECISION = 1e-8 ;
89
9- const VECTOR_FLOAT_DIFFERENT_WITHIN_TOL : [ number , number , number ] = [
10- 1.23456789999 , 2.345678901 , 3.456789012 ,
11- ] ;
12- const VECTOR_FLOAT_DIFFERENT_OUTSIDE_TOL : [ number , number , number ] = [
13- 1.2345699999 , 2.345678901 , 3.456789012 ,
14- ] ;
10+ const VECTOR_FLOAT_DIFFERENT_WITHIN_TOL : Vector3DSchema = [ 1.23456789999 , 2.345678901 , 3.456789012 ] ;
11+ const VECTOR_FLOAT_DIFFERENT_OUTSIDE_TOL : Vector3DSchema = [ 1.2345699999 , 2.345678901 , 3.456789012 ] ;
1512
16- const VECTOR_FLOAT_ROUNDED_4 : [ number , number , number ] = [ 1.2346 , 2.3457 , 3.4568 ] ;
17- const VECTOR_FLOAT_ROUNDED_3 : [ number , number , number ] = [ 1.235 , 2.346 , 3.457 ] ;
13+ const VECTOR_FLOAT_ROUNDED_4 : Vector3DSchema = [ 1.2346 , 2.3457 , 3.4568 ] ;
14+ const VECTOR_FLOAT_ROUNDED_3 : Vector3DSchema = [ 1.235 , 2.346 , 3.457 ] ;
1815
1916describe ( "Vector3D" , ( ) => {
2017 it ( "should do init and value access" , ( ) => {
@@ -44,6 +41,14 @@ describe("Vector3D", () => {
4441 const vector = new Vector3D ( VECTOR_FLOAT ) ;
4542 expect ( Math . abs ( vector . norm - VECTOR_FLOAT_NORM ) ) . to . be . lessThan ( FLOAT_PRECISION ) ;
4643 } ) ;
44+
45+ it ( "should translate vector" , ( ) => {
46+ const vector = new Vector3D ( VECTOR_FLOAT ) ;
47+ const translationVector3D = new Vector3D ( [ 1 , 1 , 1 ] ) ;
48+ const expectedTranslation = [ 2.23456789 , 3.345678901 , 4.456789012 ] ;
49+ vector . translateByVector ( translationVector3D ) ;
50+ expect ( vector . value ) . to . deep . equal ( expectedTranslation ) ;
51+ } ) ;
4752} ) ;
4853
4954describe ( "RoundedVector3D" , ( ) => {
@@ -57,18 +62,18 @@ describe("RoundedVector3D", () => {
5762 const vector = new RoundedVector3D ( VECTOR_FLOAT ) ;
5863
5964 expect ( vector . toJSON ( ) ) . to . deep . equal ( VECTOR_FLOAT_ROUNDED_4 ) ;
60- expect ( vector . value_rounded ) . to . deep . equal ( VECTOR_FLOAT_ROUNDED_4 ) ;
61- expect ( vector . x_rounded ) . to . be . deep . equal ( VECTOR_FLOAT_ROUNDED_4 [ 0 ] ) ;
62- expect ( vector . y_rounded ) . to . be . deep . equal ( VECTOR_FLOAT_ROUNDED_4 [ 1 ] ) ;
63- expect ( vector . z_rounded ) . to . be . deep . equal ( VECTOR_FLOAT_ROUNDED_4 [ 2 ] ) ;
65+ expect ( vector . valueRounded ) . to . deep . equal ( VECTOR_FLOAT_ROUNDED_4 ) ;
66+ expect ( vector . xRounded ) . to . be . deep . equal ( VECTOR_FLOAT_ROUNDED_4 [ 0 ] ) ;
67+ expect ( vector . yRounded ) . to . be . deep . equal ( VECTOR_FLOAT_ROUNDED_4 [ 1 ] ) ;
68+ expect ( vector . zRounded ) . to . be . deep . equal ( VECTOR_FLOAT_ROUNDED_4 [ 2 ] ) ;
6469 } ) ;
6570
6671 it ( "should do serialization with precision 3" , ( ) => {
6772 RoundedVector3D . roundPrecision = 3 ;
6873 const vector = new RoundedVector3D ( VECTOR_FLOAT ) ;
6974
7075 expect ( vector . toJSON ( ) ) . to . deep . equal ( VECTOR_FLOAT_ROUNDED_3 ) ;
71- expect ( vector . value_rounded ) . to . deep . equal ( VECTOR_FLOAT_ROUNDED_3 ) ;
76+ expect ( vector . valueRounded ) . to . deep . equal ( VECTOR_FLOAT_ROUNDED_3 ) ;
7277 } ) ;
7378
7479 it ( "should do equality changes with precision" , ( ) => {
@@ -83,4 +88,12 @@ describe("RoundedVector3D", () => {
8388 expect ( vector . equals ( VECTOR_FLOAT_ROUNDED_4 ) ) . to . equal ( true ) ;
8489 expect ( vector . equals ( VECTOR_FLOAT_ROUNDED_3 ) ) . to . equal ( true ) ;
8590 } ) ;
91+ it ( "should extract rounded norm" , ( ) => {
92+ RoundedVector3D . roundPrecision = 4 ;
93+ const vector = new RoundedVector3D ( VECTOR_FLOAT ) ;
94+ expect ( vector . normRounded ) . to . be . deep . equal ( 4.3561 ) ;
95+
96+ RoundedVector3D . roundPrecision = 3 ;
97+ expect ( vector . normRounded ) . to . be . deep . equal ( 4.356 ) ;
98+ } ) ;
8699} ) ;
0 commit comments