summaryrefslogtreecommitdiff
path: root/tests/unit_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit_tests')
-rw-r--r--tests/unit_tests/test000_TrigonIdentity/launchConversion.sci5
-rw-r--r--tests/unit_tests/test000_TrigonIdentity/scilabcode/mainfunction.sci30
-rw-r--r--tests/unit_tests/test001_LinearRegression/launchConversion.sci5
-rw-r--r--tests/unit_tests/test001_LinearRegression/scilabcode/mainfunction.sci56
-rw-r--r--tests/unit_tests/test002_Symbols/launchConversion.sci5
-rw-r--r--tests/unit_tests/test002_Symbols/scilabcode/mainfunction.sci21
-rw-r--r--tests/unit_tests/test003_VerySimple/launchConversion.sci5
-rw-r--r--tests/unit_tests/test003_VerySimple/scilabcode/mainfunction.sci10
-rw-r--r--tests/unit_tests/test004_Filter/scilabcode/high_pass.sci16
-rw-r--r--tests/unit_tests/test004_Filter/scilabcode/main.sci15
-rw-r--r--tests/unit_tests/test004_LinearCombination/launchConversion.sci5
-rw-r--r--tests/unit_tests/test004_LinearCombination/scilabcode/mainfunction.sci16
-rw-r--r--tests/unit_tests/test005_LinearCombinationNoTempVars/launchConversion.sci5
-rw-r--r--tests/unit_tests/test005_LinearCombinationNoTempVars/scilabcode/LinComb.sci16
-rw-r--r--tests/unit_tests/test005_LinearCombinationNoTempVars/scilabcode/mainfunction.sci21
-rw-r--r--tests/unit_tests/test011_InsExtfunctions/launchConversion.sci5
-rw-r--r--tests/unit_tests/test011_InsExtfunctions/scilabcode/mainfunction.sci24
-rw-r--r--tests/unit_tests/test012_OpMinus/launchConversion.sci5
-rw-r--r--tests/unit_tests/test012_OpMinus/scilabcode/mainfunction.sci10
-rw-r--r--tests/unit_tests/test013_TestOpRcCC/launchConversion.sci5
-rw-r--r--tests/unit_tests/test013_TestOpRcCC/scilabcode/mainfunction.sci15
-rw-r--r--tests/unit_tests/test018_NestedWhile/launchConversion.sci5
-rw-r--r--tests/unit_tests/test018_NestedWhile/scilabcode/mainfunction.sci19
-rw-r--r--tests/unit_tests/test024_test_if_pi/launchConversion.sci5
-rw-r--r--tests/unit_tests/test024_test_if_pi/scilabcode/mainfunction.sci24
-rw-r--r--tests/unit_tests/test038_FindI2O1Float/launchConversion.sci5
-rw-r--r--tests/unit_tests/test038_FindI2O1Float/scilabcode/mainfunction.sci57
-rw-r--r--tests/unit_tests/test061_SumShortTest/launchConversion.sci5
-rw-r--r--tests/unit_tests/test061_SumShortTest/scilabcode/mainfunction.sci22
-rw-r--r--tests/unit_tests/test064_OpMinusFloatComplex/launchConversion.sci5
-rw-r--r--tests/unit_tests/test064_OpMinusFloatComplex/scilabcode/mainfunction.sci43
-rw-r--r--tests/unit_tests/test081_twoFunctions/scilabcode/fun1.sci10
-rw-r--r--tests/unit_tests/test081_twoFunctions/scilabcode/fun2.sci14
-rw-r--r--tests/unit_tests/test081_twoFunctions/scilabcode/mainfunction.sci12
-rw-r--r--tests/unit_tests/test088_SimpleFor/launchConversion.sci4
-rw-r--r--tests/unit_tests/test088_SimpleFor/scilabcode/mainfunction.sci17
-rw-r--r--tests/unit_tests/test089_SimpleFor/launchConversion.sci5
-rw-r--r--tests/unit_tests/test089_SimpleFor/scilabcode/mainfunction.sci17
-rw-r--r--tests/unit_tests/test100_recursivefunctions/launchConversion.sci5
-rw-r--r--tests/unit_tests/test100_recursivefunctions/scilabcode/IterativePower.sci17
-rw-r--r--tests/unit_tests/test100_recursivefunctions/scilabcode/RecursivePower.sci23
-rw-r--r--tests/unit_tests/test100_recursivefunctions/scilabcode/mainfunction.sci57
-rw-r--r--tests/unit_tests/test101_SimpleStringConcatenation/launchConversion.sci5
-rw-r--r--tests/unit_tests/test101_SimpleStringConcatenation/scilabcode/mainfunction.sci18
-rw-r--r--tests/unit_tests/test104_ScalarProduct/launchConversion.sci5
-rw-r--r--tests/unit_tests/test104_ScalarProduct/scilabcode/mainfunction.sci10
-rw-r--r--tests/unit_tests/test200_malloc/launchConversion.sci5
-rw-r--r--tests/unit_tests/test200_malloc/scilabcode/mainfunction.sci18
-rw-r--r--tests/unit_tests/test200_malloc/scilabcode/myinit.sci13
-rw-r--r--tests/unit_tests/test200_malloc/scilabcode/myzeros.sci11
-rw-r--r--tests/unit_tests/test301_cchirp/launchConversion.sci5
-rw-r--r--tests/unit_tests/test301_cchirp/scilabcode/mainfunction.sci59
-rw-r--r--tests/unit_tests/test301_cchirp/scilabcode/myconvol.sci31
-rw-r--r--tests/unit_tests/test305_Moebius/launchConversion.sci5
-rw-r--r--tests/unit_tests/test305_Moebius/scilabcode/XYgrid.sci32
-rw-r--r--tests/unit_tests/test305_Moebius/scilabcode/mainfunction.sci66
-rw-r--r--tests/unit_tests/test600_SimpleFindDouble/launchConversion.sci5
-rw-r--r--tests/unit_tests/test600_SimpleFindDouble/scilabcode/mainfunction.sci17
-rw-r--r--tests/unit_tests/test9999_WorkingDir/scilabcode/mainfunction.sci59
-rw-r--r--tests/unit_tests/test_CDG/D2Q9.sci189
-rw-r--r--tests/unit_tests/test_CDG/cs.sci25
-rw-r--r--tests/unit_tests/test_double_Convol.sci124
-rw-r--r--tests/unit_tests/test_double_Det.sci15
-rw-r--r--tests/unit_tests/test_double_Disp.sci13
-rw-r--r--tests/unit_tests/test_double_Expm.sci9
-rw-r--r--tests/unit_tests/test_double_FFTShift.sci37
-rw-r--r--tests/unit_tests/test_double_Fft.sci172
-rw-r--r--tests/unit_tests/test_double_Find.sci31
-rw-r--r--tests/unit_tests/test_double_IFFT.sci89
-rw-r--r--tests/unit_tests/test_double_Length.sci32
-rw-r--r--tests/unit_tests/test_double_Lev.sci31
-rw-r--r--tests/unit_tests/test_double_Meanf.sci48
-rw-r--r--tests/unit_tests/test_double_OpApex.sci11
-rw-r--r--tests/unit_tests/test_double_OpCc.sci46
-rw-r--r--tests/unit_tests/test_double_OpColon.sci41
-rw-r--r--tests/unit_tests/test_double_OpDotApex.sci11
-rw-r--r--tests/unit_tests/test_double_OpDotBackSlash.sci30
-rw-r--r--tests/unit_tests/test_double_OpDotHat.sci29
-rw-r--r--tests/unit_tests/test_double_OpDotSlash.sci26
-rw-r--r--tests/unit_tests/test_double_OpDotStar.sci26
-rw-r--r--tests/unit_tests/test_double_OpEqual.sci24
-rw-r--r--tests/unit_tests/test_double_OpExt.sci25
-rw-r--r--tests/unit_tests/test_double_OpHat.sci29
-rw-r--r--tests/unit_tests/test_double_OpIns.sci129
-rw-r--r--tests/unit_tests/test_double_OpLogAnd.sci29
-rw-r--r--tests/unit_tests/test_double_OpLogEq.sci33
-rw-r--r--tests/unit_tests/test_double_OpLogGe.sci29
-rw-r--r--tests/unit_tests/test_double_OpLogGt.sci30
-rw-r--r--tests/unit_tests/test_double_OpLogLe.sci29
-rw-r--r--tests/unit_tests/test_double_OpLogLt.sci29
-rw-r--r--tests/unit_tests/test_double_OpLogNe.sci33
-rw-r--r--tests/unit_tests/test_double_OpLogNot.sci23
-rw-r--r--tests/unit_tests/test_double_OpLogOr.sci29
-rw-r--r--tests/unit_tests/test_double_OpMinus.sci45
-rw-r--r--tests/unit_tests/test_double_OpPlus.sci32
-rw-r--r--tests/unit_tests/test_double_OpRc.sci45
-rw-r--r--tests/unit_tests/test_double_OpSlash.sci32
-rw-r--r--tests/unit_tests/test_double_OpStar.sci31
-rw-r--r--tests/unit_tests/test_double_Size.sci41
-rw-r--r--tests/unit_tests/test_double_Spec.sci41
-rw-r--r--tests/unit_tests/test_double_Stdevf.sci45
-rw-r--r--tests/unit_tests/test_double_Trace.sci13
-rw-r--r--tests/unit_tests/test_double_Type.sci8
-rw-r--r--tests/unit_tests/test_double_abs.sci11
-rw-r--r--tests/unit_tests/test_double_acos.sci11
-rw-r--r--tests/unit_tests/test_double_acosh.sci11
-rw-r--r--tests/unit_tests/test_double_asin.sci11
-rw-r--r--tests/unit_tests/test_double_asinh.sci11
-rw-r--r--tests/unit_tests/test_double_atan.sci14
-rw-r--r--tests/unit_tests/test_double_atanh.sci11
-rw-r--r--tests/unit_tests/test_double_ceil.sci11
-rw-r--r--tests/unit_tests/test_double_chol.sci11
-rw-r--r--tests/unit_tests/test_double_conj.sci11
-rw-r--r--tests/unit_tests/test_double_cos.sci11
-rw-r--r--tests/unit_tests/test_double_cosh.sci11
-rw-r--r--tests/unit_tests/test_double_exp.sci11
-rw-r--r--tests/unit_tests/test_double_eye.sci14
-rw-r--r--tests/unit_tests/test_double_fix.sci11
-rw-r--r--tests/unit_tests/test_double_floor.sci11
-rw-r--r--tests/unit_tests/test_double_imag.sci11
-rw-r--r--tests/unit_tests/test_double_int.sci11
-rw-r--r--tests/unit_tests/test_double_inv.sci11
-rw-r--r--tests/unit_tests/test_double_isnan.sci11
-rw-r--r--tests/unit_tests/test_double_log.sci11
-rw-r--r--tests/unit_tests/test_double_log10.sci11
-rw-r--r--tests/unit_tests/test_double_log1p.sci12
-rw-r--r--tests/unit_tests/test_double_max.sci32
-rw-r--r--tests/unit_tests/test_double_mean.sci31
-rw-r--r--tests/unit_tests/test_double_min.sci32
-rw-r--r--tests/unit_tests/test_double_ones.sci14
-rw-r--r--tests/unit_tests/test_double_prod.sci31
-rw-r--r--tests/unit_tests/test_double_rand.sci14
-rw-r--r--tests/unit_tests/test_double_real.sci11
-rw-r--r--tests/unit_tests/test_double_round.sci11
-rw-r--r--tests/unit_tests/test_double_sign.sci11
-rw-r--r--tests/unit_tests/test_double_sin.sci11
-rw-r--r--tests/unit_tests/test_double_sinh.sci11
-rw-r--r--tests/unit_tests/test_double_sqrt.sci11
-rw-r--r--tests/unit_tests/test_double_st_deviation.sci31
-rw-r--r--tests/unit_tests/test_double_sum.sci31
-rw-r--r--tests/unit_tests/test_double_tanh.sci11
-rw-r--r--tests/unit_tests/test_double_variance.sci31
-rw-r--r--tests/unit_tests/test_double_zeros.sci14
-rw-r--r--tests/unit_tests/test_float_Convol.sci125
-rw-r--r--tests/unit_tests/test_float_Det.sci16
-rw-r--r--tests/unit_tests/test_float_Disp.sci14
-rw-r--r--tests/unit_tests/test_float_Expm.sci10
-rw-r--r--tests/unit_tests/test_float_FFTShift.sci38
-rw-r--r--tests/unit_tests/test_float_Fft.sci173
-rw-r--r--tests/unit_tests/test_float_Find.sci32
-rw-r--r--tests/unit_tests/test_float_IFFT.sci90
-rw-r--r--tests/unit_tests/test_float_Length.sci33
-rw-r--r--tests/unit_tests/test_float_Lev.sci32
-rw-r--r--tests/unit_tests/test_float_Meanf.sci49
-rw-r--r--tests/unit_tests/test_float_OpApex.sci12
-rw-r--r--tests/unit_tests/test_float_OpCc.sci47
-rw-r--r--tests/unit_tests/test_float_OpColon.sci42
-rw-r--r--tests/unit_tests/test_float_OpDotApex.sci12
-rw-r--r--tests/unit_tests/test_float_OpDotBackSlas.sci31
-rw-r--r--tests/unit_tests/test_float_OpDotHat.sci30
-rw-r--r--tests/unit_tests/test_float_OpDotSlash.sci27
-rw-r--r--tests/unit_tests/test_float_OpDotStar.sci27
-rw-r--r--tests/unit_tests/test_float_OpEqual.sci25
-rw-r--r--tests/unit_tests/test_float_OpExt.sci26
-rw-r--r--tests/unit_tests/test_float_OpHat.sci30
-rw-r--r--tests/unit_tests/test_float_OpIns.sci130
-rw-r--r--tests/unit_tests/test_float_OpLogAnd.sci38
-rw-r--r--tests/unit_tests/test_float_OpLogEq.sci34
-rw-r--r--tests/unit_tests/test_float_OpLogGe.sci30
-rw-r--r--tests/unit_tests/test_float_OpLogGt.sci31
-rw-r--r--tests/unit_tests/test_float_OpLogLe.sci30
-rw-r--r--tests/unit_tests/test_float_OpLogLt.sci30
-rw-r--r--tests/unit_tests/test_float_OpLogNe.sci34
-rw-r--r--tests/unit_tests/test_float_OpLogNot.sci24
-rw-r--r--tests/unit_tests/test_float_OpLogOr.sci37
-rw-r--r--tests/unit_tests/test_float_OpMinus.sci46
-rw-r--r--tests/unit_tests/test_float_OpPlus.sci49
-rw-r--r--tests/unit_tests/test_float_OpRc.sci46
-rw-r--r--tests/unit_tests/test_float_OpSlash.sci33
-rw-r--r--tests/unit_tests/test_float_OpStar.sci32
-rw-r--r--tests/unit_tests/test_float_Size.sci42
-rw-r--r--tests/unit_tests/test_float_Spec.sci42
-rw-r--r--tests/unit_tests/test_float_Stdevf.sci46
-rw-r--r--tests/unit_tests/test_float_Trace.sci14
-rw-r--r--tests/unit_tests/test_float_Type.sci9
-rw-r--r--tests/unit_tests/test_float_abs.sci12
-rw-r--r--tests/unit_tests/test_float_acos.sci12
-rw-r--r--tests/unit_tests/test_float_acosh.sci12
-rw-r--r--tests/unit_tests/test_float_asin.sci12
-rw-r--r--tests/unit_tests/test_float_asinh.sci12
-rw-r--r--tests/unit_tests/test_float_atan.sci15
-rw-r--r--tests/unit_tests/test_float_atanh.sci12
-rw-r--r--tests/unit_tests/test_float_ceil.sci12
-rw-r--r--tests/unit_tests/test_float_chol.sci12
-rw-r--r--tests/unit_tests/test_float_conj.sci12
-rw-r--r--tests/unit_tests/test_float_cos.sci12
-rw-r--r--tests/unit_tests/test_float_cosh.sci12
-rw-r--r--tests/unit_tests/test_float_exp.sci12
-rw-r--r--tests/unit_tests/test_float_eye.sci15
-rw-r--r--tests/unit_tests/test_float_fix.sci12
-rw-r--r--tests/unit_tests/test_float_floor.sci12
-rw-r--r--tests/unit_tests/test_float_imag.sci12
-rw-r--r--tests/unit_tests/test_float_int.sci12
-rw-r--r--tests/unit_tests/test_float_inv.sci12
-rw-r--r--tests/unit_tests/test_float_isnan.sci12
-rw-r--r--tests/unit_tests/test_float_log.sci12
-rw-r--r--tests/unit_tests/test_float_log10.sci12
-rw-r--r--tests/unit_tests/test_float_log1p.sci13
-rw-r--r--tests/unit_tests/test_float_max.sci17
-rw-r--r--tests/unit_tests/test_float_mean.sci32
-rw-r--r--tests/unit_tests/test_float_min.sci19
-rw-r--r--tests/unit_tests/test_float_ones.sci15
-rw-r--r--tests/unit_tests/test_float_prod.sci32
-rw-r--r--tests/unit_tests/test_float_rand.sci15
-rw-r--r--tests/unit_tests/test_float_real.sci12
-rw-r--r--tests/unit_tests/test_float_round.sci12
-rw-r--r--tests/unit_tests/test_float_sign.sci12
-rw-r--r--tests/unit_tests/test_float_sin.sci12
-rw-r--r--tests/unit_tests/test_float_sinh.sci12
-rw-r--r--tests/unit_tests/test_float_sqrt.sci12
-rw-r--r--tests/unit_tests/test_float_st_deviation.sci32
-rw-r--r--tests/unit_tests/test_float_sum.sci32
-rw-r--r--tests/unit_tests/test_float_tanh.sci12
-rw-r--r--tests/unit_tests/test_float_variance.sci32
-rw-r--r--tests/unit_tests/test_float_zeros.sci15
225 files changed, 5773 insertions, 0 deletions
diff --git a/tests/unit_tests/test000_TrigonIdentity/launchConversion.sci b/tests/unit_tests/test000_TrigonIdentity/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test000_TrigonIdentity/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test000_TrigonIdentity/scilabcode/mainfunction.sci b/tests/unit_tests/test000_TrigonIdentity/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..b19fc009
--- /dev/null
+++ b/tests/unit_tests/test000_TrigonIdentity/scilabcode/mainfunction.sci
@@ -0,0 +1,30 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+// ------------------------------
+// --- Simple Scalar Addition ---
+// ------------------------------
+a = 1;
+b = 2;
+c = 0;
+c = a + b;
+disp(c);
+
+// ------------------------------
+// --- Trigonometric Identity ---
+// ------------------------------
+x = (1:3)' * (4:9);
+y = (sin(x).^2) + (cos(x).^2);
+disp(x);
+disp(y-ones(3,6));
+
+// -------------------------------
+// --- Computation of Distance ---
+// -------------------------------
+// generate a vector w
+w = cos(sin(cos(x*3)*2).* x+ones(3,6).*cos(x-sin(y*2)));
+distxw = sqrt(x.^2 + w.^2);
+disp(distxw);
+endfunction
+
diff --git a/tests/unit_tests/test001_LinearRegression/launchConversion.sci b/tests/unit_tests/test001_LinearRegression/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test001_LinearRegression/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test001_LinearRegression/scilabcode/mainfunction.sci b/tests/unit_tests/test001_LinearRegression/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..13624cfb
--- /dev/null
+++ b/tests/unit_tests/test001_LinearRegression/scilabcode/mainfunction.sci
@@ -0,0 +1,56 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+// Knowing that
+// (1) P * (V^gamma) = C
+// Where
+// P = Pressure
+// V = Volume
+// gamma,C = constants depending on the particular gas used.
+// (2) log10(P) = log10(C) - gamma*log10(V)
+// (3) x = log10(V)
+// (4) y = log10(P)
+// than (2) becomes:
+// y = a + b*x;
+// Where
+// a = log10(C)
+// b = -gamma
+// Then thanks to this transformation it is possible to perform
+// a linear regression to estimate gamma and C!
+
+Volume = [54.3 61.8 72.4 88.7 118.6 194.0];
+Pressure = [61.2 49.5 37.6 28.4 19.2 10.1];
+x = log10(Volume);
+y = log10(Pressure);
+
+a = (sum(y)*sum(x.^2)-sum(x)*sum(x.*y))./(length(x)*sum(x.^2)-sum(x).*sum(x));
+b = (length(x)*sum(x.*y)-sum(x)*sum(y))./(length(x)*sum(x.^2)-sum(x).*sum(x));
+
+// Other way to compute a and b
+beq = sum((x-mean(x)).*(y-mean(y)))./sum((x-mean(x)).^2);
+aeq = mean(y)-mean(x)*beq;
+
+C = 10 .^a;
+gamma = -b;
+
+disp('C')
+disp(C)
+
+disp('gamma');
+disp(gamma);
+
+disp('a');
+disp(a)
+disp('aeq');
+disp(aeq)
+
+disp('b');
+disp(b)
+disp('beq');
+disp(beq)
+
+ //plot(Volume,Pressure);
+ //plot(Volume,(C ./(Volume.^gamma)),'r')
+endfunction
+
diff --git a/tests/unit_tests/test002_Symbols/launchConversion.sci b/tests/unit_tests/test002_Symbols/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test002_Symbols/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test002_Symbols/scilabcode/mainfunction.sci b/tests/unit_tests/test002_Symbols/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..f5d40b0d
--- /dev/null
+++ b/tests/unit_tests/test002_Symbols/scilabcode/mainfunction.sci
@@ -0,0 +1,21 @@
+function mainfunction()
+
+// ---------------------------------------
+// --- Initialization of the operands. ---
+// ---------------------------------------
+
+v1 = %inf;
+v2 = %nan;
+v3 = %T;
+v4 = %F;
+v5 = %pi;
+
+disp(-v1)
+disp(v1+v2)
+disp(v2)
+disp(v3)
+disp(v4)
+disp(v5)
+
+endfunction
+
diff --git a/tests/unit_tests/test003_VerySimple/launchConversion.sci b/tests/unit_tests/test003_VerySimple/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test003_VerySimple/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test003_VerySimple/scilabcode/mainfunction.sci b/tests/unit_tests/test003_VerySimple/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..12cc8944
--- /dev/null
+++ b/tests/unit_tests/test003_VerySimple/scilabcode/mainfunction.sci
@@ -0,0 +1,10 @@
+function mainfunction()
+
+// ---------------------------------------
+// --- Initialization of the operands. ---
+// ---------------------------------------
+powerfactor = 3;
+disp(powerfactor)
+
+endfunction
+
diff --git a/tests/unit_tests/test004_Filter/scilabcode/high_pass.sci b/tests/unit_tests/test004_Filter/scilabcode/high_pass.sci
new file mode 100644
index 00000000..04eea9d7
--- /dev/null
+++ b/tests/unit_tests/test004_Filter/scilabcode/high_pass.sci
@@ -0,0 +1,16 @@
+// Return RC high-pass filter output_signal samples,
+// given input_signal samples,
+// time interval dt,
+// R and C
+//SCI2C: NIN= 4
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= IN(1).SZ(1)
+//SCI2C: OUT(1).SZ(2)= IN(1).SZ(2)
+function output_signal = high_pass(input_signal, dt, R, C)
+ alpha = R * C / (R * C + dt)
+ output_signal(1) = input_signal(1)
+ for i = 2 : size(input_signal, 2)
+ output_signal(i) = alpha * output_signal(i-1) + alpha * (input_signal(i) - input_signal(i-1))
+ end
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test004_Filter/scilabcode/main.sci b/tests/unit_tests/test004_Filter/scilabcode/main.sci
new file mode 100644
index 00000000..832ea120
--- /dev/null
+++ b/tests/unit_tests/test004_Filter/scilabcode/main.sci
@@ -0,0 +1,15 @@
+function main()
+ sup = 500;
+ M = 50 * rand(1,sup);
+ disp("M=")
+ disp(M)
+ //scf(1);
+ //plot(1:sup, M);
+
+
+ N = high_pass(M, 0.1, 1, 1);
+ disp("N=")
+ disp(N);
+ //scf(2);
+ //plot(1:sup, N);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test004_LinearCombination/launchConversion.sci b/tests/unit_tests/test004_LinearCombination/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test004_LinearCombination/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test004_LinearCombination/scilabcode/mainfunction.sci b/tests/unit_tests/test004_LinearCombination/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..d02cdc22
--- /dev/null
+++ b/tests/unit_tests/test004_LinearCombination/scilabcode/mainfunction.sci
@@ -0,0 +1,16 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+s1 = 2; s2 = 3;
+
+a = 2; b = 4;
+
+A = ones(3,4); B = ones(3,4);
+
+C = LinComb(s1,a,s2,b); // s1*a+s2*b
+D = LinComb(s1,A,s2,B); // s1*A+s2*B
+
+disp(C);
+disp(D);
+endfunction
diff --git a/tests/unit_tests/test005_LinearCombinationNoTempVars/launchConversion.sci b/tests/unit_tests/test005_LinearCombinationNoTempVars/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test005_LinearCombinationNoTempVars/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test005_LinearCombinationNoTempVars/scilabcode/LinComb.sci b/tests/unit_tests/test005_LinearCombinationNoTempVars/scilabcode/LinComb.sci
new file mode 100644
index 00000000..9f74b454
--- /dev/null
+++ b/tests/unit_tests/test005_LinearCombinationNoTempVars/scilabcode/LinComb.sci
@@ -0,0 +1,16 @@
+//SCI2C: NIN= 6
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= IN(2).SZ(1)
+//SCI2C: OUT(1).SZ(2)= IN(2).SZ(2)
+
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function z = LinComb(a,x,b,y,t1,t2)
+
+t1 = a*x;
+t2 = b*y;
+z = t1+t2;
+// z = a*x+b*y;
+
+endfunction
diff --git a/tests/unit_tests/test005_LinearCombinationNoTempVars/scilabcode/mainfunction.sci b/tests/unit_tests/test005_LinearCombinationNoTempVars/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..35d5456d
--- /dev/null
+++ b/tests/unit_tests/test005_LinearCombinationNoTempVars/scilabcode/mainfunction.sci
@@ -0,0 +1,21 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+s1 = 2; s2 = 3;
+
+a = 2; b = 4;
+
+A = ones(3,4); B = ones(3,4);
+
+t1 = 0;
+t2 = 0;
+C = LinComb(s1,a,s2,b,t1,t2); // s1*a+s2*b
+
+T1 = A;
+T2 = A;
+D = LinComb(s1,A,s2,B,T1,T2); // s1*A+s2*B
+
+disp(C);
+disp(D);
+endfunction
diff --git a/tests/unit_tests/test011_InsExtfunctions/launchConversion.sci b/tests/unit_tests/test011_InsExtfunctions/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test011_InsExtfunctions/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test011_InsExtfunctions/scilabcode/mainfunction.sci b/tests/unit_tests/test011_InsExtfunctions/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..d50ed6bb
--- /dev/null
+++ b/tests/unit_tests/test011_InsExtfunctions/scilabcode/mainfunction.sci
@@ -0,0 +1,24 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+M1 = 22.3*ones(3,4);
+M2 = 44.5*ones(M1);
+v1 = 1:4;
+s1 = 3;
+
+//[M1(1,1),M1(1,2)] = twooutputs(1);
+
+M1(3,3) = M2(1,3);
+
+M1(5) = 4;
+M1(2,2) = M2(6);
+
+M2(3,2) = s1;
+
+M2(1:4)=11.3*(1:4);
+M2(4:7)=M1(3:6);
+
+disp(M1)
+disp(M2)
+endfunction
diff --git a/tests/unit_tests/test012_OpMinus/launchConversion.sci b/tests/unit_tests/test012_OpMinus/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test012_OpMinus/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test012_OpMinus/scilabcode/mainfunction.sci b/tests/unit_tests/test012_OpMinus/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..555ee296
--- /dev/null
+++ b/tests/unit_tests/test012_OpMinus/scilabcode/mainfunction.sci
@@ -0,0 +1,10 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+s1 = -3;
+a = s1*ones(3,4);
+disp(a)
+b = -a;
+disp(b)
+endfunction
diff --git a/tests/unit_tests/test013_TestOpRcCC/launchConversion.sci b/tests/unit_tests/test013_TestOpRcCC/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test013_TestOpRcCC/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test013_TestOpRcCC/scilabcode/mainfunction.sci b/tests/unit_tests/test013_TestOpRcCC/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..eda20c46
--- /dev/null
+++ b/tests/unit_tests/test013_TestOpRcCC/scilabcode/mainfunction.sci
@@ -0,0 +1,15 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+vr1 = [1 2];
+vr2 = [3 4];
+vc1 = [11;12]
+vc2 = [13;14]
+M1 = [vr1 vr2;vr2 vr1];
+M2 = [vc1 vc2];
+
+disp(M1);
+disp(M2);
+
+endfunction
diff --git a/tests/unit_tests/test018_NestedWhile/launchConversion.sci b/tests/unit_tests/test018_NestedWhile/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test018_NestedWhile/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test018_NestedWhile/scilabcode/mainfunction.sci b/tests/unit_tests/test018_NestedWhile/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..8142e6ff
--- /dev/null
+++ b/tests/unit_tests/test018_NestedWhile/scilabcode/mainfunction.sci
@@ -0,0 +1,19 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+a = 0;
+b = 5;
+while (a+b < 36)
+ disp('a');
+ disp(a);
+ a = a + b;
+ while (b < 9)
+ disp('b');
+ disp(b);
+ b = b + 1;
+ a = a + 1;
+ end
+end
+endfunction
+
diff --git a/tests/unit_tests/test024_test_if_pi/launchConversion.sci b/tests/unit_tests/test024_test_if_pi/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test024_test_if_pi/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test024_test_if_pi/scilabcode/mainfunction.sci b/tests/unit_tests/test024_test_if_pi/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..6b1652fd
--- /dev/null
+++ b/tests/unit_tests/test024_test_if_pi/scilabcode/mainfunction.sci
@@ -0,0 +1,24 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+a=%pi*70;
+b=1;
+c=0;
+M = (1:3)'*(1:5)
+if a<=1
+ c=b;
+ disp(c)
+else
+ if b==10
+ c=5;
+ disp(c)
+ else
+ c=2;
+ disp(c)
+ S = c.^M;
+ disp(S);
+ disp(a)
+ end
+end
+endfunction
diff --git a/tests/unit_tests/test038_FindI2O1Float/launchConversion.sci b/tests/unit_tests/test038_FindI2O1Float/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test038_FindI2O1Float/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test038_FindI2O1Float/scilabcode/mainfunction.sci b/tests/unit_tests/test038_FindI2O1Float/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..789f3b73
--- /dev/null
+++ b/tests/unit_tests/test038_FindI2O1Float/scilabcode/mainfunction.sci
@@ -0,0 +1,57 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+function mainfunction()
+
+s1 = -5.4;
+disp('s1');
+disp(s1);
+
+s2 = 2.2;
+disp('s2');
+disp(s2);
+
+A = ((1.2:0.99:4.9)')*(-2.3:1.1:3.9)
+disp('A = ((1.2:0.99:4.9)'')*(-2.3:1.1:3.9)');
+disp(A);
+
+disp('o1 = -s1 + s2;');
+o1 = -s1 + s2;
+disp(o1);
+
+disp('o1 = -3.4 + 4.5;');
+o1 = -3.4 + 4.5;
+disp(o1);
+
+disp('o2 = -3.4 + A;');
+o2 = -3.4 + A;
+disp(o2);
+
+disp('o3 = A + (-3.4);');
+o3 = A + (-3.4);
+disp(o3);
+
+disp('o4 = A + A;');
+o4 = A + A;
+disp(o4);
+
+disp('o5 = +A;');
+o5 = +A;
+disp(o5);
+
+st0 = '#';
+disp('st0')
+disp(st0)
+
+st1 = 'ciao';
+disp('st1')
+disp(st1)
+
+st2 = 'bye';
+disp('st2')
+disp(st2)
+
+st3 = st0+st1+st2;
+disp('st3 = st0+st1+st2;')
+disp(st3)
+endfunction
+
diff --git a/tests/unit_tests/test061_SumShortTest/launchConversion.sci b/tests/unit_tests/test061_SumShortTest/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test061_SumShortTest/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test061_SumShortTest/scilabcode/mainfunction.sci b/tests/unit_tests/test061_SumShortTest/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..78895afa
--- /dev/null
+++ b/tests/unit_tests/test061_SumShortTest/scilabcode/mainfunction.sci
@@ -0,0 +1,22 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+s1 = (1:4)' * (1:3);
+disp('s1');
+disp(s1);
+
+s2 = sum(s1);
+disp('s2 = sum(s1);');
+disp(s2);
+
+s3 = sum(s1,1);
+disp('s3 = sum(s1,1);');
+disp(s3);
+
+s4 = sum(s1,2);
+disp('s4 = sum(s1,2);');
+disp(s4);
+
+endfunction
+
diff --git a/tests/unit_tests/test064_OpMinusFloatComplex/launchConversion.sci b/tests/unit_tests/test064_OpMinusFloatComplex/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test064_OpMinusFloatComplex/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test064_OpMinusFloatComplex/scilabcode/mainfunction.sci b/tests/unit_tests/test064_OpMinusFloatComplex/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..a1e0d8c6
--- /dev/null
+++ b/tests/unit_tests/test064_OpMinusFloatComplex/scilabcode/mainfunction.sci
@@ -0,0 +1,43 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+function mainfunction()
+
+s1 = -5.4;
+disp('s1');
+disp(s1);
+
+s2 = -2.2-4*%i;
+disp('s2');
+disp(s2);
+
+A = ((1.2:0.99:4.9)')*(-2.3:1.1:3.9)
+disp('A = ((1.2:0.99:4.9)'')*(-2.3:1.1:3.9)');
+disp(A);
+
+B = -2.11*A-%i*A;
+disp('B');
+
+disp('o1 = -s1 - s2;');
+o1 = -s1 - s2;
+disp(o1);
+
+disp('o1 = -3.4 - 4.5;');
+o1 = (-3.4-%i) - (4.5-%i);
+disp(o1);
+
+disp('o2 = -3.4 - B - A;');
+o2 = -3.4 - B - A;
+disp(o2);
+
+disp('o3 = A - (-3.4);');
+o3 = A - (-3.4);
+disp(o3);
+
+disp('o4 = A - A;');
+o4 = A - B;
+disp(o4);
+
+disp('o5 = -A;');
+o5 = -B;
+disp(o5);
+endfunction
diff --git a/tests/unit_tests/test081_twoFunctions/scilabcode/fun1.sci b/tests/unit_tests/test081_twoFunctions/scilabcode/fun1.sci
new file mode 100644
index 00000000..3584aa28
--- /dev/null
+++ b/tests/unit_tests/test081_twoFunctions/scilabcode/fun1.sci
@@ -0,0 +1,10 @@
+//SCI2C: NIN= 1
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= IN(1).SZ(1)
+//SCI2C: OUT(1).SZ(2)= IN(1).SZ(2)
+
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+function out = fun1(in1)
+out = -in1;
+endfunction
diff --git a/tests/unit_tests/test081_twoFunctions/scilabcode/fun2.sci b/tests/unit_tests/test081_twoFunctions/scilabcode/fun2.sci
new file mode 100644
index 00000000..56a2f162
--- /dev/null
+++ b/tests/unit_tests/test081_twoFunctions/scilabcode/fun2.sci
@@ -0,0 +1,14 @@
+//SCI2C: NIN= 1
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= '1'
+//SCI2C: OUT(1).SZ(2)= '1'
+
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+function out = fun2(in1)
+a = 999;
+disp("a");
+disp(a);
+b = fun1(1);
+out = 99;
+endfunction
diff --git a/tests/unit_tests/test081_twoFunctions/scilabcode/mainfunction.sci b/tests/unit_tests/test081_twoFunctions/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..728b3c3e
--- /dev/null
+++ b/tests/unit_tests/test081_twoFunctions/scilabcode/mainfunction.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+b = fun2(2);
+disp("b")
+disp(b)
+a=1;
+b = fun1(1);
+disp("b")
+disp(b)
+endfunction
diff --git a/tests/unit_tests/test088_SimpleFor/launchConversion.sci b/tests/unit_tests/test088_SimpleFor/launchConversion.sci
new file mode 100644
index 00000000..fc3f6fd4
--- /dev/null
+++ b/tests/unit_tests/test088_SimpleFor/launchConversion.sci
@@ -0,0 +1,4 @@
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test088_SimpleFor/scilabcode/mainfunction.sci b/tests/unit_tests/test088_SimpleFor/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..df2c028c
--- /dev/null
+++ b/tests/unit_tests/test088_SimpleFor/scilabcode/mainfunction.sci
@@ -0,0 +1,17 @@
+function mainfunction()
+
+// ---------------------------------------
+// --- Initialization of the operands. ---
+// ---------------------------------------
+
+v1 = zeros(1,5);
+disp('v1, before initialization.')
+disp(v1)
+for cnt = 1:5
+ v1(cnt) = cnt;
+end
+disp('v1, after initialization.')
+disp(v1)
+
+endfunction
+
diff --git a/tests/unit_tests/test089_SimpleFor/launchConversion.sci b/tests/unit_tests/test089_SimpleFor/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test089_SimpleFor/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test089_SimpleFor/scilabcode/mainfunction.sci b/tests/unit_tests/test089_SimpleFor/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..df2c028c
--- /dev/null
+++ b/tests/unit_tests/test089_SimpleFor/scilabcode/mainfunction.sci
@@ -0,0 +1,17 @@
+function mainfunction()
+
+// ---------------------------------------
+// --- Initialization of the operands. ---
+// ---------------------------------------
+
+v1 = zeros(1,5);
+disp('v1, before initialization.')
+disp(v1)
+for cnt = 1:5
+ v1(cnt) = cnt;
+end
+disp('v1, after initialization.')
+disp(v1)
+
+endfunction
+
diff --git a/tests/unit_tests/test100_recursivefunctions/launchConversion.sci b/tests/unit_tests/test100_recursivefunctions/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test100_recursivefunctions/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test100_recursivefunctions/scilabcode/IterativePower.sci b/tests/unit_tests/test100_recursivefunctions/scilabcode/IterativePower.sci
new file mode 100644
index 00000000..d3ee3469
--- /dev/null
+++ b/tests/unit_tests/test100_recursivefunctions/scilabcode/IterativePower.sci
@@ -0,0 +1,17 @@
+//SCI2C: NIN= 2
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)
+//SCI2C: OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+function outiter = IterativePower(in,pwrfct)
+
+outiter = ones(in);
+
+for cnt = 1:pwrfct
+ mytmp = outiter .* in;
+ outiter = mytmp;
+end
+
+endfunction
diff --git a/tests/unit_tests/test100_recursivefunctions/scilabcode/RecursivePower.sci b/tests/unit_tests/test100_recursivefunctions/scilabcode/RecursivePower.sci
new file mode 100644
index 00000000..87430bba
--- /dev/null
+++ b/tests/unit_tests/test100_recursivefunctions/scilabcode/RecursivePower.sci
@@ -0,0 +1,23 @@
+//SCI2C: NIN= 2
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)
+//SCI2C: OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+function outrec = RecursivePower(in,pwrfct)
+
+
+if (pwrfct == 0)
+ outrec = ones(in);
+end
+
+if (pwrfct == 1)
+ outrec = in;
+end
+
+if (pwrfct > 1)
+ outrec = in .* RecursivePower(in,pwrfct-1);
+end
+
+endfunction
diff --git a/tests/unit_tests/test100_recursivefunctions/scilabcode/mainfunction.sci b/tests/unit_tests/test100_recursivefunctions/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..d1dd1dbd
--- /dev/null
+++ b/tests/unit_tests/test100_recursivefunctions/scilabcode/mainfunction.sci
@@ -0,0 +1,57 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function mainfunction()
+
+// ---------------------------------------
+// --- Initialization of the operands. ---
+// ---------------------------------------
+powerfactor = 3;
+disp('Power Factor: ');
+disp(powerfactor)
+
+s1 = 2;
+disp('Input Scalar Value');
+disp(s1)
+
+V1 = 1:3;
+V2 = 1:2;
+V1tr = V1';
+
+M1 = V1tr * V2;
+disp('Input Matrix Value');
+disp(M1)
+
+// -----------------------
+// --- Compute powers. ---
+// -----------------------
+// --- Iterative/Scalar. ---
+outs1It = IterativePower(s1,powerfactor);
+disp('Output Scalar Value Iterative');
+disp(outs1It);
+
+// --- Iterative/Matrix. ---
+outM1It = IterativePower(M1,powerfactor);
+disp('Output Matrix Iterative');
+disp(outM1It);
+
+// --- Recursive/Scalar. ---
+outs1Re = RecursivePower(s1,powerfactor);
+disp('Output Scalar Value Recursive');
+disp(outs1Re);
+
+// --- Recursive/Matrix. ---
+outM1Re = RecursivePower(M1,powerfactor);
+disp('Output Matrix Recursive');
+disp(outM1Re);
+
+//~ // --- Solution/Scalar. ---
+//~ outs1So = s1.^powerfactor;
+//~ disp('Output Scalar Value Solution');
+//~ disp(outs1So);
+
+//~ // --- Solution/Matrix. ---
+//~ outM1So = M1.^powerfactor;
+//~ disp('Output Matrix Value Solution');
+//~ disp(outM1So);
+
+endfunction
+
diff --git a/tests/unit_tests/test101_SimpleStringConcatenation/launchConversion.sci b/tests/unit_tests/test101_SimpleStringConcatenation/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test101_SimpleStringConcatenation/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test101_SimpleStringConcatenation/scilabcode/mainfunction.sci b/tests/unit_tests/test101_SimpleStringConcatenation/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..ec01e894
--- /dev/null
+++ b/tests/unit_tests/test101_SimpleStringConcatenation/scilabcode/mainfunction.sci
@@ -0,0 +1,18 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+
+st0 = '#';
+disp('st0')
+disp(st0)
+
+st1 = 'ciao';
+disp('st1')
+disp(st1)
+
+st2 = st0+st1;
+disp('st2 = st0+st1;')
+disp(st2)
+endfunction
+
diff --git a/tests/unit_tests/test104_ScalarProduct/launchConversion.sci b/tests/unit_tests/test104_ScalarProduct/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test104_ScalarProduct/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test104_ScalarProduct/scilabcode/mainfunction.sci b/tests/unit_tests/test104_ScalarProduct/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..235b2e5f
--- /dev/null
+++ b/tests/unit_tests/test104_ScalarProduct/scilabcode/mainfunction.sci
@@ -0,0 +1,10 @@
+function mainfunction()
+
+a = 1:4;
+b = a * a';
+disp('input array:')
+disp(a)
+disp('scalar product a * a''');
+disp(b)
+endfunction
+
diff --git a/tests/unit_tests/test200_malloc/launchConversion.sci b/tests/unit_tests/test200_malloc/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test200_malloc/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test200_malloc/scilabcode/mainfunction.sci b/tests/unit_tests/test200_malloc/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..c63992e4
--- /dev/null
+++ b/tests/unit_tests/test200_malloc/scilabcode/mainfunction.sci
@@ -0,0 +1,18 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+function mainfunction()
+
+N = 2;
+B = myinit(N+4-2,2);
+disp('B')
+disp(B)
+
+N = 4;
+C = myinit(N,3);
+disp('C')
+disp(C)
+
+D=B+2.*C;
+disp('D')
+disp(D)
+endfunction
+
diff --git a/tests/unit_tests/test200_malloc/scilabcode/myinit.sci b/tests/unit_tests/test200_malloc/scilabcode/myinit.sci
new file mode 100644
index 00000000..af38cf5c
--- /dev/null
+++ b/tests/unit_tests/test200_malloc/scilabcode/myinit.sci
@@ -0,0 +1,13 @@
+//SCI2C: NIN= 2
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= IN(1).VAL
+//SCI2C: OUT(1).SZ(2)= IN(1).VAL
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+function out = myinit(n,m)
+
+out1 = m+ones(n,n);
+out = out1+2*ones(n,n);
+
+endfunction
+
diff --git a/tests/unit_tests/test200_malloc/scilabcode/myzeros.sci b/tests/unit_tests/test200_malloc/scilabcode/myzeros.sci
new file mode 100644
index 00000000..a2cdc36b
--- /dev/null
+++ b/tests/unit_tests/test200_malloc/scilabcode/myzeros.sci
@@ -0,0 +1,11 @@
+//SCI2C: NIN= 1
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= IN(1).SZ(1)
+//SCI2C: OUT(1).SZ(2)= IN(1).SZ(2)
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+function out = myzeros(in)
+
+out = 3+zeros(in);
+endfunction
+
diff --git a/tests/unit_tests/test301_cchirp/launchConversion.sci b/tests/unit_tests/test301_cchirp/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test301_cchirp/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test301_cchirp/scilabcode/mainfunction.sci b/tests/unit_tests/test301_cchirp/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..5719fc08
--- /dev/null
+++ b/tests/unit_tests/test301_cchirp/scilabcode/mainfunction.sci
@@ -0,0 +1,59 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+function mainfunction()
+//---> MOREA: commentare meglio lo scopo di questa funzione
+//---> NUTRICATO: annotare anche le funzioni di plot facendole puntare a funzioni dummy che non fanno nulla.
+//---> NUTRICATO: la convoluzione e' stata stostituita con una custom in quanto non ancora implementata da INRIA.
+
+
+// sampling parameters
+fs = 1000; //Hz
+Tmax = .01; //----> NUTRICATO: VALORE VERO 1
+t = 0 : 1 ./ fs : Tmax;
+
+// chirp parameters
+fo = 10
+k = 150
+
+tau=0.7
+
+c=exp(2*%i*%pi*(fo*t+k./2*t.^2));//chirp signal in complex form
+// figure
+// subplot(2,2,1)
+// plot(t(1:250),real(c(1:250)));
+//title('chirp(t)')
+
+cr=exp(2*%i*%pi*(fo*(t-tau)+k./2*(t-tau).^2));//chirp signal delayed in complex form
+// subplot(2,2,2)
+
+// plot(t(1:250),real(c(1:250)),'r',t(1:250),real(cr(1:250)),'g');
+// title('chirp(t) e chirp(t-tau)')
+
+// filter response
+// subplot(2,2,3)
+h=conj(exp(2*%i*%pi*(fo*(-t)+k./2*(-t).^2)));
+
+
+// plot(t(1:250),real(h(1:250)));
+// title('conj(chirp(-t))')
+//---> NUTRICATO: la convoluzione e' stata commentata in quanto non ancora implementata.
+y=myconvol(h,cr);
+
+
+tch=0:1 ./ fs:2*Tmax;
+// subplot(2,2,4)
+// plot(tch,abs(y))
+// title(' y(t)')
+
+disp('t')
+disp(t)
+disp('c')
+disp(c)
+disp('cr')
+disp(cr)
+disp('h')
+disp(h)
+disp('y')
+disp(y)
+endfunction
+
+
diff --git a/tests/unit_tests/test301_cchirp/scilabcode/myconvol.sci b/tests/unit_tests/test301_cchirp/scilabcode/myconvol.sci
new file mode 100644
index 00000000..6640c372
--- /dev/null
+++ b/tests/unit_tests/test301_cchirp/scilabcode/myconvol.sci
@@ -0,0 +1,31 @@
+//SCI2C: NIN= 2
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+//SCI2C: OUT(1).SZ(1)= '1'
+//SCI2C: OUT(1).SZ(2)= FA_SUB(FA_ADD(IN(1).SZ(2),IN(2).SZ(2)),'1')
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function y = myconvol(h,x)
+hlen = length(h);
+xlen = length(x);
+//y = zeros(1,hlen+xlen-1);
+
+for cnt1 = 1:xlen
+ y(cnt1) = 0+%i*0;
+ for cnt2 = 1:cnt1
+ if ((cnt1-cnt2+1) <= hlen)
+ y(cnt1) = y(cnt1) + h(cnt1-cnt2+1)*x(cnt2);
+ else
+ y(cnt1) = y(cnt1) + 0;
+ end
+ end
+end
+
+for cnt1 = xlen+1:xlen+hlen-1
+ y(cnt1) = 0+%i*0;
+ for cnt2 = cnt1-hlen+1:xlen
+ y(cnt1) = y(cnt1) + h(cnt1-cnt2+1)*x(cnt2);
+ end
+end
+
+endfunction
diff --git a/tests/unit_tests/test305_Moebius/launchConversion.sci b/tests/unit_tests/test305_Moebius/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test305_Moebius/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test305_Moebius/scilabcode/XYgrid.sci b/tests/unit_tests/test305_Moebius/scilabcode/XYgrid.sci
new file mode 100644
index 00000000..0957237d
--- /dev/null
+++ b/tests/unit_tests/test305_Moebius/scilabcode/XYgrid.sci
@@ -0,0 +1,32 @@
+//SCI2C: NIN= 2
+//SCI2C: NOUT= 2
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= IN(2).SZ(2)
+//SCI2C: OUT(1).SZ(2)= IN(1).SZ(2)
+//SCI2C: OUT(2).TP= IN(1).TP
+//SCI2C: OUT(2).SZ(1)= IN(2).SZ(2)
+//SCI2C: OUT(2).SZ(2)= IN(1).SZ(2)
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+// ------------------------------------
+// this script emulate the matlab meshgrid
+// only for bidimensional mesh.
+// ------------------------------------
+
+function [X,Y] = XYgrid(x,y)
+
+n = length(x);
+m = length(y);
+
+X=zeros(m,n);
+Y=zeros(m,n);
+
+for k=1:m
+ X(k,1:n)=x;
+end
+
+for h=1:n
+ Y(1:m,h)=y';
+end
+
+endfunction
diff --git a/tests/unit_tests/test305_Moebius/scilabcode/mainfunction.sci b/tests/unit_tests/test305_Moebius/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..4e79667b
--- /dev/null
+++ b/tests/unit_tests/test305_Moebius/scilabcode/mainfunction.sci
@@ -0,0 +1,66 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+//the program construct moebius
+// and klein bottle surface from
+//http://www.metlin.org/mathematics/
+// topological-constructs/non-orientable-surfaces/
+
+
+// ---------------------
+// --- Moebius strip ---
+// ---------------------
+num_points = 20;
+R = 20;
+a = -0.4;
+b = 0.4;
+
+step=(b-a)./(num_points-1);
+step1=(2*%pi)./num_points;
+s=a:step:b;
+t=0:step1:2*%pi;
+
+[S, T] = XYgrid(s, t);
+x = [R + (S.*cos(T./2))].*cos(T);
+y = [R + (S.*cos(T./2))].*sin(T);
+z = S.*sin(T./2);
+
+disp('x(1:10)')
+disp(x(1:10))
+disp('y(1:10)')
+disp(y(1:10))
+disp('z(1:10)')
+disp(z(1:10))
+
+// ENABLE/DISABLE PLOT
+// scf(0); surf(x, y, z);
+
+// -----------------------
+// --- Klein Bottle II ---
+// -----------------------
+num_points = 50;
+
+//u = linspace (0, 2*(%pi), num_points);
+//v = linspace (0, 2*(%pi), num_points);
+step_u = (2*%pi)./num_points
+u = 0:step_u:2*%pi;
+v = u;
+
+[U,V] = XYgrid(u,v);
+
+x1 = cos(U).*(cos(U./2).*(sqrt(2)+cos(V))+(sin(U./2).*sin(V).*cos(V)));
+y1 = sin(U).*(cos(U./2).*(sqrt(2)+cos(V))+(sin(U./2).*sin(V).*cos(V)));
+z1 = -1.*sin(U./2).*(sqrt(2)+cos(V))+cos(U./2).*sin(V).*cos(V);
+
+disp('x1(1:10)');
+disp(x1(1:10));
+disp('y1(1:10)')
+disp(y1(1:10))
+disp('z1(1:10)')
+disp(z1(1:10))
+// ENABLE/DISABLE PLOT
+// scf(1) ;surf(x1, y1, z1)
+
+endfunction
+
diff --git a/tests/unit_tests/test600_SimpleFindDouble/launchConversion.sci b/tests/unit_tests/test600_SimpleFindDouble/launchConversion.sci
new file mode 100644
index 00000000..41be0f04
--- /dev/null
+++ b/tests/unit_tests/test600_SimpleFindDouble/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test600_SimpleFindDouble/scilabcode/mainfunction.sci b/tests/unit_tests/test600_SimpleFindDouble/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..8455ac70
--- /dev/null
+++ b/tests/unit_tests/test600_SimpleFindDouble/scilabcode/mainfunction.sci
@@ -0,0 +1,17 @@
+//SCi0C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+s1 = [1 -3.56 4 -50.20 -7 -8 9 -3 4];
+disp('s1');
+disp(s1);
+
+i0 = find(s1<0.5);
+disp('i0');
+disp(i0);
+
+disp('s1(i0)');
+disp(s1(i0));
+
+endfunction
+
diff --git a/tests/unit_tests/test9999_WorkingDir/scilabcode/mainfunction.sci b/tests/unit_tests/test9999_WorkingDir/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..5719fc08
--- /dev/null
+++ b/tests/unit_tests/test9999_WorkingDir/scilabcode/mainfunction.sci
@@ -0,0 +1,59 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+function mainfunction()
+//---> MOREA: commentare meglio lo scopo di questa funzione
+//---> NUTRICATO: annotare anche le funzioni di plot facendole puntare a funzioni dummy che non fanno nulla.
+//---> NUTRICATO: la convoluzione e' stata stostituita con una custom in quanto non ancora implementata da INRIA.
+
+
+// sampling parameters
+fs = 1000; //Hz
+Tmax = .01; //----> NUTRICATO: VALORE VERO 1
+t = 0 : 1 ./ fs : Tmax;
+
+// chirp parameters
+fo = 10
+k = 150
+
+tau=0.7
+
+c=exp(2*%i*%pi*(fo*t+k./2*t.^2));//chirp signal in complex form
+// figure
+// subplot(2,2,1)
+// plot(t(1:250),real(c(1:250)));
+//title('chirp(t)')
+
+cr=exp(2*%i*%pi*(fo*(t-tau)+k./2*(t-tau).^2));//chirp signal delayed in complex form
+// subplot(2,2,2)
+
+// plot(t(1:250),real(c(1:250)),'r',t(1:250),real(cr(1:250)),'g');
+// title('chirp(t) e chirp(t-tau)')
+
+// filter response
+// subplot(2,2,3)
+h=conj(exp(2*%i*%pi*(fo*(-t)+k./2*(-t).^2)));
+
+
+// plot(t(1:250),real(h(1:250)));
+// title('conj(chirp(-t))')
+//---> NUTRICATO: la convoluzione e' stata commentata in quanto non ancora implementata.
+y=myconvol(h,cr);
+
+
+tch=0:1 ./ fs:2*Tmax;
+// subplot(2,2,4)
+// plot(tch,abs(y))
+// title(' y(t)')
+
+disp('t')
+disp(t)
+disp('c')
+disp(c)
+disp('cr')
+disp(cr)
+disp('h')
+disp(h)
+disp('y')
+disp(y)
+endfunction
+
+
diff --git a/tests/unit_tests/test_CDG/D2Q9.sci b/tests/unit_tests/test_CDG/D2Q9.sci
new file mode 100644
index 00000000..ca344f0e
--- /dev/null
+++ b/tests/unit_tests/test_CDG/D2Q9.sci
@@ -0,0 +1,189 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010-2010 - DIGITEO - Vincent LEJEUNE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+//
+//
+
+//lines(0);
+
+//abs_path=get_absolute_file_path("D2Q9.sce");
+//exec(abs_path+"circshift.sce");
+
+// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+// % cylinder.m: Channel flow past a cylinderical
+// % obstacle, using a LB method
+// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+// % Lattice Boltzmann sample in Matlab
+// % Copyright (C) 2006-2008 Jonas Latt
+// % Address: EPFL, 1015 Lausanne, Switzerland
+// % E-mail: jonas@lbmethod.org
+// % Get the most recent version of this file on LBMethod.org:
+// % http://www.lbmethod.org/_media/numerics:cylinder.m
+// %
+// % Original implementaion of Zou/He boundary condition by
+// % Adriano Sciacovelli (see example "cavity.m")
+// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+// % This program is free software; you can redistribute it and/or
+// % modify it under the terms of the GNU General Public License
+// % as published by the Free Software Foundation; either version 2
+// % of the License, or (at your option) any later version.
+// % This program is distributed in the hope that it will be useful,
+// % but WITHOUT ANY WARRANTY; without even the implied warranty of
+// % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// % GNU General Public License for more details.
+// % You should have received a copy of the GNU General Public
+// % License along with this program; if not, write to the Free
+// % Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// % Boston, MA 02110-1301, USA.
+// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+// Translated to scilab language by Vincent Lejeune
+
+function D2Q9()
+
+// GENERAL FLOW CONSTANTS
+lx = 400; //number of cells in x-direction
+ly = 100; // number of cells in y-direction
+obst_x = lx/5+1; // position of the cylinder; (exact
+obst_y = ly/2+3; // y-symmetry is avoided)
+obst_r = ly/10+1; // radius of the cylinder
+uMax = 0.1; // maximum velocity of Poiseuille inflow
+Re = 100; // Reynolds number
+nu = uMax * 2.*obst_r / Re; // kinematic viscosity
+omega = 1. / (3*nu+1./2.); // relaxation parameter
+maxT = 4; // total number of iterations
+tPlot = 50; // cycles
+
+// D2Q9 LATTICE CONSTANTS
+t = [4/9, 1/9,1/9,1/9,1/9, 1/36,1/36,1/36,1/36];
+cx = [ 0, 1, 0, -1, 0, 1, -1, -1, 1];
+cy = [ 0, 0, 1, 0, -1, 1, 1, -1, -1];
+opp = [ 1, 4, 5, 2, 3, 8, 9, 6, 7];
+col = [2:(ly-1)];
+in = 1; // position of inlet
+out = lx; // position of outlet
+
+// [y,x] = meshgrid(1:ly,1:lx); // get coordinate of matrix indices
+
+// BJ : Alternative implementation to have C Code generation
+y = ones(lx,1) * (1:ly);
+x = (1:lx)' * ones(1,ly)
+
+obst = ... // Location of cylinder
+ (x-obst_x).^2 + (y-obst_y).^2 <= obst_r.^2;
+//obst(:,[1,ly]) = 1; // Location of top/bottom boundary
+
+// BJ : alternative implementation
+[obst_height, obst_width] = size(obst);
+obst(1:obst_height,1) = 1; // Location of top/bottom boundary
+obst(1:obst_height,ly) = 1; // Location of top/bottom boundary
+
+bbRegion = find(obst); // Boolean mask for bounce-back cells
+
+// INITIAL CONDITION: Poiseuille profile at equilibrium
+L = ly-2; y_phys = y-1.5;
+ux = 4 * uMax / (L*L) * (y_phys.*L-y_phys.*y_phys);
+uy = zeros(lx,ly);
+rho = 1;
+fIn=zeros(9,lx,ly);
+fEq=zeros(9,lx,ly);
+fOut=zeros(9,lx,ly);
+for i=1:9
+ cu = 3*(cx(i)*ux+cy(i)*uy);
+ fIn(i,:,:) = rho .* t(i) .* ...
+ ( 1 + cu + 1/2*(cu.*cu) - 3/2*(ux.^2+uy.^2) );
+end
+
+//Matplot();
+//f=gcf();
+//f.color_map=jetcolormap(256);
+
+
+// // MAIN LOOP (TIME CYCLES)
+for cycle = 1:maxT
+
+//
+// // MACROSCOPIC VARIABLES
+ rho = sum(fIn,'m');
+ tmpx=cx*matrix(fIn,9,lx*ly);
+ tmpy=cy * matrix(fIn,9,lx*ly);
+ ux = matrix ( tmpx, 1,lx,ly) ./rho;
+ uy = matrix ( tmpy, 1,lx,ly) ./rho;
+
+// MACROSCOPIC (DIRICHLET) BOUNDARY CONDITIONS
+// Inlet: Poiseuille profile
+ y_phys = col-1.5;
+ ux(1,in,col) = 4 * uMax / (L*L) * (y_phys.*L-y_phys.*y_phys);
+ uy(1,in,col) = 0;
+ tmp=sum(fIn([1,3,5],in,col),'m') + 2*sum(fIn([4,7,8],in,col),'m');
+ rho(:,in,col) = ones(1,1,98) ./ (1-ux(:,in,col)) .* tmp;
+// Outlet: Constant pressure
+ rho(:,out,col) = 1;
+ ux(:,out,col) = -ones(1,1,98) + ones(1,1,98) ./ (rho(:,out,col)) .* ( ...
+ sum(fIn([1,3,5],out,col),'m') + 2*sum(fIn([2,6,9],out,col),'m'));
+ uy(:,out,col) = 0;
+
+// MICROSCOPIC BOUNDARY CONDITIONS: INLET (Zou/He BC)
+ fIn(2,in,col) = fIn(4,in,col) + 2/3*rho(:,in,col).*ux(:,in,col);
+ fIn(6,in,col) = fIn(8,in,col) + 1/2*(fIn(5,in,col)-fIn(3,in,col)) ...
+ + 1/2*rho(:,in,col).*uy(:,in,col) ...
+ + 1/6*rho(:,in,col).*ux(:,in,col);
+ fIn(9,in,col) = fIn(7,in,col) + 1/2*(fIn(3,in,col)-fIn(5,in,col)) ...
+ - 1/2*rho(:,in,col).*uy(:,in,col) ...
+ + 1/6*rho(:,in,col).*ux(:,in,col);
+
+// MICROSCOPIC BOUNDARY CONDITIONS: OUTLET (Zou/He BC)
+ fIn(4,out,col) = fIn(2,out,col) - 2/3*rho(:,out,col).*ux(:,out,col);
+ fIn(8,out,col) = fIn(6,out,col) + 1/2*(fIn(3,out,col)-fIn(5,out,col)) ...
+ - 1/2*rho(:,out,col).*uy(:,out,col) ...
+ - 1/6*rho(:,out,col).*ux(:,out,col);
+ fIn(7,out,col) = fIn(9,out,col) + 1/2*(fIn(5,out,col)-fIn(3,out,col)) ...
+ + 1/2*rho(:,out,col).*uy(:,out,col) ...
+ - 1/6*rho(:,out,col).*ux(:,out,col);
+
+// COLLISION STEP
+ for i=1:9
+ cu = 3*(cx(i)*ux+cy(i)*uy);
+ fEq(i,:,:) = rho .* t(i) .*( 1 + cu + 1/2*(cu.*cu) - 3/2*(ux.^2+uy.^2) );
+ fOut(i,:,:) = fIn(i,:,:) - omega .* (fIn(i,:,:)-fEq(i,:,:));
+ end
+
+// OBSTACLE (BOUNCE-BACK)
+ for i=1:9
+ fOut(i,bbRegion) = fIn(opp(i),bbRegion);
+ end
+
+// STREAMING STEP
+ for i=1:9
+ tmpmat=matrix(fOut(i,:,:),lx,ly);
+ tmp=cs(tmpmat,cx(i),cy(i));
+ fIn(i,:,:) = matrix(tmp,1,lx,ly);
+ end
+//
+// VISUALIZATION
+//if (pmodulo(cycle,tPlot)==1)
+u = matrix(sqrt(ux.^2+uy.^2),lx,ly);
+u(bbRegion) = %nan;
+//classe=linspace(0,1,1000);
+//histplot(classe,u/max(u));
+img=abs(255*u/max(u));
+//disp(img);
+//imshow(img');
+//e=gce();
+//e.data=img';
+//xs2png(gcf(),'img-'+string(cycle)+'.png');
+//imagesc(u');
+//axis equal off; drawnow
+// end
+
+//tim=toc()
+//disp(tim);
+end
+
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_CDG/cs.sci b/tests/unit_tests/test_CDG/cs.sci
new file mode 100644
index 00000000..496b23a9
--- /dev/null
+++ b/tests/unit_tests/test_CDG/cs.sci
@@ -0,0 +1,25 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010-2010 - DIGITEO - Vincent LEJEUNE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+//
+//
+
+function ret=cs(A,m1,m2)
+ [m,n]=size(A);
+ rettmp=zeros(m,n);
+ ret=zeros(m,n);
+ for i=1:m
+ id=pmodulo(i-m1-1,m)+1;
+ rettmp(i,:)=A(id,:);
+ end
+ for j=1:n
+ jd=pmodulo(j-m2-1,n)+1;
+ ret(:,j)=rettmp(:,jd);
+ end
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_Convol.sci b/tests/unit_tests/test_double_Convol.sci
new file mode 100644
index 00000000..c872935e
--- /dev/null
+++ b/tests/unit_tests/test_double_Convol.sci
@@ -0,0 +1,124 @@
+function test_double_Convol()
+
+
+ disp(convol(4,4.5)); //d0d0Convold0
+ disp(convol(%i + 3 ,2*%i + 4)); // z0z0Convolz0
+
+
+ a = [1 2 3 4 5 %e %pi];
+ b = [1 7 8 5 1 6 ];
+
+ disp(convol(a,b));
+ disp(convol(b,b)); // d2d2Convold2
+
+
+ disp(convol(4,a)); //d0d2Convold2
+ disp(convol(a,4)); // d2d0Convold2
+
+
+ c = [1 2 3 4 5 %e %pi] * %i;
+ d = [1 7 8 5 1 6 ] * %i;
+
+ disp(convol(c,d));
+ disp(convol(d,d)); // z2z2Convolz2
+
+
+ disp(convol(%i + 3 ,c)); // z0z2Convolz2
+ disp(convol(d ,2*%i + 4)); // z2z0Convolz2
+
+// with 2 outputs
+
+
+// [zz yy] = convol(4,4.5); //d0d0Convold0d0
+// disp( zz );
+ //disp( yy );
+
+// [xx ww ] = convol(%i + 3 ,2*%i + 4); // z0z0Convolz0z0
+// disp( xx);
+// disp( ww );
+
+// [vv uu] =convol(a,b);
+// disp( vv); // d2d2Convold2d2
+// disp( uu );
+
+
+// [tt ss] = convol(4,a); //d0d2Convold2d2
+// disp( tt);
+// disp( ss );
+
+
+
+// [rr qq] = convol(a,4); // d2d0Convold2d2
+// disp( rr );
+// disp( qq );
+
+
+
+// with 2 outputs
+
+// [pp oo] =convol(c,d);
+// disp( pp); // z2z2Convolz2z2
+// disp( oo );
+
+
+// [mm nn] = convol(4,c); //z0z2Convolz2z2
+// disp( mm);
+// disp( nn );
+
+
+
+// [ll kk] = convol(c,4); // z2z0Convolz2z2
+// disp( ll );
+ //disp( kk);
+
+
+// three input i
+
+// with 2 outputs
+
+
+ //[zzz yyy] = convol(4,4.5,18); //d0d0d0Convold0d0
+ //disp( zzz );
+ //disp( yyy );
+
+ //[xxx www ] = convol(%i + 3 ,2*%i + 4,%i); // z0z0z0Convolz0z0
+ //disp( xxx);
+ //disp( www );
+
+// bbis = [4 7 9 10];
+
+ //[vvv uuu] =convol(a,b,bbis);
+// disp( vvv); // d2d2d2Convold2d2
+// disp( uuu );
+//
+
+ //[ttt sss] = convol(4,a, 8); //d0d2d0Convold2d0
+ //disp( ttt);
+ //disp( sss );
+
+// with 2 outputs
+//dbis = [10 13 14] *%i;
+// [ppp ooo] =convol(c,d, dbis);
+// disp( ppp); // z2z2z2Convolz2z2
+// disp( ooo );
+
+
+// [mmm nnn] = convol(4 * %i ,c , %i); //z0z2z0Convolz2z0
+// disp( mmm);
+// disp( nnn);
+
+//mixed up
+
+// disp(convol(a,c)); //d2z2Convolz2
+// disp(convol(c,a)); // z2d2Convolz2
+// disp(convol(4,c)); //d0z2Convolz2
+// disp(convol(%i + 3 ,a)); // z0d2Convolz2
+
+// disp(convol(a, %i)); //d2z0Convolz2
+// disp(convol(c , 4)); // z2d0Convolz2
+
+
+
+
+
+endfunction
diff --git a/tests/unit_tests/test_double_Det.sci b/tests/unit_tests/test_double_Det.sci
new file mode 100644
index 00000000..7c5f2fed
--- /dev/null
+++ b/tests/unit_tests/test_double_Det.sci
@@ -0,0 +1,15 @@
+function test_double_Det()
+
+ a = [1 2 3; 4 %pi 5; 4.5 -3 2];
+ disp(det(a));
+
+ b = %i * [1 2 3; 4 %pi 5; 4.5 -3 2];
+ disp(det(b));
+
+
+ disp(det(5));
+
+ disp(det(%i));
+endfunction
+
+
diff --git a/tests/unit_tests/test_double_Disp.sci b/tests/unit_tests/test_double_Disp.sci
new file mode 100644
index 00000000..4d1f7185
--- /dev/null
+++ b/tests/unit_tests/test_double_Disp.sci
@@ -0,0 +1,13 @@
+function test_double_Disp ()
+
+ disp(4.5);
+ disp(4+3*%i);
+ disp("a");
+
+ disp([1 2 3 4 5 ; 6 7 8 9 10]);
+ disp(%i*[1 2 3 4 5 ; 6 7 8 9 10]);
+ disp("plop");
+
+
+endfunction
+
diff --git a/tests/unit_tests/test_double_Expm.sci b/tests/unit_tests/test_double_Expm.sci
new file mode 100644
index 00000000..a084fb5a
--- /dev/null
+++ b/tests/unit_tests/test_double_Expm.sci
@@ -0,0 +1,9 @@
+function test_double_Expm()
+ b = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16];
+ c = b*%i ;
+
+ disp(expm(b));
+ disp(expm(c));
+
+
+endfunction
diff --git a/tests/unit_tests/test_double_FFTShift.sci b/tests/unit_tests/test_double_FFTShift.sci
new file mode 100644
index 00000000..205669c7
--- /dev/null
+++ b/tests/unit_tests/test_double_FFTShift.sci
@@ -0,0 +1,37 @@
+function test_double_FFTShift()
+
+ disp(fftshift(5.3));// d0*d0
+ disp(fftshift(5.3*%i));// z0*z0
+ disp(fftshift(5.3 + 5.6*%i ));// z0*z0
+
+
+ a = fft ([10 1 15 3.5 ]);
+ disp(fftshift(a));
+
+ b = [ 14 15 2 6 ; 1 2 6 4 ; 48.5 3 9.3 1 ];
+ disp(fftshift(b));
+ disp(fftshift(b , 1));
+ disp(fftshift(b , 2));
+ //disp(fftshift(b , "all"));
+
+
+ c = [10 1 15 3.5 ]*%i;
+ disp(fftshift(c));
+
+ d = [ 14 15 2 6 ; 1 2 6 4 ; 48.5 3 9.3 1 ]*%i;
+ disp(fftshift(b));
+ disp(fftshift(b , 1));
+ disp(fftshift(b , 2));
+ //disp(fftshift(b , "all"));
+
+
+ e = c + [10 1 15 3.5 ]*%i;
+ disp(fftshift(e));
+
+ f = [ 18 15 7 6 ; 1 5 6 4 ; 43.5 1 9.3 1 ] + [ 14 15 2 6 ; 1 2 6 4 ; 48.5 3 9.3 1 ]*%i;
+ disp(fftshift(f));
+ disp(fftshift(f , 1));
+ disp(fftshift(f , 2));
+ //disp(fftshift(f , "all"));
+
+endfunction
diff --git a/tests/unit_tests/test_double_Fft.sci b/tests/unit_tests/test_double_Fft.sci
new file mode 100644
index 00000000..f54c1f91
--- /dev/null
+++ b/tests/unit_tests/test_double_Fft.sci
@@ -0,0 +1,172 @@
+function test_double_Fft()
+
+disp(fft(4.4))
+disp(fft(%i + 3.4))
+
+
+// one input
+ a = [10 1 15 3.5 ]; //d2Fftz2
+ disp(fft(a));
+ disp("");
+ b = [25 3.6]; // d2Fftd2
+ disp(fft(b));
+ disp("");
+ c= [10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(fft(c));
+ disp("");
+ // pure imaginary
+ d = [10 1 15 3.5 ]*%i; //z2Fftz2
+ disp(fft(d));
+ disp("");
+ e = [25 3.6]*%i; // z2Fftd2
+ disp(fft(e));
+ disp("");
+ f= %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(fft(f));
+ disp("");
+ // full complex
+
+ g = a + [10 1 15 3.5 ]*%i; //z2Fftz2
+ disp(fft(g));
+ disp("");
+ h = b + [25 3.6]*%i; // z2Fftd2
+ disp(fft(h));
+ disp("");
+ j= c + %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(fft(j));
+ disp("");
+ disp("*******************");
+ disp("*******************");
+ disp("");
+// two output
+// call ifft
+ disp(fft(a,1));
+ disp("");
+ disp(fft(b,1));
+ disp("");
+ disp(fft(c,1));
+ disp("");
+ disp(fft(d,1));
+ disp("");
+ disp(fft(e,1));
+ disp("");
+ disp(fft(f,1));
+ disp("");
+ // full complex
+ disp(fft(g,1));
+ disp("");
+ disp(fft(h,1));
+ disp("");
+ disp(fft(j,1));
+ disp("");
+ disp("");
+ disp("*******************");
+ disp("*******************");
+ disp("");
+//
+ disp(fft(a,-1));
+ disp("");
+ disp(fft(b,-1));
+ disp("");
+ disp(fft(c,-1));
+ disp("");
+ disp(fft(d,-1));
+ disp("");
+ disp(fft(e,-1));
+ disp("");
+ disp(fft(f,-1));
+ disp("");
+ // full complex
+ disp(fft(g,-1));
+ disp("");
+ disp(fft(h,-1));
+ disp("");
+ disp(fft(j,-1));
+ disp("");
+
+
+// ********************
+// MATRIX
+// ********************
+// one input
+ aa = [10 1 15 3.5 ; 5 3 9 6 ]; //d2Fftz2
+ disp(fft(aa));
+ disp("");
+ bb = [25 3.6 ; 4 3.2]; // d2Fftd2
+ disp(fft(bb));
+ disp("");
+ cc= [10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ; 21 8 2 5 6 3 4 123 5 6 0 5 548 7 65 4 2 166 4.12 65546 1.78 ]
+ disp(fft(cc));
+ disp("");
+ // pure imaginary
+ dd = [10 1 15 3.5 ; 5 8 6 3 ]*%i; //z2Fftz2
+ disp(fft(dd));
+ disp("");
+ ee = [25 3.6 ; 4 5.9 ]*%i; // z2Fftd2
+ disp(fft(ee));
+ disp("");
+ ff = %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3; 21 8 2 5 6 3 4 123 5 6 0 5 548 7 65 4 2 166 4.12 65546 1.78 ]
+
+ disp(fft(ff));
+ disp("");
+ // full complex
+
+ gg = aa + dd; //z2Fftz2
+ disp(fft(gg));
+ disp("");
+ hh = bb + ee; // z2Fftd2
+ disp(fft(hh));
+ disp("");
+ jj= cc + ff
+ disp(fft(jj));
+ disp("");
+ disp("*******************");
+ disp("*******************");
+ disp("");
+// two output
+// call ifft
+ disp(fft(aa,1));
+ disp("");
+ disp(fft(bb,1));
+ disp("");
+ disp(fft(cc,1));
+ disp("");
+ disp(fft(dd,1));
+ disp("");
+ disp(fft(ee,1));
+ disp("");
+ disp(fft(ff,1));
+ disp("");
+ // full complex
+ disp(fft(gg,1));
+ disp("");
+ disp(fft(hh,1));
+ disp("");
+ disp(fft(jj,1));
+ disp("");
+ disp("");
+ disp("*******************");
+ disp("*******************");
+ disp("");
+//
+ disp(fft(aa,-1));
+ disp("");
+ disp(fft(bb,-1));
+ disp("");
+ disp(fft(cc,-1));
+ disp("");
+ disp(fft(dd,-1));
+ disp("");
+ disp(fft(ee,-1));
+ disp("");
+ disp(fft(ff,-1));
+ disp("");
+ // full complex
+ disp(fft(gg,-1));
+ disp("");
+ disp(fft(hh,-1));
+ disp("");
+ disp(fft(jj,-1));
+ disp("");
+
+endfunction
diff --git a/tests/unit_tests/test_double_Find.sci b/tests/unit_tests/test_double_Find.sci
new file mode 100644
index 00000000..fd1d09a0
--- /dev/null
+++ b/tests/unit_tests/test_double_Find.sci
@@ -0,0 +1,31 @@
+function test_double_Find ()
+
+ disp (find( 1 == 3 )); // d0Findd0
+
+ a = [1 2 3; 4 5 6];
+ b = [1 8 3; 9 5 6];
+ disp (find( a == b )); // d2Findd2
+
+ [ z , j ] = find (1 == 3); // d0Findd0d0
+ [ k , l ] = find (a == b); // d2Findd2d2
+
+ disp(z);
+ disp(j);
+ disp(k);
+ disp(l);
+
+ disp ( find( 1 == 3 , 2 )); // d0d0Findd0
+
+ c = [1 2 3; 4 5 6];
+ d = [1 8 3; 9 5 6];
+ disp (find( c == d , 2 )); // d2d0Findd2
+
+ [ o , p ] = find (1 == 3 , 2); // d0d0Findd0d0
+ [ q , s ] = find (c == d , 2); // d2d0Findd2d2
+
+ disp(o);
+ disp(p);
+ disp(q);
+ disp(s);
+
+endfunction
diff --git a/tests/unit_tests/test_double_IFFT.sci b/tests/unit_tests/test_double_IFFT.sci
new file mode 100644
index 00000000..54761cf8
--- /dev/null
+++ b/tests/unit_tests/test_double_IFFT.sci
@@ -0,0 +1,89 @@
+function test_double_IFFT()
+
+
+disp(ifft(2)); // d0IFFTd0
+disp(ifft(%i + 4)) // z0IFFTz0
+
+disp(ifft([1 2])); // d2IFFTd2
+disp(ifft([1 -2 3] + zeros(1 , 3)*%i )); // d2IFFTz2
+disp(ifft([1 2]*%i)); // z2IFFTz2
+
+disp(ifft(4.4))
+disp(ifft(%i + 3.4))
+
+
+// one input
+ a = [10 1 15 3.5 ]; //d2Fftz2
+ Abis = a + zeros(a)*%i ;
+ disp(ifft(Abis));
+ disp("********1*******");
+ b = [25 3.6]; // d2Fftd2
+ disp(ifft(b));
+ disp("********2*******");
+ c= [10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ cbis = c + zeros(c)*%i ;
+ disp(ifft(cbis));
+ disp("********3*********");
+ // pure imaginary
+ d = [10 1 15 3.5 ]*%i; //z2Fftz2
+ disp(ifft(d));
+ disp("********4*********");
+ e = [25 3.6]*%i; // z2Fftd2
+ disp(ifft(e));
+ disp("********5***********");
+ f= %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(ifft(f));
+ disp("********6***********");
+ // full complex
+
+ g = a + [10 1 15 3.5 ]*%i; //z2Fftz2
+ disp(ifft(g));
+ disp("********7***********");
+ h = b + [25 3.6]*%i; // z2Fftd2
+ disp(ifft(h));
+ disp("********8***********");
+ j= c + %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(ifft(j));
+ disp("********************");
+ disp("*******************");
+ disp("*******************");
+ disp("********************");
+
+
+// ********************
+// MATRIX
+// ********************
+// one input
+ aa = [10 1 15 3.5 ; 5 3 9 6 ]; //d2Fftz2
+ disp(ifft(aa));
+ disp("********9***********");
+ bb = [25 3.6 ; 4 3.2]; // d2Fftd2
+ disp(ifft(bb));
+ disp("********10**********");
+ cc= [10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ; 21 8 2 5 6 3 4 123 5 6 0 5 548 7 65 4 2 166 4.12 65546 1.78 ]
+ disp(ifft(cc));
+ disp("********11**********");
+ // pure imaginary
+ dd = [10 1 15 3.5 ; 5 8 6 3 ]*%i; //z2Fftz2
+ disp(ifft(dd));
+ disp("********12**********");
+ ee = [25 3.6 ; 4 5.9 ]*%i; // z2Fftd2
+ disp(ifft(ee));
+ disp("********13**********");
+ ff = %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3; 21 8 2 5 6 3 4 123 5 6 0 5 548 7 65 4 2 166 4.12 65546 1.78 ]
+
+ disp(ifft(ff));
+ disp("********14**********");
+ // full complex
+
+ gg = aa + dd; //z2Fftz2
+ disp(ifft(gg));
+ disp("********15**********");
+ hh = bb + ee; // z2Fftd2
+ disp(ifft(hh));
+ disp("********16**********");
+ jj= cc + ff
+ disp(ifft(jj));
+
+
+endfunction
diff --git a/tests/unit_tests/test_double_Length.sci b/tests/unit_tests/test_double_Length.sci
new file mode 100644
index 00000000..8e8a8c52
--- /dev/null
+++ b/tests/unit_tests/test_double_Length.sci
@@ -0,0 +1,32 @@
+function test_double_Length()
+ disp(length(4));
+ disp(length(2+3*%i));
+ disp(length([1 2 3 ; 4 5 6]));
+ disp(length([1 2 3 ; 4 5 6]*%i));
+ e = %pi ;
+ disp(length(e)); // d0Lengthd0
+
+ f = e * %i;
+ disp(length(f));// z0Lengthd0
+
+ a = [1 2 3 ; 4 5 6];
+ disp(length(a));// d2Lengthd0
+
+ b = [1 2 3 ; 4 5 6] * %i;
+ disp(length(b));// z2Lengthd0
+
+
+ g = "pouet" ;
+ h = "a" ;
+
+ disp(length(g)); // g0Lengthd0
+ disp(length(h)); // g2Lengthd0
+
+ disp(length("pouet"));
+ disp(length("a"));
+
+
+
+
+
+endfunction
diff --git a/tests/unit_tests/test_double_Lev.sci b/tests/unit_tests/test_double_Lev.sci
new file mode 100644
index 00000000..d1669822
--- /dev/null
+++ b/tests/unit_tests/test_double_Lev.sci
@@ -0,0 +1,31 @@
+function test_double_Lev()
+
+ a = [1 2 3 4 5 6 7 8 9 10] ;
+
+ disp(lev(a)) ;
+
+ [aa aaa] = lev(a);
+ disp(aa);
+ disp(aaa)
+
+ [a1 aa1 aaa1] = lev (a);
+ disp(a1);
+ disp(aa1);
+ disp(aaa1);
+
+// complex
+ b =%i * [1 2 3 4 5 6 7 8 9 10] ;
+
+ disp(lev(b)) ;
+
+ [bb bbb] = lev(b);
+ disp(bb);
+ disp(bbb)
+
+ [b1 bb1 bbb1] = lev (b);
+ disp(b1);
+ disp(bb1);
+ disp(bbb1);
+
+
+endfunction
diff --git a/tests/unit_tests/test_double_Meanf.sci b/tests/unit_tests/test_double_Meanf.sci
new file mode 100644
index 00000000..2e88e4d9
--- /dev/null
+++ b/tests/unit_tests/test_double_Meanf.sci
@@ -0,0 +1,48 @@
+
+function test_double_Meanf()
+
+ disp (meanf (4 , 5 )) ;
+ disp ("*******1*******");
+ disp (meanf ([4 5 6], [1 2 3]));
+ disp ("*******2*******");
+ disp (meanf (4 , 5*%i )) ;
+ disp ("*******3*******");
+ disp (meanf ([4 5 6], [1 2 3]*%i));
+ disp ("*******4*******");
+
+
+
+ disp (meanf ([4 5 6 ; 7 8 9], [1 2 3 ; 4 5 6],1));
+ disp ("*******5*******");
+ disp (meanf ([4 7; 5 8; 6 9], [1 4; 2 5; 3 6],2));
+// complex
+ disp ("*******6*******");
+ disp (meanf (4 +4*%i , 5 )) ;
+ disp ("*******7*******");
+ disp (meanf ([4*%i, 5+6*%i, 6], [1 2 3]));
+ disp ("*******8*******");
+ disp (meanf (4 +4*%i , 5*%i )) ;
+ disp ("*******9*******");
+ disp (meanf ([4*%i, 5+6*%i, 6], [1 2 3]*%i));
+ disp ("******10*******");
+
+
+ disp (meanf ([4 5 6 ; 7 8 9]*%i, [1 2 3 ; 4 5 6],1));
+ disp ("******11*******");
+ disp (meanf ([4 7; 5 8; 6 9], [1 4; 2 5; 3 6]*%i,2));
+ disp ("******12*******");
+ disp (meanf ([4 5 6 ; 7 8 9],[1 2 3 ; 4 8 9] + [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******13*******");
+ disp (meanf ([4 7; 5 8; 6 9]*%i, [1 4; 2 5; 3 6],2));
+ disp ("******14*******");
+
+ disp (meanf ([4 5 6 ; 7 8 9]*%i, [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******15*******");
+ disp (meanf ([4 7; 5 8; 6 9]*%i, [1 4; 2 5; 3 6]*%i,2));
+ disp ("******16*******");
+//
+
+
+//
+
+endfunction
diff --git a/tests/unit_tests/test_double_OpApex.sci b/tests/unit_tests/test_double_OpApex.sci
new file mode 100644
index 00000000..77c04b70
--- /dev/null
+++ b/tests/unit_tests/test_double_OpApex.sci
@@ -0,0 +1,11 @@
+function test_double_OpApex()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0')
+ disp(d2')
+ disp(z0')
+ disp(z2')
+endfunction
diff --git a/tests/unit_tests/test_double_OpCc.sci b/tests/unit_tests/test_double_OpCc.sci
new file mode 100644
index 00000000..c306164c
--- /dev/null
+++ b/tests/unit_tests/test_double_OpCc.sci
@@ -0,0 +1,46 @@
+
+
+function test_double_OpCc()
+
+ a = [1 ; 2 ; 3 ; 4]; // d0d0OpCcs2
+ b = [7 ; a];// d0d2OpCcs2
+ c = [a ; 7];// d2d0OpCcs2
+ d = [a ; b];// d2d2OpCcs2
+ disp(a);
+ disp(b);
+ disp(c);
+ disp(d);
+
+ e = [1*%i ; 2*%i ; 3*%i ; 4*%i ];// z0z0OpCcz2
+ f = [7 ; e];// z0z2OpCcz2
+ g = [e ; 7];// z2z0OpCcz2
+ h = [e ; f];// z2z2OpCcz2
+
+ disp(e);
+ disp(f);
+ disp(g);
+ disp(h);
+
+
+ i = [%i ; 4.5]; // z0d0OpCcz2
+ j = [4.5 ; %i ]; // d0z0OpCcz2
+ k = [4.5 ; i ]; // d0z2OpCcz2
+ l = [i ; 4.5]; // z2d0OpCcz2
+
+ disp(i);
+ disp(j);
+ disp(k);
+ disp(l);
+
+ m = [1 ; 4.5];
+ n = [%i ; m ]; // z0d2OpCcz2
+ o = [m ; %i ]; // d0z2OpCcz2
+ p = [m ; n ]; // d2z2OpCcz2
+ q = [n ; m ]; // z2d2OpCcz2
+
+ disp(n);
+ disp(o);
+ disp(p);
+ disp(q);
+
+endfunction
diff --git a/tests/unit_tests/test_double_OpColon.sci b/tests/unit_tests/test_double_OpColon.sci
new file mode 100644
index 00000000..a7fbe196
--- /dev/null
+++ b/tests/unit_tests/test_double_OpColon.sci
@@ -0,0 +1,41 @@
+function test_double_OpColon()
+
+
+// A = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12];
+// B = A * %i ;
+d = %i ;
+a = %pi ;
+b = %e ;
+c = [7 8 5 ];
+disp(zeros ( a , %e ));
+
+disp(zeros ( %pi , %e));
+disp(zeros(c));
+disp(zeros ([4 5 6 ; 4 5 6]) );
+
+ disp(0:1:3);
+ disp(1:1);
+ disp(4+53*%i:0);
+//
+
+ disp(2:5);
+ disp(4+3*%i:8+%i);
+//
+
+ disp(1:5:1);
+ disp(%i:%i+1:2);
+//
+
+ disp(2:7:5);
+ disp(4+3*%i:4:8+%i);
+//a =4 + 53 *%i : 0 ;
+endfunction
+//OUT(1).SZ(2)= FA_INT(
+// FA_ADD(
+// FA_DIV(
+// FA_SUB(FA_REAL(IN(3).VAL,IN(3).TP),FA_REAL(IN(1).VAL, IN(3).TP))
+// ,FA_REAL(IN(2).VAL,IN(2).TP)
+// )
+// ,''1''
+// )
+// )
diff --git a/tests/unit_tests/test_double_OpDotApex.sci b/tests/unit_tests/test_double_OpDotApex.sci
new file mode 100644
index 00000000..89fab710
--- /dev/null
+++ b/tests/unit_tests/test_double_OpDotApex.sci
@@ -0,0 +1,11 @@
+function test_double_OpDotApex()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0.')
+ disp(d2.')
+ disp(z0.')
+ disp(z2.')
+endfunction
diff --git a/tests/unit_tests/test_double_OpDotBackSlash.sci b/tests/unit_tests/test_double_OpDotBackSlash.sci
new file mode 100644
index 00000000..3e9ac329
--- /dev/null
+++ b/tests/unit_tests/test_double_OpDotBackSlash.sci
@@ -0,0 +1,30 @@
+function test_double_OpDotBackSlash()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0.\d0)
+ disp(z0.\z0)
+ disp(d2.\d0)
+ disp(z2.\z0)
+
+ disp(d0.\d2)
+ disp(z0.\z2)
+
+ disp(d2.\d2)
+ disp(z2.\z2)
+
+ disp(d2.\z0)
+ disp(z2.\d0)
+
+ disp(d0.\z2)
+ disp(z0.\d2)
+
+ disp(d0.\z0)
+ disp(z0.\d0)
+
+ disp(d2.\z2)
+ disp(z2.\d2)
+
+endfunction
diff --git a/tests/unit_tests/test_double_OpDotHat.sci b/tests/unit_tests/test_double_OpDotHat.sci
new file mode 100644
index 00000000..a35f6c0f
--- /dev/null
+++ b/tests/unit_tests/test_double_OpDotHat.sci
@@ -0,0 +1,29 @@
+function test_double_OpDotHat()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0.^d0)
+ disp(z0.^z0)
+ disp(d2.^d0)
+ disp(z2.^z0)
+
+ disp(d0.^d2)
+ disp(z0.^z2)
+
+ disp(d2.^d2)
+ disp(z2.^z2)
+
+ disp(d2.^z0)
+ disp(z2.^d0)
+
+ disp(d0.^z2)
+ disp(z0.^d2)
+
+ disp(d0.^z0)
+ disp(z0.^d0)
+
+ disp(d2.^z2)
+ disp(z2.^d2)
+endfunction
diff --git a/tests/unit_tests/test_double_OpDotSlash.sci b/tests/unit_tests/test_double_OpDotSlash.sci
new file mode 100644
index 00000000..c9ba9dea
--- /dev/null
+++ b/tests/unit_tests/test_double_OpDotSlash.sci
@@ -0,0 +1,26 @@
+function test_double_OpDotSlash()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0./d0)
+ disp(d0./z0)
+ disp(d0./d2)
+ disp(d0./z2)
+
+ disp(d2./d0)
+ disp(d2./z0)
+ disp(d2./d2)
+ disp(d2./z2)
+
+ disp(z0./d0)
+ disp(z0./z0)
+ disp(z0./d2)
+ disp(z0./z2)
+
+ disp(z2./d0)
+ disp(z2./z0)
+ disp(z2./d2)
+ disp(z2./z2)
+endfunction
diff --git a/tests/unit_tests/test_double_OpDotStar.sci b/tests/unit_tests/test_double_OpDotStar.sci
new file mode 100644
index 00000000..fe74fddf
--- /dev/null
+++ b/tests/unit_tests/test_double_OpDotStar.sci
@@ -0,0 +1,26 @@
+function test_double_OpDotStar()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0.*d0)
+ disp(d0.*z0)
+ disp(d0.*d2)
+ disp(d0.*z2)
+
+ disp(d2.*d0)
+ disp(d2.*z0)
+ disp(d2.*d2)
+ disp(d2.*z2)
+
+ disp(z0.*d0)
+ disp(z0.*z0)
+ disp(z0.*d2)
+ disp(z0.*z2)
+
+ disp(z2.*d0)
+ disp(z2.*z0)
+ disp(z2.*d2)
+ disp(z2.*z2)
+endfunction
diff --git a/tests/unit_tests/test_double_OpEqual.sci b/tests/unit_tests/test_double_OpEqual.sci
new file mode 100644
index 00000000..ef493572
--- /dev/null
+++ b/tests/unit_tests/test_double_OpEqual.sci
@@ -0,0 +1,24 @@
+function test_double_OpEqual()
+
+ a = %pi;
+ disp(a);
+
+
+ b = %pi + %i;
+ disp(b);
+
+
+ c = "a";
+ disp(c);
+
+
+ d =[ %pi 4 5];
+ disp(d);
+
+ e = [7 8 9]*%i;
+ disp(e);
+
+ f = "plopilou" ;
+ disp(f);
+
+endfunction
diff --git a/tests/unit_tests/test_double_OpExt.sci b/tests/unit_tests/test_double_OpExt.sci
new file mode 100644
index 00000000..d924d35f
--- /dev/null
+++ b/tests/unit_tests/test_double_OpExt.sci
@@ -0,0 +1,25 @@
+function test_double_OpExt ()
+
+ a = [1 2 3 ; 4 5 6];
+
+
+ disp(a(2));
+ disp(a([3 5]));
+ disp(a(2,3));
+ disp(a(2,[2 3]));
+ disp(a ([1 2],1));
+ disp(a ([1 2],[2 3]));
+
+
+ b = [1 2 3 ; 4 5 6] * %i;
+
+
+ disp(b(2));
+ disp(b([3 5]));
+ disp(b(2,3));
+ disp(b(2,[2 3]));
+ disp(b ([1 2],1));
+ disp(b ([1 2],[2 3]));
+
+
+endfunction
diff --git a/tests/unit_tests/test_double_OpHat.sci b/tests/unit_tests/test_double_OpHat.sci
new file mode 100644
index 00000000..44e8f2c8
--- /dev/null
+++ b/tests/unit_tests/test_double_OpHat.sci
@@ -0,0 +1,29 @@
+function test_double_OpHat()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0^d0)
+ disp(z0^z0)
+ disp(d2^d0)
+ disp(z2^z0)
+
+ disp(d0^d2)
+ disp(z0^z2)
+
+ //disp(d2^d2) // ! Not implemented in Scilab !
+ //disp(z2^z2) // ! Not implemented in Scilab !
+
+ disp(d2^z0)
+ disp(z2^d0)
+
+ disp(d0^z2)
+ disp(z0^d2)
+
+ disp(d0^z0)
+ disp(z0^d0)
+
+ //disp(d2^z2) // ! Not implemented in Scilab !
+ //disp(z2^d2) // ! Not implemented in Scilab !
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_OpIns.sci b/tests/unit_tests/test_double_OpIns.sci
new file mode 100644
index 00000000..d6ca31aa
--- /dev/null
+++ b/tests/unit_tests/test_double_OpIns.sci
@@ -0,0 +1,129 @@
+function test_double_OpIns()
+ //reals
+a=[1 2 3; 4 5 6]
+
+a(3)=-2
+disp(a);
+
+a(3)=-4+%i
+disp(a);
+
+a(1,3)=-12;
+disp(a);
+
+a(1,3)=-5+%i;
+disp(a);
+
+a([1,2],1)=-12;
+disp(a);
+
+a([1,2],1)=-5+%i;
+disp(a);
+
+a(2,[2,3])=-12;
+disp(a);
+
+a(2,[2,3])=-5+%i;
+disp(a);
+
+a([1 2],[1,2,3])=4;
+disp(a);
+
+a([1 2],[1,2,3])=3+%i;
+disp(a);
+
+a([1,3])=7;
+disp(a);
+
+a([1,3])=2+%i;
+disp(a);
+
+a([1,3])=[1,0];
+disp(a);
+
+a([1,3])=[3-%i,1+%i];
+disp(a);
+
+a(2,[1,3])=[-2,-7];
+disp(a);
+
+a(2,[1,3])=[-4+%i,-5+%i];
+disp(a);
+
+a([1,2],3)=[-9;-1];
+disp(a);
+
+a([1,2],3)=[-4+%i;-5+%i];
+disp(a);
+
+a([1,2],[2,3])=[-31 -45;-29 -51];
+disp(a);
+
+a([1,2],[2,3])=[-4+%i,-5+%i;-4+%i,-5+%i];
+disp(a);
+
+
+//complexes
+
+b=[1-3*%i 2+%i 3+2*%i; 4 5+4*%i 6]
+
+b(3)=-2
+disp(b);
+
+b(3)=-4+%i
+disp(b);
+
+b(1,3)=-12;
+disp(b);
+
+b(1,3)=-5+%i;
+disp(b);
+
+b([1,2],1)=-12;
+disp(b);
+
+b([1,2],1)=-5+%i;
+disp(b);
+
+b(2,[2,3])=-12;
+disp(b);
+
+b(2,[2,3])=-5+%i;
+disp(b);
+
+b([1 2],[1,2,3])=4;
+disp(b);
+
+b([1 2],[1,2,3])=3+%i;
+disp(b);
+
+b([1,3])=7;
+disp(b);
+
+b([1,3])=2+%i;
+disp(b);
+
+b([1,3])=[1,0];
+disp(b);
+
+b([1,3])=[3-%i,1+%i];
+disp(b);
+
+b(2,[1,3])=[-2,-7];
+disp(b);
+
+b(2,[1,3])=[-4+%i,-5+%i];
+disp(b);
+
+b([1,2],3)=[-9;-1];
+disp(b);
+
+b([1,2],3)=[-4+%i;-5+%i];
+disp(b);
+
+b([1,2],[2,3])=[-31 -45;-29 -51];
+disp(b);
+
+b([1,2],[2,3])=[-4+%i,-5+%i;-4+%i,-5+%i];
+disp(b);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_OpLogAnd.sci b/tests/unit_tests/test_double_OpLogAnd.sci
new file mode 100644
index 00000000..fc2fdfb2
--- /dev/null
+++ b/tests/unit_tests/test_double_OpLogAnd.sci
@@ -0,0 +1,29 @@
+function test_double_OpLogAnd()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0&d0)
+ disp(z0&z0)
+ disp(d2&d0)
+ disp(z2&z0)
+
+ disp(d0&d2)
+ disp(z0&z2)
+
+ disp(d2&d2)
+ disp(z2&z2)
+
+ disp(d2&z0)
+ disp(z2&d0)
+
+ disp(d0&z2)
+ disp(z0&d2)
+
+ disp(d0&z0)
+ disp(z0&d0)
+
+ disp(d2&z2)
+ disp(z2&d2)
+endfunction
diff --git a/tests/unit_tests/test_double_OpLogEq.sci b/tests/unit_tests/test_double_OpLogEq.sci
new file mode 100644
index 00000000..f24c236f
--- /dev/null
+++ b/tests/unit_tests/test_double_OpLogEq.sci
@@ -0,0 +1,33 @@
+function test_double_OpLogEq()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+ g0 = 'A'
+ g2 = "foo"
+
+ //disp(g0==g0) // ! Unable to manage this case !
+
+ disp(d0==d0)
+ disp(z0==z0)
+ disp(d2==d0)
+ disp(z2==z0)
+
+ disp(d0==d2)
+ disp(z0==z2)
+
+ disp(d2==d2)
+ disp(z2==z2)
+
+ disp(d2==z0)
+ disp(z2==d0)
+
+ disp(d0==z2)
+ disp(z0==d2)
+
+ disp(d0==z0)
+ disp(z0==d0)
+
+ disp(d2==z2)
+ disp(z2==d2)
+endfunction
diff --git a/tests/unit_tests/test_double_OpLogGe.sci b/tests/unit_tests/test_double_OpLogGe.sci
new file mode 100644
index 00000000..b50166c1
--- /dev/null
+++ b/tests/unit_tests/test_double_OpLogGe.sci
@@ -0,0 +1,29 @@
+function test_double_OpLogGe()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0>=d0)
+ //disp(z0>=z0)
+ disp(d2>=d0)
+ //disp(z2>=z0)
+
+ disp(d0>=d2)
+ //disp(z0>=z2)
+
+ disp(d2>=d2)
+ //disp(z2>=z2)
+
+ //disp(d2>=z0)
+ //disp(z2>=d0)
+
+ //disp(d0>=z2)
+ //disp(z0>=d2)
+
+ //disp(d0>=z0)
+ //disp(z0>=d0)
+
+ //disp(d2>=z2)
+ //disp(z2>=d2)
+ endfunction
diff --git a/tests/unit_tests/test_double_OpLogGt.sci b/tests/unit_tests/test_double_OpLogGt.sci
new file mode 100644
index 00000000..848da1c7
--- /dev/null
+++ b/tests/unit_tests/test_double_OpLogGt.sci
@@ -0,0 +1,30 @@
+function test_double_OpLogGt()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0>d0)
+ //disp(z0>z0)
+ disp(d2>d0)
+ //disp(z2>z0)
+
+ disp(d0>d2)
+ //disp(z0>z2)
+
+ disp(d2>d2)
+ //disp(z2>z2)
+
+ //disp(d2>z0)
+ //disp(z2>d0)
+
+ //disp(d0>z2)
+ //disp(z0>d2)
+
+ //disp(d0>z0)
+ //disp(z0>d0)
+
+ //disp(d2>z2)
+ //disp(z2>d2)
+
+endfunction
diff --git a/tests/unit_tests/test_double_OpLogLe.sci b/tests/unit_tests/test_double_OpLogLe.sci
new file mode 100644
index 00000000..77e3f6e2
--- /dev/null
+++ b/tests/unit_tests/test_double_OpLogLe.sci
@@ -0,0 +1,29 @@
+function test_double_OpLogLe()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0<=d0)
+ //disp(z0<=z0)
+ disp(d2<=d0)
+ //disp(z2<=z0)
+
+ disp(d0<=d2)
+ //disp(z0<=z2)
+
+ disp(d2<=d2)
+ //disp(z2<=z2)
+
+ //disp(d2<=z0)
+ //disp(z2<=d0)
+
+ //disp(d0<=z2)
+ //disp(z0<=d2)
+
+ //disp(d0<=z0)
+ //disp(z0<=d0)
+
+ //disp(d2<=z2)
+ //disp(z2<=d2)
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_OpLogLt.sci b/tests/unit_tests/test_double_OpLogLt.sci
new file mode 100644
index 00000000..416f8dcb
--- /dev/null
+++ b/tests/unit_tests/test_double_OpLogLt.sci
@@ -0,0 +1,29 @@
+function test_double_OpLogLt()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0<d0)
+ //disp(z0<z0)
+ disp(d2<d0)
+ //disp(z2<z0)
+
+ disp(d0<d2)
+ //disp(z0<z2)
+
+ disp(d2<d2)
+ //disp(z2<z2)
+
+ //disp(d2<z0)
+ //disp(z2<d0)
+
+ //disp(d0<z2)
+ //disp(z0<d2)
+
+ //disp(d0<z0)
+ //disp(z0<d0)
+
+ //disp(d2<z2)
+ //disp(z2<d2)
+endfunction
diff --git a/tests/unit_tests/test_double_OpLogNe.sci b/tests/unit_tests/test_double_OpLogNe.sci
new file mode 100644
index 00000000..892efb58
--- /dev/null
+++ b/tests/unit_tests/test_double_OpLogNe.sci
@@ -0,0 +1,33 @@
+function test_double_OpLogNe()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+ g0 = 'A'
+ g2 = "foo"
+
+ //disp(g0<>g0)
+
+ disp(d0<>d0)
+ disp(z0<>z0)
+ disp(d2<>d0)
+ disp(z2<>z0)
+
+ disp(d0<>d2)
+ disp(z0<>z2)
+
+ disp(d2<>d2)
+ disp(z2<>z2)
+
+ disp(d2<>z0)
+ disp(z2<>d0)
+
+ disp(d0<>z2)
+ disp(z0<>d2)
+
+ disp(d0<>z0)
+ disp(z0<>d0)
+
+ disp(d2<>z2)
+ disp(z2<>d2)
+endfunction
diff --git a/tests/unit_tests/test_double_OpLogNot.sci b/tests/unit_tests/test_double_OpLogNot.sci
new file mode 100644
index 00000000..6b103544
--- /dev/null
+++ b/tests/unit_tests/test_double_OpLogNot.sci
@@ -0,0 +1,23 @@
+function test_double_OpLogNot()
+// test OpLogNot
+
+ disp(~(-2))
+ disp(~(0))
+ disp(~(3))
+
+ disp(~(0-2*%i))
+ disp(~(0+0*%i))
+ disp(~(0+3*%i))
+ disp(~(3-5*%i))
+ disp(~(3+0*%i))
+ disp(~(3+6*%i))
+
+ a=[-1 2 3; 0 -1 4; 2 -0 5];
+
+ disp(~(a))
+
+ b=[0+3*%i 2-%i 1 ; 0-2*%i 2+2*%i 1-%i; 0+0*%i 4+0*%i 5-0*%i]
+
+ disp(~(b))
+
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_OpLogOr.sci b/tests/unit_tests/test_double_OpLogOr.sci
new file mode 100644
index 00000000..50e9c98c
--- /dev/null
+++ b/tests/unit_tests/test_double_OpLogOr.sci
@@ -0,0 +1,29 @@
+function test_double_OpLogOr()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0|d0)
+ disp(z0|z0)
+ disp(d2|d0)
+ disp(z2|z0)
+
+ disp(d0|d2)
+ disp(z0|z2)
+
+ disp(d2|d2)
+ disp(z2|z2)
+
+ disp(d2|z0)
+ disp(z2|d0)
+
+ disp(d0|z2)
+ disp(z0|d2)
+
+ disp(d0|z0)
+ disp(z0|d0)
+
+ disp(d2|z2)
+ disp(z2|d2)
+endfunction
diff --git a/tests/unit_tests/test_double_OpMinus.sci b/tests/unit_tests/test_double_OpMinus.sci
new file mode 100644
index 00000000..9220cce1
--- /dev/null
+++ b/tests/unit_tests/test_double_OpMinus.sci
@@ -0,0 +1,45 @@
+function test_double_OpMinus()
+ a = 1;
+ b = 2;
+ c = a - b; // d0d0OpMinusd0
+ disp(c);
+
+ d = 1 - %i; // d0z0OpMinusz0
+ e = %i - 3; // z0d0OpMinusz0
+ f = d - e; // z0z0OpMinusz0
+
+ disp(f);
+
+ g = [1 2 3; 4 5 6];
+ h = 10;
+ w = g - h; // d2d0OpMinusd2
+ j = h - g; // d0d2OpMinusd2
+
+ disp(j);
+
+ k = [9 8 7; 6 5 4; 3 2 1]
+ l = [1 2 3; 4 5 6; 7 8 9]
+ m = k - l // d2d2OpMinusd2
+
+ disp(m);
+ n = k - 2 * %i; //d2z0OpMinusz2
+ o = 3 * %i - l; //z0d2OpMinusz2
+ p = n - o; // z2z2OpMinusz2
+
+ disp(p);
+ q = [1 2 3 ; 4 5 6 ; 7 8 9]
+ r = %pi * %i;
+ s = q - r; // d2z0OpMinusz2
+ t = r - q; // z0d2OpMinusz2
+
+ disp(s);
+ disp(t);
+ u = [1 2 3] - %i * [4 5 6]
+ v = [7 8 9]
+ x = u - v; // z2d2OpMinusz2
+ y = v - u; // d2z2OpMinusz2
+
+ disp(x);
+
+ disp(y);
+endfunction
diff --git a/tests/unit_tests/test_double_OpPlus.sci b/tests/unit_tests/test_double_OpPlus.sci
new file mode 100644
index 00000000..b0f3c6aa
--- /dev/null
+++ b/tests/unit_tests/test_double_OpPlus.sci
@@ -0,0 +1,32 @@
+function test_double_OpPlus()
+ a = 1;
+ b = 2;
+ c = a + b; // d0d0OpPlusd0
+
+ d = 1 + %i; // d0z0OpPlusz0
+ e = %i + 3; // z0d0OpPlusz0
+ f = d + e; // z0z0OpPlusz0
+
+ g = [1 2 3; 4 5 6];
+ h = 10;
+ w = g + h; // d2d0OpPlusd2
+ j = h + g; // d0d2OpPlusd2
+
+ k = [9 8 7; 6 5 4; 3 2 1]
+ l = [1 2 3; 4 5 6; 7 8 9]
+ m = k + l // d2d2OpPlusd2
+
+ n = k + 2 * %i; //d2z0OpPlusz2
+ o = 3 * %i + l; //z0d2OpPlusz2
+ p = n + o; // z2z2OpPlusz2
+
+ q = [1 2 3 ; 4 5 6 ; 7 8 9]
+ r = 3 * %i;
+ s = q + r; // d2z0OpPlusz2
+ t = r + q; // z0d2OpPlusz2
+
+ u = [1 2 3] + %i * [4 5 6]
+ v = [7 8 9]
+ x = u + v; // z2d2OpPlusz2
+ y = v + u; // d2z2OpPlusz2
+endfunction
diff --git a/tests/unit_tests/test_double_OpRc.sci b/tests/unit_tests/test_double_OpRc.sci
new file mode 100644
index 00000000..8a9afd8e
--- /dev/null
+++ b/tests/unit_tests/test_double_OpRc.sci
@@ -0,0 +1,45 @@
+
+function test_double_OpRc()
+
+ a = [1 , 2 , 3 , 4]; // d0d0OpRcs2
+ b = [7 , a];// d0d2OpRcs2
+ c = [a , 7];// d2d0OpRcs2
+ d = [a , b];// d2d2OpRcs2
+ disp(a);
+ disp(b);
+ disp(c);
+ disp(d);
+
+ e = [1*%i , 2*%i , 3*%i , 4*%i ];// z0z0OpRcz2
+ f = [7 , e];// z0z2OpRcz2
+ g = [e , 7];// z2z0OpRcz2
+ h = [e , f];// z2z2OpRcz2
+
+ disp(e);
+ disp(f);
+ disp(g);
+ disp(h);
+
+
+ i = [%i , 4.5]; // z0d0OpRcz2
+ j = [4.5 , %i ]; // d0z0OpRcz2
+ k = [4.5 , i ]; // d0z2OpRcz2
+ l = [i , 4.5]; // z2d0OpRcz2
+
+ disp(i);
+ disp(j);
+ disp(k);
+ disp(l);
+
+ m = [1 , 4.5];
+ n = [%i , m ]; // z0d2OpRcz2
+ o = [m , %i ]; // d0z2OpRcz2
+ p = [m , n ]; // d2z2OpRcz2
+ q = [n , m ]; // z2d2OpRcz2
+
+ disp(n);
+ disp(o);
+ disp(p);
+ disp(q);
+
+endfunction
diff --git a/tests/unit_tests/test_double_OpSlash.sci b/tests/unit_tests/test_double_OpSlash.sci
new file mode 100644
index 00000000..8012584c
--- /dev/null
+++ b/tests/unit_tests/test_double_OpSlash.sci
@@ -0,0 +1,32 @@
+function test_double_OpSlash()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0/d0)
+ disp(d0/z0)
+ disp(z0/d0)
+ disp(z0/z0)
+
+ disp(d2/d0)
+ disp(d2/z0)
+ disp(z2/d0)
+ disp(z2/z0)
+
+ disp(d0/d2)
+ disp(d0/z2)
+ disp(z0/d2)
+ disp(z0/z2)
+
+ disp(d2/d2)
+ disp(d2/z2)
+ disp(z2/d2)
+ disp(z2/z2)
+
+ disp([1 2 3]/[1 2 3]) //d2d2OpSlashd0
+ disp([1 2 3]/(%i * [1 2 3])) //d2z2OpSlashz0
+ disp((%i * [1 2 3])/[1 2 3]) //z2d2OpSlashz0
+ disp((%i * [1 2 3])/(%i * [1 2 3])) //z2z2OpSlashz0
+
+endfunction
diff --git a/tests/unit_tests/test_double_OpStar.sci b/tests/unit_tests/test_double_OpStar.sci
new file mode 100644
index 00000000..12797bbb
--- /dev/null
+++ b/tests/unit_tests/test_double_OpStar.sci
@@ -0,0 +1,31 @@
+function test_double_OpStar()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0*d0)
+ disp(d0*z0)
+ disp(z0*d0)
+ disp(z0*z0)
+
+ disp(d2*d0)
+ disp(d2*z0)
+ disp(z2*d0)
+ disp(z2*z0)
+
+ disp(d0*d2)
+ disp(d0*z2)
+ disp(z0*d2)
+ disp(z0*z2)
+
+ disp(d2*d2)
+ disp(d2*z2)
+ disp(z2*d2)
+ disp(z2*z2)
+
+ disp([1 2 3]*[1 2 3]') //d2d2OpStard0
+ disp([1 2 3]*(%i * [1 2 3])') //d2z2OpStarz0
+ disp((%i * [1 2 3])*[1 2 3]') //z2d2OpStarz0
+ disp((%i * [1 2 3])*(%i * [1 2 3])') //z2z2OpStarz0
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_Size.sci b/tests/unit_tests/test_double_Size.sci
new file mode 100644
index 00000000..e25f5627
--- /dev/null
+++ b/tests/unit_tests/test_double_Size.sci
@@ -0,0 +1,41 @@
+function test_double_Size()
+ disp(size(4));
+ disp(size([1 2]))
+ disp(size(2+3*%i));
+ disp(size([1 2 3 ; 4 5 6]));
+ disp(size([1 2 3 ; 4 5 6]*%i));
+ e = %pi ;
+ disp(size(e)); // d0Sized0
+
+ f = e * %i;
+ disp(size(f));// z0Sized0
+
+ a = [1 2 3 ; 4 5 6];
+ disp(size(a));// d2Sized0
+
+ b = [1 2 3 ; 4 5 6] * %i;
+ disp(size(b));// z2Sized0
+
+// with a second argument
+ o=1;
+
+ disp(size(4,1));
+ disp(size(2+3*%i,1));
+ disp(size([1 2 3 ; 4 5 6],o));
+ disp(size([1 2 3 ; 4 5 6]*%i,1));
+ e = %pi ;
+ disp(size(e,1)); // d0Sized0
+
+ f = e * %i;
+ disp(size(f,1));// z0Sized0
+
+ a = [1 2 3 ; 4 5 6];
+ disp(size(a,o));// d2Sized0
+
+ b = [1 2 3 ; 4 5 6] * %i;
+ disp(size(b,1));// z2Sized0
+
+
+
+
+endfunction
diff --git a/tests/unit_tests/test_double_Spec.sci b/tests/unit_tests/test_double_Spec.sci
new file mode 100644
index 00000000..61cca50f
--- /dev/null
+++ b/tests/unit_tests/test_double_Spec.sci
@@ -0,0 +1,41 @@
+function test_double_Spec()
+
+
+ disp(spec(45)) ; // d0Spec
+ disp(spec(4+3*%i)); // z0Spec
+
+ a = [1 2 3; -4 5 98 ; 7 8 5] ;
+ b = [1 2 3; -4 5 98 ; 7 -100000 5] ;
+
+
+ disp(spec(a));
+ disp(spec(b));
+
+ disp(spec(a*%i));
+ // 2 outputs
+
+ [aa bb] = spec(45) ; // d0Spec
+ disp(aa);
+ disp(bb);
+
+ [cc dd] = spec(4+3*%i); // z0Spec
+
+ disp(cc);
+ disp(dd);
+
+ a = [1 2 3; -4 5 98 ; 7 8 5] ;
+ b = [1 2 3; -4 5 98 ; 7 -100000 5] ;
+
+
+ [ee ff] = spec(a);
+ disp(ee);
+ disp(ff);
+ [gg hh] = spec(b);
+ disp(gg);
+ disp(hh);
+
+ [ii jj] = spec(a*%i);
+ disp(ii);
+ disp(jj);
+
+endfunction
diff --git a/tests/unit_tests/test_double_Stdevf.sci b/tests/unit_tests/test_double_Stdevf.sci
new file mode 100644
index 00000000..2798f98d
--- /dev/null
+++ b/tests/unit_tests/test_double_Stdevf.sci
@@ -0,0 +1,45 @@
+
+function test_double_Stdevf()
+ disp (stdevf (4 , 5 )) ;
+ disp ("*******1*******");
+ disp (stdevf ([4 5 6], [1 2 3]));
+ disp ("*******2*******");
+ disp (stdevf (4 , 5*%i )) ;
+ disp ("*******3*******");
+ disp (stdevf ([4 5 6], [1 2 3]*%i));
+ disp ("*******4*******");
+
+
+
+ disp (stdevf ([4 5 6 ; 7 8 9], [1 2 3 ; 4 5 6],1));
+ disp ("*******5*******");
+ disp (stdevf ([4 7; 5 8; 6 9], [1 4; 2 5; 3 6],2));
+// complex
+ disp ("*******6*******");
+ disp (stdevf (4 +4*%i , 5 )) ;
+ disp ("*******7*******");
+ disp (stdevf ([4*%i, 5+6*%i, 6], [1 2 3]));
+ disp ("*******8*******");
+ disp (stdevf (4 +4*%i , 5*%i )) ;
+ disp ("*******9*******");
+ disp (stdevf ([4*%i, 5+6*%i, 6], [1 2 3]*%i));
+ disp ("******10*******");
+
+
+ disp (stdevf ([4 5 6 ; 7 8 9]*%i, [1 2 3 ; 4 5 6],1));
+ disp ("******11*******");
+ disp (stdevf ([4 7; 5 8; 6 9], [1 4; 2 5; 3 6]*%i,2));
+ disp (stdevf ([4 5 6 ; 7 8 9],[1 2 3 ; 4 8 9] + [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******12*******");
+ disp (stdevf ([4 5 6 ; 7 8 9], [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******13*******");
+ disp (stdevf ([4 7; 5 8; 6 9]*%i, [1 4; 2 5; 3 6],2));
+ disp ("******14*******");
+
+ disp (stdevf ([4 5 6 ; 7 8 9]*%i, [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******15*******");
+ disp (stdevf ([4 7; 5 8; 6 9]*%i, [1 4; 2 5; 3 6]*%i,2));
+ disp ("******16*******");
+//
+
+endfunction
diff --git a/tests/unit_tests/test_double_Trace.sci b/tests/unit_tests/test_double_Trace.sci
new file mode 100644
index 00000000..722c75a5
--- /dev/null
+++ b/tests/unit_tests/test_double_Trace.sci
@@ -0,0 +1,13 @@
+function test_double_Trace()
+
+ a = [1 2 3; 4 %pi 5; 4.5 -3 2];
+ disp(trace(a));
+
+ b = %i * [1 2 3; 4 %pi 5; 4.5 -3 2];
+ disp(trace(b));
+
+
+ disp(trace(5));
+
+ disp(trace(%i));
+endfunction
diff --git a/tests/unit_tests/test_double_Type.sci b/tests/unit_tests/test_double_Type.sci
new file mode 100644
index 00000000..4585c65d
--- /dev/null
+++ b/tests/unit_tests/test_double_Type.sci
@@ -0,0 +1,8 @@
+function test_double_Type()
+
+ disp(type(%pi));
+ disp(type(%pi + %i));
+ disp(type([%pi 4]));
+ disp(type([%pi %i]));
+
+endfunction
diff --git a/tests/unit_tests/test_double_abs.sci b/tests/unit_tests/test_double_abs.sci
new file mode 100644
index 00000000..9faccf25
--- /dev/null
+++ b/tests/unit_tests/test_double_abs.sci
@@ -0,0 +1,11 @@
+function test_double_abs()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(abs(d0))
+ disp(abs(z0))
+ disp(abs(d2))
+ disp(abs(z2))
+endfunction
diff --git a/tests/unit_tests/test_double_acos.sci b/tests/unit_tests/test_double_acos.sci
new file mode 100644
index 00000000..14bb88af
--- /dev/null
+++ b/tests/unit_tests/test_double_acos.sci
@@ -0,0 +1,11 @@
+function test_double_acos()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ acos(d0);
+ acos(d2);
+ acos(z0);
+ acos(z2);
+endfunction
diff --git a/tests/unit_tests/test_double_acosh.sci b/tests/unit_tests/test_double_acosh.sci
new file mode 100644
index 00000000..73fe317a
--- /dev/null
+++ b/tests/unit_tests/test_double_acosh.sci
@@ -0,0 +1,11 @@
+function test_double_acosh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(acosh(d0));
+ disp(acosh(d2));
+ disp(acosh(z0));
+ disp(acosh(z2));
+endfunction
diff --git a/tests/unit_tests/test_double_asin.sci b/tests/unit_tests/test_double_asin.sci
new file mode 100644
index 00000000..b95efcf8
--- /dev/null
+++ b/tests/unit_tests/test_double_asin.sci
@@ -0,0 +1,11 @@
+function test_double_asin()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(asin(d0));
+ disp(asin(d2));
+ disp(asin(z0));
+ disp(asin(z2));
+endfunction
diff --git a/tests/unit_tests/test_double_asinh.sci b/tests/unit_tests/test_double_asinh.sci
new file mode 100644
index 00000000..d912f201
--- /dev/null
+++ b/tests/unit_tests/test_double_asinh.sci
@@ -0,0 +1,11 @@
+function test_double_asinh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ asinh(d0);
+ asinh(d2);
+ asinh(z0);
+ asinh(z2);
+endfunction
diff --git a/tests/unit_tests/test_double_atan.sci b/tests/unit_tests/test_double_atan.sci
new file mode 100644
index 00000000..7126dfea
--- /dev/null
+++ b/tests/unit_tests/test_double_atan.sci
@@ -0,0 +1,14 @@
+function test_double_atan()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(atan(d0));
+ disp(atan(d2));
+ disp(atan(z0));
+ disp(atan(z2));
+
+ disp(atan(d0,d0));
+ disp(atan(d2,d2));
+endfunction
diff --git a/tests/unit_tests/test_double_atanh.sci b/tests/unit_tests/test_double_atanh.sci
new file mode 100644
index 00000000..3bef7ef3
--- /dev/null
+++ b/tests/unit_tests/test_double_atanh.sci
@@ -0,0 +1,11 @@
+function test_double_atanh()
+ d0 = %pi
+ d2 = [2 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(atanh(d0));
+ disp(atanh(d2));
+ disp(atanh(z0));
+ disp(atanh(z2));
+endfunction
diff --git a/tests/unit_tests/test_double_ceil.sci b/tests/unit_tests/test_double_ceil.sci
new file mode 100644
index 00000000..84d96fab
--- /dev/null
+++ b/tests/unit_tests/test_double_ceil.sci
@@ -0,0 +1,11 @@
+function test_double_ceil()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ ceil(d0);
+ ceil(d2);
+ ceil(z0);
+ ceil(z2);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_chol.sci b/tests/unit_tests/test_double_chol.sci
new file mode 100644
index 00000000..33c129f5
--- /dev/null
+++ b/tests/unit_tests/test_double_chol.sci
@@ -0,0 +1,11 @@
+function test_double_chol()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(chol(d0));
+ disp(chol(d2*d2'));
+ disp(chol(z0));
+ disp(chol(z2*z2'));
+endfunction
diff --git a/tests/unit_tests/test_double_conj.sci b/tests/unit_tests/test_double_conj.sci
new file mode 100644
index 00000000..8ccea9c3
--- /dev/null
+++ b/tests/unit_tests/test_double_conj.sci
@@ -0,0 +1,11 @@
+function test_double_conj()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ conj(d0);
+ conj(d2);
+ conj(z0);
+ conj(z2);
+endfunction
diff --git a/tests/unit_tests/test_double_cos.sci b/tests/unit_tests/test_double_cos.sci
new file mode 100644
index 00000000..25020612
--- /dev/null
+++ b/tests/unit_tests/test_double_cos.sci
@@ -0,0 +1,11 @@
+function test_double_cos()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ cos(d0);
+ cos(d2);
+ cos(z0);
+ cos(z2);
+endfunction
diff --git a/tests/unit_tests/test_double_cosh.sci b/tests/unit_tests/test_double_cosh.sci
new file mode 100644
index 00000000..6d688b2c
--- /dev/null
+++ b/tests/unit_tests/test_double_cosh.sci
@@ -0,0 +1,11 @@
+function test_double_cosh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ cosh(d0);
+ cosh(d2);
+ cosh(z0);
+ cosh(z2);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_exp.sci b/tests/unit_tests/test_double_exp.sci
new file mode 100644
index 00000000..d00388bd
--- /dev/null
+++ b/tests/unit_tests/test_double_exp.sci
@@ -0,0 +1,11 @@
+function test_double_exp()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ exp(d0);
+ exp(d2);
+ exp(z0);
+ exp(z2);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_eye.sci b/tests/unit_tests/test_double_eye.sci
new file mode 100644
index 00000000..4bf9727d
--- /dev/null
+++ b/tests/unit_tests/test_double_eye.sci
@@ -0,0 +1,14 @@
+function test_double_eye()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(eye(d0))
+ disp(eye(z0))
+ disp(eye(d2))
+ disp(eye(z2))
+ //disp(eye(0,0)) // ! sci2c does not manage [] !
+ disp(eye(1,1))
+ disp(eye(d0,d0))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_fix.sci b/tests/unit_tests/test_double_fix.sci
new file mode 100644
index 00000000..827276a7
--- /dev/null
+++ b/tests/unit_tests/test_double_fix.sci
@@ -0,0 +1,11 @@
+function test_double_fix()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ fix(d0);
+ fix(d2);
+ fix(z0);
+ fix(z2);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_floor.sci b/tests/unit_tests/test_double_floor.sci
new file mode 100644
index 00000000..abfcd6bd
--- /dev/null
+++ b/tests/unit_tests/test_double_floor.sci
@@ -0,0 +1,11 @@
+function test_double_floor()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ floor(d0);
+ floor(d2);
+ floor(z0);
+ floor(z2);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_imag.sci b/tests/unit_tests/test_double_imag.sci
new file mode 100644
index 00000000..aa7da25e
--- /dev/null
+++ b/tests/unit_tests/test_double_imag.sci
@@ -0,0 +1,11 @@
+function test_double_imag()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(imag(d0))
+ disp(imag(z0))
+ disp(imag(d2))
+ disp(imag(z2))
+endfunction
diff --git a/tests/unit_tests/test_double_int.sci b/tests/unit_tests/test_double_int.sci
new file mode 100644
index 00000000..00a4aaef
--- /dev/null
+++ b/tests/unit_tests/test_double_int.sci
@@ -0,0 +1,11 @@
+function test_double_int()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ int(d0);
+ int(d2);
+ int(z0);
+ int(z2);
+endfunction
diff --git a/tests/unit_tests/test_double_inv.sci b/tests/unit_tests/test_double_inv.sci
new file mode 100644
index 00000000..956abe56
--- /dev/null
+++ b/tests/unit_tests/test_double_inv.sci
@@ -0,0 +1,11 @@
+function test_double_inv()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ inv(d0);
+ inv(d2);
+ inv(z0);
+ inv(z2);
+endfunction
diff --git a/tests/unit_tests/test_double_isnan.sci b/tests/unit_tests/test_double_isnan.sci
new file mode 100644
index 00000000..1ea38d48
--- /dev/null
+++ b/tests/unit_tests/test_double_isnan.sci
@@ -0,0 +1,11 @@
+function test_double_isnan()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(isnan(d0))
+ disp(isnan(d2))
+ disp(isnan(z0))
+ disp(isnan(z2))
+endfunction
diff --git a/tests/unit_tests/test_double_log.sci b/tests/unit_tests/test_double_log.sci
new file mode 100644
index 00000000..b5790f14
--- /dev/null
+++ b/tests/unit_tests/test_double_log.sci
@@ -0,0 +1,11 @@
+function test_double_log()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(log(d0));
+ disp(log(d2));
+ disp(log(z0));
+ disp(log(z2));
+endfunction
diff --git a/tests/unit_tests/test_double_log10.sci b/tests/unit_tests/test_double_log10.sci
new file mode 100644
index 00000000..a30176d9
--- /dev/null
+++ b/tests/unit_tests/test_double_log10.sci
@@ -0,0 +1,11 @@
+ function test_double_log10()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(log10(d0));
+ disp(log10(d2));
+ disp(log10(z0));
+ disp(log10(z2));
+ endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_log1p.sci b/tests/unit_tests/test_double_log1p.sci
new file mode 100644
index 00000000..03196ceb
--- /dev/null
+++ b/tests/unit_tests/test_double_log1p.sci
@@ -0,0 +1,12 @@
+function test_double_log1p()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(log1p(d0));
+ disp(log1p(d2));
+ //disp(log1p(z0)); // ! Not Implemented in Scilab !
+ //disp(log1p(z2)); // ! Not Implemented in Scilab !
+
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_max.sci b/tests/unit_tests/test_double_max.sci
new file mode 100644
index 00000000..b43e47a4
--- /dev/null
+++ b/tests/unit_tests/test_double_max.sci
@@ -0,0 +1,32 @@
+function test_double_max()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(max(d0))
+ //disp(max(z0))
+ disp(max(d2))
+ //disp(max(z2))
+
+ disp(max(d0, 1))
+ //disp(max(z0, 1))
+ disp(max(d2, 1))
+ //disp(max(z2, 1))
+
+ disp(max(d0, 2))
+ //disp(max(z0, 2))
+ disp(max(d2, 2))
+ //disp(max(z2, 2))
+
+// disp(max(d0, 'r'))
+// disp(max(z0, 'r'))
+// disp(max(d2, 'r'))
+// disp(max(z2, 'r'))
+
+// disp(max(d0, 'c'))
+// disp(max(z0, 'c'))
+// disp(max(d2, 'c'))
+// disp(max(z2, 'c'))
+
+endfunction
diff --git a/tests/unit_tests/test_double_mean.sci b/tests/unit_tests/test_double_mean.sci
new file mode 100644
index 00000000..66859d01
--- /dev/null
+++ b/tests/unit_tests/test_double_mean.sci
@@ -0,0 +1,31 @@
+function test_double_mean()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(mean(d0))
+ disp(mean(z0))
+ disp(mean(d2))
+ disp(mean(z2))
+
+ disp(mean(d0, 1))
+ disp(mean(z0, 1))
+ disp(mean(d2, 1))
+ disp(mean(z2, 1))
+
+ disp(mean(d0, 2))
+ disp(mean(z0, 2))
+ disp(mean(d2, 2))
+ disp(mean(z2, 2))
+
+// disp(mean(d0, 'r'))
+// disp(mean(z0, 'r'))
+// disp(mean(d2, 'r'))
+// disp(mean(z2, 'r'))
+
+// disp(mean(d0, 'c'))
+// disp(mean(z0, 'c'))
+// disp(mean(d2, 'c'))
+// disp(mean(z2, 'c'))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_min.sci b/tests/unit_tests/test_double_min.sci
new file mode 100644
index 00000000..65f267bc
--- /dev/null
+++ b/tests/unit_tests/test_double_min.sci
@@ -0,0 +1,32 @@
+function test_double_min()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(min(d0))
+ //disp(min(z0))
+ disp(min(d2))
+ //disp(min(z2))
+
+ disp(min(d0, 1))
+ //disp(min(z0, 1))
+ disp(min(d2, 1))
+ //disp(min(z2, 1))
+
+ disp(min(d0, 2))
+ //disp(min(z0, 2))
+ disp(min(d2, 2))
+ //disp(min(z2, 2))
+
+// disp(min(d0, 'r'))
+// disp(min(z0, 'r'))
+// disp(min(d2, 'r'))
+// disp(min(z2, 'r'))
+
+// disp(min(d0, 'c'))
+// disp(min(z0, 'c'))
+// disp(min(d2, 'c'))
+// disp(min(z2, 'c'))
+
+endfunction
diff --git a/tests/unit_tests/test_double_ones.sci b/tests/unit_tests/test_double_ones.sci
new file mode 100644
index 00000000..eb30b0a4
--- /dev/null
+++ b/tests/unit_tests/test_double_ones.sci
@@ -0,0 +1,14 @@
+function test_double_ones()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(ones(d0))
+ disp(ones(z0))
+ disp(ones(d2))
+ disp(ones(z2))
+ //disp(ones(0,0)) // ! sci2c does not manage [] !
+ disp(ones(1,1))
+ disp(ones(d0,d0))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_prod.sci b/tests/unit_tests/test_double_prod.sci
new file mode 100644
index 00000000..f5b2c552
--- /dev/null
+++ b/tests/unit_tests/test_double_prod.sci
@@ -0,0 +1,31 @@
+function test_double_prod()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(prod(d0))
+ disp(prod(z0))
+ disp(prod(d2))
+ disp(prod(z2))
+
+ disp(prod(d0, 1))
+ disp(prod(z0, 1))
+ disp(prod(d2, 1))
+ disp(prod(z2, 1))
+
+ disp(prod(d0, 2))
+ disp(prod(z0, 2))
+ disp(prod(d2, 2))
+ disp(prod(z2, 2))
+
+// disp(prod(d0, 'r'))
+// disp(prod(z0, 'r'))
+// disp(prod(d2, 'r'))
+// disp(prod(z2, 'r'))
+
+// disp(prod(d0, 'c'))
+// disp(prod(z0, 'c'))
+// disp(prod(d2, 'c'))
+// disp(prod(z2, 'c'))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_rand.sci b/tests/unit_tests/test_double_rand.sci
new file mode 100644
index 00000000..c6b1893e
--- /dev/null
+++ b/tests/unit_tests/test_double_rand.sci
@@ -0,0 +1,14 @@
+function test_double_rand()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(rand(d0))
+ disp(rand(z0))
+ disp(rand(d2))
+ disp(rand(z2))
+ //disp(rand(0,0)) // ! sci2c does not manage [] !
+ disp(rand(1,1))
+ disp(rand(d0,d0))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_real.sci b/tests/unit_tests/test_double_real.sci
new file mode 100644
index 00000000..31748476
--- /dev/null
+++ b/tests/unit_tests/test_double_real.sci
@@ -0,0 +1,11 @@
+function test_double_real()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(real(d0))
+ disp(real(z0))
+ disp(real(d2))
+ disp(real(z2))
+endfunction
diff --git a/tests/unit_tests/test_double_round.sci b/tests/unit_tests/test_double_round.sci
new file mode 100644
index 00000000..4c57b494
--- /dev/null
+++ b/tests/unit_tests/test_double_round.sci
@@ -0,0 +1,11 @@
+function test_double_round()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ round(d0);
+ round(d2);
+ round(z0);
+ round(z2);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_sign.sci b/tests/unit_tests/test_double_sign.sci
new file mode 100644
index 00000000..c13cb2f1
--- /dev/null
+++ b/tests/unit_tests/test_double_sign.sci
@@ -0,0 +1,11 @@
+function test_double_sign()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ sign(d0);
+ sign(d2);
+ sign(z0);
+ sign(z2);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_sin.sci b/tests/unit_tests/test_double_sin.sci
new file mode 100644
index 00000000..cb00390f
--- /dev/null
+++ b/tests/unit_tests/test_double_sin.sci
@@ -0,0 +1,11 @@
+function test_double_sin()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ sin(d0);
+ sin(d2);
+ sin(z0);
+ sin(z2);
+endfunction
diff --git a/tests/unit_tests/test_double_sinh.sci b/tests/unit_tests/test_double_sinh.sci
new file mode 100644
index 00000000..d23706fa
--- /dev/null
+++ b/tests/unit_tests/test_double_sinh.sci
@@ -0,0 +1,11 @@
+function test_double_sinh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ sinh(d0);
+ sinh(d2);
+ sinh(z0);
+ sinh(z2);
+endfunction
diff --git a/tests/unit_tests/test_double_sqrt.sci b/tests/unit_tests/test_double_sqrt.sci
new file mode 100644
index 00000000..3f39cbd6
--- /dev/null
+++ b/tests/unit_tests/test_double_sqrt.sci
@@ -0,0 +1,11 @@
+function test_double_sqrt()
+ d0 = %pi
+ d2 = [2 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(sqrt(d0));
+ disp(sqrt(d2));
+ disp(sqrt(z0));
+ disp(sqrt(z2));
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_st_deviation.sci b/tests/unit_tests/test_double_st_deviation.sci
new file mode 100644
index 00000000..ddff4c63
--- /dev/null
+++ b/tests/unit_tests/test_double_st_deviation.sci
@@ -0,0 +1,31 @@
+function test_double_st_deviation()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(st_deviation(d0))
+ disp(st_deviation(z0))
+ disp(st_deviation(d2))
+ disp(st_deviation(z2))
+
+ disp(st_deviation(d0, 1))
+ disp(st_deviation(z0, 1))
+ disp(st_deviation(d2, 1))
+ disp(st_deviation(z2, 1))
+
+ disp(st_deviation(d0, 2))
+ disp(st_deviation(z0, 2))
+ disp(st_deviation(d2, 2))
+ disp(st_deviation(z2, 2))
+
+// disp(st_deviation(d0, 'r'))
+// disp(st_deviation(z0, 'r'))
+// disp(st_deviation(d2, 'r'))
+// disp(st_deviation(z2, 'r'))
+
+// disp(st_deviation(d0, 'c'))
+// disp(st_deviation(z0, 'c'))
+// disp(st_deviation(d2, 'c'))
+// disp(st_deviation(z2, 'c'))
+endfunction
diff --git a/tests/unit_tests/test_double_sum.sci b/tests/unit_tests/test_double_sum.sci
new file mode 100644
index 00000000..11beb8b7
--- /dev/null
+++ b/tests/unit_tests/test_double_sum.sci
@@ -0,0 +1,31 @@
+function test_double_sum()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(sum(d0))
+ disp(sum(z0))
+ disp(sum(d2))
+ disp(sum(z2))
+
+ disp(sum(d0, 1))
+ disp(sum(z0, 1))
+ disp(sum(d2, 1))
+ disp(sum(z2, 1))
+
+ disp(sum(d0, 2))
+ disp(sum(z0, 2))
+ disp(sum(d2, 2))
+ disp(sum(z2, 2))
+
+// disp(sum(d0, 'r'))
+// disp(sum(z0, 'r'))
+// disp(sum(d2, 'r'))
+// disp(sum(z2, 'r'))
+
+// disp(sum(d0, 'c'))
+// disp(sum(z0, 'c'))
+// disp(sum(d2, 'c'))
+// disp(sum(z2, 'c'))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_tanh.sci b/tests/unit_tests/test_double_tanh.sci
new file mode 100644
index 00000000..bf1a8a73
--- /dev/null
+++ b/tests/unit_tests/test_double_tanh.sci
@@ -0,0 +1,11 @@
+function test_double_tanh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ tanh(d0);
+ tanh(d2);
+ tanh(z0);
+ tanh(z2);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_double_variance.sci b/tests/unit_tests/test_double_variance.sci
new file mode 100644
index 00000000..cafe17b5
--- /dev/null
+++ b/tests/unit_tests/test_double_variance.sci
@@ -0,0 +1,31 @@
+function test_double_variance()
+ d0 = 0.2113249
+ d2 = [0.2113249 0.0002211 0.6653811;0.7560439 0.4453586 0.6283918]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ //disp(variance(d0))
+ //disp(variance(z0))
+ disp(variance(d2))
+ disp(variance(z2))
+
+ //disp(variance(d0, 1))
+ //disp(variance(z0, 1))
+ disp(variance(d2, 1))
+ disp(variance(z2, 1))
+
+ //disp(variance(d0, 2))
+ //disp(variance(z0, 2))
+ disp(variance(d2, 2))
+ disp(variance(z2, 2))
+
+// disp(variance(d0, 'r'))
+// disp(variance(z0, 'r'))
+// disp(variance(d2, 'r'))
+// disp(variance(z2, 'r'))
+
+// disp(variance(d0, 'c'))
+// disp(variance(z0, 'c'))
+// disp(variance(d2, 'c'))
+// disp(variance(z2, 'c'))
+endfunction
diff --git a/tests/unit_tests/test_double_zeros.sci b/tests/unit_tests/test_double_zeros.sci
new file mode 100644
index 00000000..37045a9e
--- /dev/null
+++ b/tests/unit_tests/test_double_zeros.sci
@@ -0,0 +1,14 @@
+function test_double_zeros()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(zeros(d0))
+ disp(zeros(z0))
+ disp(zeros(d2))
+ disp(zeros(z2))
+ //disp(zeros(0,0)) // ! sci2c does not manage [] !
+ disp(zeros(1,1))
+ disp(zeros(d0,d0))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_Convol.sci b/tests/unit_tests/test_float_Convol.sci
new file mode 100644
index 00000000..6b099b22
--- /dev/null
+++ b/tests/unit_tests/test_float_Convol.sci
@@ -0,0 +1,125 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Convol()
+
+
+ disp(convol(4,4.5)); //d0d0Convold0
+ disp(convol(%i + 3 ,2*%i + 4)); // z0z0Convolz0
+
+
+ a = [1 2 3 4 5 %e %pi];
+ b = [1 7 8 5 1 6 ];
+
+ disp(convol(a,b));
+ disp(convol(b,b)); // d2d2Convold2
+
+
+ disp(convol(4,a)); //d0d2Convold2
+ disp(convol(a,4)); // d2d0Convold2
+
+
+ c = [1 2 3 4 5 %e %pi] * %i;
+ d = [1 7 8 5 1 6 ] * %i;
+
+ disp(convol(c,d));
+ disp(convol(d,d)); // z2z2Convolz2
+
+
+ disp(convol(%i + 3 ,c)); // z0z2Convolz2
+ disp(convol(d ,2*%i + 4)); // z2z0Convolz2
+
+// with 2 outputs
+
+
+// [zz yy] = convol(4,4.5); //d0d0Convold0d0
+// disp( zz );
+ //disp( yy );
+
+// [xx ww ] = convol(%i + 3 ,2*%i + 4); // z0z0Convolz0z0
+// disp( xx);
+// disp( ww );
+
+// [vv uu] =convol(a,b);
+// disp( vv); // d2d2Convold2d2
+// disp( uu );
+
+
+// [tt ss] = convol(4,a); //d0d2Convold2d2
+// disp( tt);
+// disp( ss );
+
+
+
+// [rr qq] = convol(a,4); // d2d0Convold2d2
+// disp( rr );
+// disp( qq );
+
+
+
+// with 2 outputs
+
+// [pp oo] =convol(c,d);
+// disp( pp); // z2z2Convolz2z2
+// disp( oo );
+
+
+// [mm nn] = convol(4,c); //z0z2Convolz2z2
+// disp( mm);
+// disp( nn );
+
+
+
+// [ll kk] = convol(c,4); // z2z0Convolz2z2
+// disp( ll );
+ //disp( kk);
+
+
+// three input i
+
+// with 2 outputs
+
+
+ //[zzz yyy] = convol(4,4.5,18); //d0d0d0Convold0d0
+ //disp( zzz );
+ //disp( yyy );
+
+ //[xxx www ] = convol(%i + 3 ,2*%i + 4,%i); // z0z0z0Convolz0z0
+ //disp( xxx);
+ //disp( www );
+
+// bbis = [4 7 9 10];
+
+ //[vvv uuu] =convol(a,b,bbis);
+// disp( vvv); // d2d2d2Convold2d2
+// disp( uuu );
+//
+
+ //[ttt sss] = convol(4,a, 8); //d0d2d0Convold2d0
+ //disp( ttt);
+ //disp( sss );
+
+// with 2 outputs
+//dbis = [10 13 14] *%i;
+// [ppp ooo] =convol(c,d, dbis);
+// disp( ppp); // z2z2z2Convolz2z2
+// disp( ooo );
+
+
+// [mmm nnn] = convol(4 * %i ,c , %i); //z0z2z0Convolz2z0
+// disp( mmm);
+// disp( nnn);
+
+//mixed up
+
+// disp(convol(a,c)); //d2z2Convolz2
+// disp(convol(c,a)); // z2d2Convolz2
+// disp(convol(4,c)); //d0z2Convolz2
+// disp(convol(%i + 3 ,a)); // z0d2Convolz2
+
+// disp(convol(a, %i)); //d2z0Convolz2
+// disp(convol(c , 4)); // z2d0Convolz2
+
+
+
+
+
+endfunction
diff --git a/tests/unit_tests/test_float_Det.sci b/tests/unit_tests/test_float_Det.sci
new file mode 100644
index 00000000..66519d97
--- /dev/null
+++ b/tests/unit_tests/test_float_Det.sci
@@ -0,0 +1,16 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Det()
+
+ a = [1 2 3; 4 %pi 5; 4.5 -3 2];
+ disp(det(a));
+
+ b = %i * [1 2 3; 4 %pi 5; 4.5 -3 2];
+ disp(det(b));
+
+
+ disp(det(5));
+
+ disp(det(%i));
+endfunction
+
+
diff --git a/tests/unit_tests/test_float_Disp.sci b/tests/unit_tests/test_float_Disp.sci
new file mode 100644
index 00000000..2c6044ed
--- /dev/null
+++ b/tests/unit_tests/test_float_Disp.sci
@@ -0,0 +1,14 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Disp ()
+
+ disp(4.5);
+ disp(4+3*%i);
+ disp("a");
+
+ disp([1 2 3 4 5 ; 6 7 8 9 10]);
+ disp(%i*[1 2 3 4 5 ; 6 7 8 9 10]);
+ disp("plop");
+
+
+endfunction
+
diff --git a/tests/unit_tests/test_float_Expm.sci b/tests/unit_tests/test_float_Expm.sci
new file mode 100644
index 00000000..239161a7
--- /dev/null
+++ b/tests/unit_tests/test_float_Expm.sci
@@ -0,0 +1,10 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Expm()
+ b = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16];
+ c = b*%i ;
+
+ disp(expm(b));
+ disp(expm(c));
+
+
+endfunction
diff --git a/tests/unit_tests/test_float_FFTShift.sci b/tests/unit_tests/test_float_FFTShift.sci
new file mode 100644
index 00000000..e3a076f8
--- /dev/null
+++ b/tests/unit_tests/test_float_FFTShift.sci
@@ -0,0 +1,38 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_FFTShift()
+
+ disp(fftshift(5.3));// d0*d0
+ disp(fftshift(5.3*%i));// z0*z0
+ disp(fftshift(5.3 + 5.6*%i ));// z0*z0
+
+
+ a = fft ([10 1 15 3.5 ]);
+ disp(fftshift(a));
+
+ b = [ 14 15 2 6 ; 1 2 6 4 ; 48.5 3 9.3 1 ];
+ disp(fftshift(b));
+ disp(fftshift(b , 1));
+ disp(fftshift(b , 2));
+ //disp(fftshift(b , "all"));
+
+
+ c = [10 1 15 3.5 ]*%i;
+ disp(fftshift(c));
+
+ d = [ 14 15 2 6 ; 1 2 6 4 ; 48.5 3 9.3 1 ]*%i;
+ disp(fftshift(b));
+ disp(fftshift(b , 1));
+ disp(fftshift(b , 2));
+ //disp(fftshift(b , "all"));
+
+
+ e = c + [10 1 15 3.5 ]*%i;
+ disp(fftshift(e));
+
+ f = [ 18 15 7 6 ; 1 5 6 4 ; 43.5 1 9.3 1 ] + [ 14 15 2 6 ; 1 2 6 4 ; 48.5 3 9.3 1 ]*%i;
+ disp(fftshift(f));
+ disp(fftshift(f , 1));
+ disp(fftshift(f , 2));
+ //disp(fftshift(f , "all"));
+
+endfunction
diff --git a/tests/unit_tests/test_float_Fft.sci b/tests/unit_tests/test_float_Fft.sci
new file mode 100644
index 00000000..601e9587
--- /dev/null
+++ b/tests/unit_tests/test_float_Fft.sci
@@ -0,0 +1,173 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Fft()
+
+disp(fft(4.4))
+disp(fft(%i + 3.4))
+
+
+// one input
+ a = [10 1 15 3.5 ]; //d2Fftz2
+ disp(fft(a));
+ disp("");
+ b = [25 3.6]; // d2Fftd2
+ disp(fft(b));
+ disp("");
+ c= [10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(fft(c));
+ disp("");
+ // pure imaginary
+ d = [10 1 15 3.5 ]*%i; //z2Fftz2
+ disp(fft(d));
+ disp("");
+ e = [25 3.6]*%i; // z2Fftd2
+ disp(fft(e));
+ disp("");
+ f= %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(fft(f));
+ disp("");
+ // full complex
+
+ g = a + [10 1 15 3.5 ]*%i; //z2Fftz2
+ disp(fft(g));
+ disp("");
+ h = b + [25 3.6]*%i; // z2Fftd2
+ disp(fft(h));
+ disp("");
+ j= c + %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(fft(j));
+ disp("");
+ disp("*******************");
+ disp("*******************");
+ disp("");
+// two output
+// call ifft
+ disp(fft(a,1));
+ disp("");
+ disp(fft(b,1));
+ disp("");
+ disp(fft(c,1));
+ disp("");
+ disp(fft(d,1));
+ disp("");
+ disp(fft(e,1));
+ disp("");
+ disp(fft(f,1));
+ disp("");
+ // full complex
+ disp(fft(g,1));
+ disp("");
+ disp(fft(h,1));
+ disp("");
+ disp(fft(j,1));
+ disp("");
+ disp("");
+ disp("*******************");
+ disp("*******************");
+ disp("");
+//
+ disp(fft(a,-1));
+ disp("");
+ disp(fft(b,-1));
+ disp("");
+ disp(fft(c,-1));
+ disp("");
+ disp(fft(d,-1));
+ disp("");
+ disp(fft(e,-1));
+ disp("");
+ disp(fft(f,-1));
+ disp("");
+ // full complex
+ disp(fft(g,-1));
+ disp("");
+ disp(fft(h,-1));
+ disp("");
+ disp(fft(j,-1));
+ disp("");
+
+
+// ********************
+// MATRIX
+// ********************
+// one input
+ aa = [10 1 15 3.5 ; 5 3 9 6 ]; //d2Fftz2
+ disp(fft(aa));
+ disp("");
+ bb = [25 3.6 ; 4 3.2]; // d2Fftd2
+ disp(fft(bb));
+ disp("");
+ cc= [10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ; 21 8 2 5 6 3 4 123 5 6 0 5 548 7 65 4 2 166 4.12 65546 1.78 ]
+ disp(fft(cc));
+ disp("");
+ // pure imaginary
+ dd = [10 1 15 3.5 ; 5 8 6 3 ]*%i; //z2Fftz2
+ disp(fft(dd));
+ disp("");
+ ee = [25 3.6 ; 4 5.9 ]*%i; // z2Fftd2
+ disp(fft(ee));
+ disp("");
+ ff = %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3; 21 8 2 5 6 3 4 123 5 6 0 5 548 7 65 4 2 166 4.12 65546 1.78 ]
+
+ disp(fft(ff));
+ disp("");
+ // full complex
+
+ gg = aa + dd; //z2Fftz2
+ disp(fft(gg));
+ disp("");
+ hh = bb + ee; // z2Fftd2
+ disp(fft(hh));
+ disp("");
+ jj= cc + ff
+ disp(fft(jj));
+ disp("");
+ disp("*******************");
+ disp("*******************");
+ disp("");
+// two output
+// call ifft
+ disp(fft(aa,1));
+ disp("");
+ disp(fft(bb,1));
+ disp("");
+ disp(fft(cc,1));
+ disp("");
+ disp(fft(dd,1));
+ disp("");
+ disp(fft(ee,1));
+ disp("");
+ disp(fft(ff,1));
+ disp("");
+ // full complex
+ disp(fft(gg,1));
+ disp("");
+ disp(fft(hh,1));
+ disp("");
+ disp(fft(jj,1));
+ disp("");
+ disp("");
+ disp("*******************");
+ disp("*******************");
+ disp("");
+//
+ disp(fft(aa,-1));
+ disp("");
+ disp(fft(bb,-1));
+ disp("");
+ disp(fft(cc,-1));
+ disp("");
+ disp(fft(dd,-1));
+ disp("");
+ disp(fft(ee,-1));
+ disp("");
+ disp(fft(ff,-1));
+ disp("");
+ // full complex
+ disp(fft(gg,-1));
+ disp("");
+ disp(fft(hh,-1));
+ disp("");
+ disp(fft(jj,-1));
+ disp("");
+
+endfunction
diff --git a/tests/unit_tests/test_float_Find.sci b/tests/unit_tests/test_float_Find.sci
new file mode 100644
index 00000000..a8d642c0
--- /dev/null
+++ b/tests/unit_tests/test_float_Find.sci
@@ -0,0 +1,32 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Find ()
+
+ disp (find( 1 == 3 )); // d0Findd0
+
+ a = [1 2 3; 4 5 6];
+ b = [1 8 3; 9 5 6];
+ disp (find( a == b )); // d2Findd2
+
+ [ z , j ] = find (1 == 3); // d0Findd0d0
+ [ k , l ] = find (a == b); // d2Findd2d2
+
+ disp(z);
+ disp(j);
+ disp(k);
+ disp(l);
+
+ disp ( find( 1 == 3 , 2 )); // d0d0Findd0
+
+ c = [1 2 3; 4 5 6];
+ d = [1 8 3; 9 5 6];
+ disp (find( c == d , 2 )); // d2d0Findd2
+
+ [ o , p ] = find (1 == 3 , 2); // d0d0Findd0d0
+ [ q , s ] = find (c == d , 2); // d2d0Findd2d2
+
+ disp(o);
+ disp(p);
+ disp(q);
+ disp(s);
+
+endfunction
diff --git a/tests/unit_tests/test_float_IFFT.sci b/tests/unit_tests/test_float_IFFT.sci
new file mode 100644
index 00000000..196d3798
--- /dev/null
+++ b/tests/unit_tests/test_float_IFFT.sci
@@ -0,0 +1,90 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_IFFT()
+
+
+disp(ifft(2)); // d0IFFTd0
+disp(ifft(%i + 4)) // z0IFFTz0
+
+disp(ifft([1 2])); // d2IFFTd2
+disp(ifft([1 -2 3] + zeros(1 , 3)*%i )); // d2IFFTz2
+disp(ifft([1 2]*%i)); // z2IFFTz2
+
+disp(ifft(4.4))
+disp(ifft(%i + 3.4))
+
+
+// one input
+ a = [10 1 15 3.5 ]; //d2Fftz2
+ Abis = a + zeros(a)*%i ;
+ disp(ifft(Abis));
+ disp("********1*******");
+ b = [25 3.6]; // d2Fftd2
+ disp(ifft(b));
+ disp("********2*******");
+ c= [10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ cbis = c + zeros(c)*%i ;
+ disp(ifft(cbis));
+ disp("********3*********");
+ // pure imaginary
+ d = [10 1 15 3.5 ]*%i; //z2Fftz2
+ disp(ifft(d));
+ disp("********4*********");
+ e = [25 3.6]*%i; // z2Fftd2
+ disp(ifft(e));
+ disp("********5***********");
+ f= %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(ifft(f));
+ disp("********6***********");
+ // full complex
+
+ g = a + [10 1 15 3.5 ]*%i; //z2Fftz2
+ disp(ifft(g));
+ disp("********7***********");
+ h = b + [25 3.6]*%i; // z2Fftd2
+ disp(ifft(h));
+ disp("********8***********");
+ j= c + %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ]
+ disp(ifft(j));
+ disp("********************");
+ disp("*******************");
+ disp("*******************");
+ disp("********************");
+
+
+// ********************
+// MATRIX
+// ********************
+// one input
+ aa = [10 1 15 3.5 ; 5 3 9 6 ]; //d2Fftz2
+ disp(ifft(aa));
+ disp("********9***********");
+ bb = [25 3.6 ; 4 3.2]; // d2Fftd2
+ disp(ifft(bb));
+ disp("********10**********");
+ cc= [10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3 ; 21 8 2 5 6 3 4 123 5 6 0 5 548 7 65 4 2 166 4.12 65546 1.78 ]
+ disp(ifft(cc));
+ disp("********11**********");
+ // pure imaginary
+ dd = [10 1 15 3.5 ; 5 8 6 3 ]*%i; //z2Fftz2
+ disp(ifft(dd));
+ disp("********12**********");
+ ee = [25 3.6 ; 4 5.9 ]*%i; // z2Fftd2
+ disp(ifft(ee));
+ disp("********13**********");
+ ff = %i*[10 2 5 6 3 8 9 445 1 2 3 0 125 5 41 4 5 552 2.36 45656 72.3; 21 8 2 5 6 3 4 123 5 6 0 5 548 7 65 4 2 166 4.12 65546 1.78 ]
+
+ disp(ifft(ff));
+ disp("********14**********");
+ // full complex
+
+ gg = aa + dd; //z2Fftz2
+ disp(ifft(gg));
+ disp("********15**********");
+ hh = bb + ee; // z2Fftd2
+ disp(ifft(hh));
+ disp("********16**********");
+ jj= cc + ff
+ disp(ifft(jj));
+
+
+endfunction
diff --git a/tests/unit_tests/test_float_Length.sci b/tests/unit_tests/test_float_Length.sci
new file mode 100644
index 00000000..744dc5b1
--- /dev/null
+++ b/tests/unit_tests/test_float_Length.sci
@@ -0,0 +1,33 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Length()
+ disp(length(4));
+ disp(length(2+3*%i));
+ disp(length([1 2 3 ; 4 5 6]));
+ disp(length([1 2 3 ; 4 5 6]*%i));
+ e = %pi ;
+ disp(length(e)); // d0Lengthd0
+
+ f = e * %i;
+ disp(length(f));// z0Lengthd0
+
+ a = [1 2 3 ; 4 5 6];
+ disp(length(a));// d2Lengthd0
+
+ b = [1 2 3 ; 4 5 6] * %i;
+ disp(length(b));// z2Lengthd0
+
+
+ g = "pouet" ;
+ h = "a" ;
+
+ disp(length(g)); // g0Lengthd0
+ disp(length(h)); // g2Lengthd0
+
+ disp(length("pouet"));
+ disp(length("a"));
+
+
+
+
+
+endfunction
diff --git a/tests/unit_tests/test_float_Lev.sci b/tests/unit_tests/test_float_Lev.sci
new file mode 100644
index 00000000..195d0232
--- /dev/null
+++ b/tests/unit_tests/test_float_Lev.sci
@@ -0,0 +1,32 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Lev()
+
+ a = [1 2 3 4 5 6 7 8 9 10] ;
+
+ disp(lev(a)) ;
+
+ [aa aaa] = lev(a);
+ disp(aa);
+ disp(aaa)
+
+ [a1 aa1 aaa1] = lev (a);
+ disp(a1);
+ disp(aa1);
+ disp(aaa1);
+
+// complex
+ b =%i * [1 2 3 4 5 6 7 8 9 10] ;
+
+ disp(lev(b)) ;
+
+ [bb bbb] = lev(b);
+ disp(bb);
+ disp(bbb)
+
+ [b1 bb1 bbb1] = lev (b);
+ disp(b1);
+ disp(bb1);
+ disp(bbb1);
+
+
+endfunction
diff --git a/tests/unit_tests/test_float_Meanf.sci b/tests/unit_tests/test_float_Meanf.sci
new file mode 100644
index 00000000..44b3dac4
--- /dev/null
+++ b/tests/unit_tests/test_float_Meanf.sci
@@ -0,0 +1,49 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+function test_float_Meanf()
+
+ disp (meanf (4 , 5 )) ;
+ disp ("*******1*******");
+ disp (meanf ([4 5 6], [1 2 3]));
+ disp ("*******2*******");
+ disp (meanf (4 , 5*%i )) ;
+ disp ("*******3*******");
+ disp (meanf ([4 5 6], [1 2 3]*%i));
+ disp ("*******4*******");
+
+
+
+ disp (meanf ([4 5 6 ; 7 8 9], [1 2 3 ; 4 5 6],1));
+ disp ("*******5*******");
+ disp (meanf ([4 7; 5 8; 6 9], [1 4; 2 5; 3 6],2));
+// complex
+ disp ("*******6*******");
+ disp (meanf (4 +4*%i , 5 )) ;
+ disp ("*******7*******");
+ disp (meanf ([4*%i, 5+6*%i, 6], [1 2 3]));
+ disp ("*******8*******");
+ disp (meanf (4 +4*%i , 5*%i )) ;
+ disp ("*******9*******");
+ disp (meanf ([4*%i, 5+6*%i, 6], [1 2 3]*%i));
+ disp ("******10*******");
+
+
+ disp (meanf ([4 5 6 ; 7 8 9]*%i, [1 2 3 ; 4 5 6],1));
+ disp ("******11*******");
+ disp (meanf ([4 7; 5 8; 6 9], [1 4; 2 5; 3 6]*%i,2));
+ disp ("******12*******");
+ disp (meanf ([4 5 6 ; 7 8 9],[1 2 3 ; 4 8 9] + [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******13*******");
+ disp (meanf ([4 7; 5 8; 6 9]*%i, [1 4; 2 5; 3 6],2));
+ disp ("******14*******");
+
+ disp (meanf ([4 5 6 ; 7 8 9]*%i, [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******15*******");
+ disp (meanf ([4 7; 5 8; 6 9]*%i, [1 4; 2 5; 3 6]*%i,2));
+ disp ("******16*******");
+//
+
+
+//
+
+endfunction
diff --git a/tests/unit_tests/test_float_OpApex.sci b/tests/unit_tests/test_float_OpApex.sci
new file mode 100644
index 00000000..6e8ec187
--- /dev/null
+++ b/tests/unit_tests/test_float_OpApex.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpApex()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0')
+ disp(d2')
+ disp(z0')
+ disp(z2')
+endfunction
diff --git a/tests/unit_tests/test_float_OpCc.sci b/tests/unit_tests/test_float_OpCc.sci
new file mode 100644
index 00000000..e04ede06
--- /dev/null
+++ b/tests/unit_tests/test_float_OpCc.sci
@@ -0,0 +1,47 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+
+function test_float_OpCc()
+
+ a = [1 ; 2 ; 3 ; 4]; // d0d0OpCcs2
+ b = [7 ; a];// d0d2OpCcs2
+ c = [a ; 7];// d2d0OpCcs2
+ d = [a ; b];// d2d2OpCcs2
+ disp(a);
+ disp(b);
+ disp(c);
+ disp(d);
+
+ e = [1*%i ; 2*%i ; 3*%i ; 4*%i ];// z0z0OpCcz2
+ f = [7 ; e];// z0z2OpCcz2
+ g = [e ; 7];// z2z0OpCcz2
+ h = [e ; f];// z2z2OpCcz2
+
+ disp(e);
+ disp(f);
+ disp(g);
+ disp(h);
+
+
+ i = [%i ; 4.5]; // z0d0OpCcz2
+ j = [4.5 ; %i ]; // d0z0OpCcz2
+ k = [4.5 ; i ]; // d0z2OpCcz2
+ l = [i ; 4.5]; // z2d0OpCcz2
+
+ disp(i);
+ disp(j);
+ disp(k);
+ disp(l);
+
+ m = [1 ; 4.5];
+ n = [%i ; m ]; // z0d2OpCcz2
+ o = [m ; %i ]; // d0z2OpCcz2
+ p = [m ; n ]; // d2z2OpCcz2
+ q = [n ; m ]; // z2d2OpCcz2
+
+ disp(n);
+ disp(o);
+ disp(p);
+ disp(q);
+
+endfunction
diff --git a/tests/unit_tests/test_float_OpColon.sci b/tests/unit_tests/test_float_OpColon.sci
new file mode 100644
index 00000000..b87608b9
--- /dev/null
+++ b/tests/unit_tests/test_float_OpColon.sci
@@ -0,0 +1,42 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpColon()
+
+
+// A = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12];
+// B = A * %i ;
+d = %i ;
+a = %pi ;
+b = %e ;
+c = [7 8 5 ];
+disp(zeros ( a , %e ));
+
+disp(zeros ( %pi , %e));
+disp(zeros(c));
+disp(zeros ([4 5 6 ; 4 5 6]) );
+
+ disp(0:1:3);
+ disp(1:1);
+ disp(4+53*%i:0);
+//
+
+ disp(2:5);
+ disp(4+3*%i:8+%i);
+//
+
+ disp(1:5:1);
+ disp(%i:%i+1:2);
+//
+
+ disp(2:7:5);
+ disp(4+3*%i:4:8+%i);
+//a =4 + 53 *%i : 0 ;
+endfunction
+//OUT(1).SZ(2)= FA_INT(
+// FA_ADD(
+// FA_DIV(
+// FA_SUB(FA_REAL(IN(3).VAL,IN(3).TP),FA_REAL(IN(1).VAL, IN(3).TP))
+// ,FA_REAL(IN(2).VAL,IN(2).TP)
+// )
+// ,''1''
+// )
+// )
diff --git a/tests/unit_tests/test_float_OpDotApex.sci b/tests/unit_tests/test_float_OpDotApex.sci
new file mode 100644
index 00000000..5d9ed92a
--- /dev/null
+++ b/tests/unit_tests/test_float_OpDotApex.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpDotApex()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0.')
+ disp(d2.')
+ disp(z0.')
+ disp(z2.')
+endfunction
diff --git a/tests/unit_tests/test_float_OpDotBackSlas.sci b/tests/unit_tests/test_float_OpDotBackSlas.sci
new file mode 100644
index 00000000..5df04b1e
--- /dev/null
+++ b/tests/unit_tests/test_float_OpDotBackSlas.sci
@@ -0,0 +1,31 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpDotBackSlas()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0.\d0)
+ disp(z0.\z0)
+ disp(d2.\d0)
+ disp(z2.\z0)
+
+ disp(d0.\d2)
+ disp(z0.\z2)
+
+ disp(d2.\d2)
+ disp(z2.\z2)
+
+ disp(d2.\z0)
+ disp(z2.\d0)
+
+ disp(d0.\z2)
+ disp(z0.\d2)
+
+ disp(d0.\z0)
+ disp(z0.\d0)
+
+ disp(d2.\z2)
+ disp(z2.\d2)
+
+endfunction
diff --git a/tests/unit_tests/test_float_OpDotHat.sci b/tests/unit_tests/test_float_OpDotHat.sci
new file mode 100644
index 00000000..119af7b9
--- /dev/null
+++ b/tests/unit_tests/test_float_OpDotHat.sci
@@ -0,0 +1,30 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpDotHat()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0.^d0)
+ disp(z0.^z0)
+ disp(d2.^d0)
+ disp(z2.^z0)
+
+ disp(d0.^d2)
+ disp(z0.^z2)
+
+ disp(d2.^d2)
+ disp(z2.^z2)
+
+ disp(d2.^z0)
+ disp(z2.^d0)
+
+ disp(d0.^z2)
+ disp(z0.^d2)
+
+ disp(d0.^z0)
+ disp(z0.^d0)
+
+ disp(d2.^z2)
+ disp(z2.^d2)
+endfunction
diff --git a/tests/unit_tests/test_float_OpDotSlash.sci b/tests/unit_tests/test_float_OpDotSlash.sci
new file mode 100644
index 00000000..d6efb3c5
--- /dev/null
+++ b/tests/unit_tests/test_float_OpDotSlash.sci
@@ -0,0 +1,27 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpDotSlash()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0./d0)
+ disp(d0./z0)
+ disp(d0./d2)
+ disp(d0./z2)
+
+ disp(d2./d0)
+ disp(d2./z0)
+ disp(d2./d2)
+ disp(d2./z2)
+
+ disp(z0./d0)
+ disp(z0./z0)
+ disp(z0./d2)
+ disp(z0./z2)
+
+ disp(z2./d0)
+ disp(z2./z0)
+ disp(z2./d2)
+ disp(z2./z2)
+endfunction
diff --git a/tests/unit_tests/test_float_OpDotStar.sci b/tests/unit_tests/test_float_OpDotStar.sci
new file mode 100644
index 00000000..e0392e9c
--- /dev/null
+++ b/tests/unit_tests/test_float_OpDotStar.sci
@@ -0,0 +1,27 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpDotStar()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0.*d0)
+ disp(d0.*z0)
+ disp(d0.*d2)
+ disp(d0.*z2)
+
+ disp(d2.*d0)
+ disp(d2.*z0)
+ disp(d2.*d2)
+ disp(d2.*z2)
+
+ disp(z0.*d0)
+ disp(z0.*z0)
+ disp(z0.*d2)
+ disp(z0.*z2)
+
+ disp(z2.*d0)
+ disp(z2.*z0)
+ disp(z2.*d2)
+ disp(z2.*z2)
+endfunction
diff --git a/tests/unit_tests/test_float_OpEqual.sci b/tests/unit_tests/test_float_OpEqual.sci
new file mode 100644
index 00000000..494a5859
--- /dev/null
+++ b/tests/unit_tests/test_float_OpEqual.sci
@@ -0,0 +1,25 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpEqual()
+
+ a = %pi;
+ disp(a);
+
+
+ b = %pi + %i;
+ disp(b);
+
+
+ c = "a";
+ disp(c);
+
+
+ d =[ %pi 4 5];
+ disp(d);
+
+ e = [7 8 9]*%i;
+ disp(e);
+
+ f = "plopilou" ;
+ disp(f);
+
+endfunction
diff --git a/tests/unit_tests/test_float_OpExt.sci b/tests/unit_tests/test_float_OpExt.sci
new file mode 100644
index 00000000..eaf0e43c
--- /dev/null
+++ b/tests/unit_tests/test_float_OpExt.sci
@@ -0,0 +1,26 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpExt ()
+
+ a = [1 2 3 ; 4 5 6];
+
+
+ disp(a(2));
+ disp(a([3 5]));
+ disp(a(2,3));
+ disp(a(2,[2 3]));
+ disp(a ([1 2],1));
+ disp(a ([1 2],[2 3]));
+
+
+ b = [1 2 3 ; 4 5 6] * %i;
+
+
+ disp(b(2));
+ disp(b([3 5]));
+ disp(b(2,3));
+ disp(b(2,[2 3]));
+ disp(b ([1 2],1));
+ disp(b ([1 2],[2 3]));
+
+
+endfunction
diff --git a/tests/unit_tests/test_float_OpHat.sci b/tests/unit_tests/test_float_OpHat.sci
new file mode 100644
index 00000000..22dd5e93
--- /dev/null
+++ b/tests/unit_tests/test_float_OpHat.sci
@@ -0,0 +1,30 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpHat()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+// disp(d0^d0)
+ // disp(z0^z0)
+ // disp(d2^d0)
+ //disp(z2^z0)
+
+ //disp(d0^d2)
+ //disp(z0^z2)
+
+ //disp(d2^d2) // ! Not implemented in Scilab !
+ //disp(z2^z2) // ! Not implemented in Scilab !
+
+ //disp(d2^z0)
+ //disp(z2^d0)
+
+ disp(d0^z2)
+ disp(z0^d2)
+
+ //disp(d0^z0)
+ //disp(z0^d0)
+
+ //disp(d2^z2) // ! Not implemented in Scilab !
+ //disp(z2^d2) // ! Not implemented in Scilab !
+endfunction
diff --git a/tests/unit_tests/test_float_OpIns.sci b/tests/unit_tests/test_float_OpIns.sci
new file mode 100644
index 00000000..0fd6590c
--- /dev/null
+++ b/tests/unit_tests/test_float_OpIns.sci
@@ -0,0 +1,130 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpIns()
+ //reals
+a=[1 2 3; 4 5 6]
+
+a(3)=-2
+disp(a);
+
+a(3)=-4+%i
+disp(a);
+
+a(1,3)=-12;
+disp(a);
+
+a(1,3)=-5+%i;
+disp(a);
+
+a([1,2],1)=-12;
+disp(a);
+
+a([1,2],1)=-5+%i;
+disp(a);
+
+a(2,[2,3])=-12;
+disp(a);
+
+a(2,[2,3])=-5+%i;
+disp(a);
+
+a([1 2],[1,2,3])=4;
+disp(a);
+
+a([1 2],[1,2,3])=3+%i;
+disp(a);
+
+a([1,3])=7;
+disp(a);
+
+a([1,3])=2+%i;
+disp(a);
+
+a([1,3])=[1,0];
+disp(a);
+
+a([1,3])=[3-%i,1+%i];
+disp(a);
+
+a(2,[1,3])=[-2,-7];
+disp(a);
+
+a(2,[1,3])=[-4+%i,-5+%i];
+disp(a);
+
+a([1,2],3)=[-9;-1];
+disp(a);
+
+a([1,2],3)=[-4+%i;-5+%i];
+disp(a);
+
+a([1,2],[2,3])=[-31 -45;-29 -51];
+disp(a);
+
+a([1,2],[2,3])=[-4+%i,-5+%i;-4+%i,-5+%i];
+disp(a);
+
+
+//complexes
+
+b=[1-3*%i 2+%i 3+2*%i; 4 5+4*%i 6]
+
+b(3)=-2
+disp(b);
+
+b(3)=-4+%i
+disp(b);
+
+b(1,3)=-12;
+disp(b);
+
+b(1,3)=-5+%i;
+disp(b);
+
+b([1,2],1)=-12;
+disp(b);
+
+b([1,2],1)=-5+%i;
+disp(b);
+
+b(2,[2,3])=-12;
+disp(b);
+
+b(2,[2,3])=-5+%i;
+disp(b);
+
+b([1 2],[1,2,3])=4;
+disp(b);
+
+b([1 2],[1,2,3])=3+%i;
+disp(b);
+
+b([1,3])=7;
+disp(b);
+
+b([1,3])=2+%i;
+disp(b);
+
+b([1,3])=[1,0];
+disp(b);
+
+b([1,3])=[3-%i,1+%i];
+disp(b);
+
+b(2,[1,3])=[-2,-7];
+disp(b);
+
+b(2,[1,3])=[-4+%i,-5+%i];
+disp(b);
+
+b([1,2],3)=[-9;-1];
+disp(b);
+
+b([1,2],3)=[-4+%i;-5+%i];
+disp(b);
+
+b([1,2],[2,3])=[-31 -45;-29 -51];
+disp(b);
+
+b([1,2],[2,3])=[-4+%i,-5+%i;-4+%i,-5+%i];
+disp(b);
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_OpLogAnd.sci b/tests/unit_tests/test_float_OpLogAnd.sci
new file mode 100644
index 00000000..3a919dc9
--- /dev/null
+++ b/tests/unit_tests/test_float_OpLogAnd.sci
@@ -0,0 +1,38 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpLogAnd()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0&d0)
+ disp(z0&z0)
+ disp(d2&d0)
+ disp(z2&z0)
+
+ disp(d0&d2)
+ disp(z0&z2)
+
+ disp(d2&d2)
+ disp(z2&z2)
+
+ disp(d2&z0)
+ disp(z2&d0)
+
+ disp(d0&z2)
+ disp(z0&d2)
+
+ disp(d0&z0)
+ disp(z0&d0)
+
+ disp(d2&z2)
+ disp(z2&d2)
+
+ disp('');
+ disp(%t&%f)
+ disp(%f&%t)
+ disp(%t&%t)
+ disp(%f&%f)
+ disp('');
+ disp([%t %f] &%f)
+endfunction
diff --git a/tests/unit_tests/test_float_OpLogEq.sci b/tests/unit_tests/test_float_OpLogEq.sci
new file mode 100644
index 00000000..8a753ec4
--- /dev/null
+++ b/tests/unit_tests/test_float_OpLogEq.sci
@@ -0,0 +1,34 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpLogEq()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+ g0 = 'A'
+ g2 = "foo"
+
+ //disp(g0==g0) // ! Unable to manage this case !
+
+ disp(d0==d0)
+ disp(z0==z0)
+ disp(d2==d0)
+ disp(z2==z0)
+
+ disp(d0==d2)
+ disp(z0==z2)
+
+ disp(d2==d2)
+ disp(z2==z2)
+
+ disp(d2==z0)
+ disp(z2==d0)
+
+ disp(d0==z2)
+ disp(z0==d2)
+
+ disp(d0==z0)
+ disp(z0==d0)
+
+ disp(d2==z2)
+ disp(z2==d2)
+endfunction
diff --git a/tests/unit_tests/test_float_OpLogGe.sci b/tests/unit_tests/test_float_OpLogGe.sci
new file mode 100644
index 00000000..a1e0ef2f
--- /dev/null
+++ b/tests/unit_tests/test_float_OpLogGe.sci
@@ -0,0 +1,30 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpLogGe()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0>=d0)
+ //disp(z0>=z0)
+ disp(d2>=d0)
+ //disp(z2>=z0)
+
+ disp(d0>=d2)
+ //disp(z0>=z2)
+
+ disp(d2>=d2)
+ //disp(z2>=z2)
+
+ //disp(d2>=z0)
+ //disp(z2>=d0)
+
+ //disp(d0>=z2)
+ //disp(z0>=d2)
+
+ //disp(d0>=z0)
+ //disp(z0>=d0)
+
+ //disp(d2>=z2)
+ //disp(z2>=d2)
+ endfunction
diff --git a/tests/unit_tests/test_float_OpLogGt.sci b/tests/unit_tests/test_float_OpLogGt.sci
new file mode 100644
index 00000000..f51b3195
--- /dev/null
+++ b/tests/unit_tests/test_float_OpLogGt.sci
@@ -0,0 +1,31 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpLogGt()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0>d0)
+ //disp(z0>z0)
+ disp(d2>d0)
+ //disp(z2>z0)
+
+ disp(d0>d2)
+ //disp(z0>z2)
+
+ disp(d2>d2)
+ //disp(z2>z2)
+
+ //disp(d2>z0)
+ //disp(z2>d0)
+
+ //disp(d0>z2)
+ //disp(z0>d2)
+
+ //disp(d0>z0)
+ //disp(z0>d0)
+
+ //disp(d2>z2)
+ //disp(z2>d2)
+
+endfunction
diff --git a/tests/unit_tests/test_float_OpLogLe.sci b/tests/unit_tests/test_float_OpLogLe.sci
new file mode 100644
index 00000000..435940c6
--- /dev/null
+++ b/tests/unit_tests/test_float_OpLogLe.sci
@@ -0,0 +1,30 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpLogLe()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0<=d0)
+ //disp(z0<=z0)
+ disp(d2<=d0)
+ //disp(z2<=z0)
+
+ disp(d0<=d2)
+ //disp(z0<=z2)
+
+ disp(d2<=d2)
+ //disp(z2<=z2)
+
+ //disp(d2<=z0)
+ //disp(z2<=d0)
+
+ //disp(d0<=z2)
+ //disp(z0<=d2)
+
+ //disp(d0<=z0)
+ //disp(z0<=d0)
+
+ //disp(d2<=z2)
+ //disp(z2<=d2)
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_OpLogLt.sci b/tests/unit_tests/test_float_OpLogLt.sci
new file mode 100644
index 00000000..02deb345
--- /dev/null
+++ b/tests/unit_tests/test_float_OpLogLt.sci
@@ -0,0 +1,30 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpLogLt()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0<d0)
+ //disp(z0<z0)
+ disp(d2<d0)
+ //disp(z2<z0)
+
+ disp(d0<d2)
+ //disp(z0<z2)
+
+ disp(d2<d2)
+ //disp(z2<z2)
+
+ //disp(d2<z0)
+ //disp(z2<d0)
+
+ //disp(d0<z2)
+ //disp(z0<d2)
+
+ //disp(d0<z0)
+ //disp(z0<d0)
+
+ //disp(d2<z2)
+ //disp(z2<d2)
+endfunction
diff --git a/tests/unit_tests/test_float_OpLogNe.sci b/tests/unit_tests/test_float_OpLogNe.sci
new file mode 100644
index 00000000..858b9c8b
--- /dev/null
+++ b/tests/unit_tests/test_float_OpLogNe.sci
@@ -0,0 +1,34 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpLogNe()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+ g0 = 'A'
+ g2 = "foo"
+
+ //disp(g0<>g0)
+
+ disp(d0<>d0)
+ disp(z0<>z0)
+ disp(d2<>d0)
+ disp(z2<>z0)
+
+ disp(d0<>d2)
+ disp(z0<>z2)
+
+ disp(d2<>d2)
+ disp(z2<>z2)
+
+ disp(d2<>z0)
+ disp(z2<>d0)
+
+ disp(d0<>z2)
+ disp(z0<>d2)
+
+ disp(d0<>z0)
+ disp(z0<>d0)
+
+ disp(d2<>z2)
+ disp(z2<>d2)
+endfunction
diff --git a/tests/unit_tests/test_float_OpLogNot.sci b/tests/unit_tests/test_float_OpLogNot.sci
new file mode 100644
index 00000000..b4fc390e
--- /dev/null
+++ b/tests/unit_tests/test_float_OpLogNot.sci
@@ -0,0 +1,24 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpLogNot()
+// test OpLogNot
+
+ disp(~(-2))
+ disp(~(0))
+ disp(~(3))
+
+ disp(~(0-2*%i))
+ disp(~(0+0*%i))
+ disp(~(0+3*%i))
+ disp(~(3-5*%i))
+ disp(~(3+0*%i))
+ disp(~(3+6*%i))
+
+ a=[-1 2 3; 0 -1 4; 2 -0 5];
+
+ disp(~(a))
+
+ b=[0+3*%i 2-%i 1 ; 0-2*%i 2+2*%i 1-%i; 0+0*%i 4+0*%i 5-0*%i]
+
+ disp(~(b))
+
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_OpLogOr.sci b/tests/unit_tests/test_float_OpLogOr.sci
new file mode 100644
index 00000000..c2309b83
--- /dev/null
+++ b/tests/unit_tests/test_float_OpLogOr.sci
@@ -0,0 +1,37 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpLogOr()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0|d0)
+ disp(z0|z0)
+ disp(d2|d0)
+ disp(z2|z0)
+
+ disp(d0|d2)
+disp(z0|z2)
+
+disp(d2|d2)
+disp(z2|z2)
+
+disp(d2|z0)
+disp(z2|d0)
+
+disp(d0|z2)
+disp(z0|d2)
+
+ disp(d0|z0)
+ disp(z0|d0)
+
+disp(d2|z2)
+disp(z2|d2)
+ disp('');
+ disp(%t|%f)
+ disp(%f|%t)
+ disp(%t|%t)
+ disp(%f|%f)
+ disp('');
+ disp([%t %f] |%f)
+endfunction
diff --git a/tests/unit_tests/test_float_OpMinus.sci b/tests/unit_tests/test_float_OpMinus.sci
new file mode 100644
index 00000000..4dee75a6
--- /dev/null
+++ b/tests/unit_tests/test_float_OpMinus.sci
@@ -0,0 +1,46 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpMinus()
+ a = 1;
+ b = 2;
+ c = a - b; // d0d0OpMinusd0
+ disp(c);
+
+ d = 1 - %i; // d0z0OpMinusz0
+ e = %i - 3; // z0d0OpMinusz0
+ f = d - e; // z0z0OpMinusz0
+
+ disp(f);
+
+ g = [1 2 3; 4 5 6];
+ h = 10;
+ w = g - h; // d2d0OpMinusd2
+ j = h - g; // d0d2OpMinusd2
+
+ disp(j);
+
+ k = [9 8 7; 6 5 4; 3 2 1]
+ l = [1 2 3; 4 5 6; 7 8 9]
+ m = k - l // d2d2OpMinusd2
+
+ disp(m);
+ n = k - 2 * %i; //d2z0OpMinusz2
+ o = 3 * %i - l; //z0d2OpMinusz2
+ p = n - o; // z2z2OpMinusz2
+
+ disp(p);
+ q = [1 2 3 ; 4 5 6 ; 7 8 9]
+ r = %pi * %i;
+ s = q - r; // d2z0OpMinusz2
+ t = r - q; // z0d2OpMinusz2
+
+ disp(s);
+ disp(t);
+ u = [1 2 3] - %i * [4 5 6]
+ v = [7 8 9]
+ x = u - v; // z2d2OpMinusz2
+ y = v - u; // d2z2OpMinusz2
+
+ disp(x);
+
+ disp(y);
+endfunction
diff --git a/tests/unit_tests/test_float_OpPlus.sci b/tests/unit_tests/test_float_OpPlus.sci
new file mode 100644
index 00000000..0f2b96e8
--- /dev/null
+++ b/tests/unit_tests/test_float_OpPlus.sci
@@ -0,0 +1,49 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpPlus()
+ a = 1;
+ b = 2;
+ c = a + b; // d0d0OpPlusd0
+
+ d = 1 + %i; // d0z0OpPlusz0
+ e = %i + 3; // z0d0OpPlusz0
+ f = d + e; // z0z0OpPlusz0
+
+ g = [1 2 3; 4 5 6];
+ h = 10;
+ w = g + h; // d2d0OpPlusd2
+ j = h + g; // d0d2OpPlusd2
+
+ k = [9 8 7; 6 5 4; 3 2 1]
+ l = [1 2 3; 4 5 6; 7 8 9]
+ m = k + l // d2d2OpPlusd2
+
+ n = k + 2 * %i; //d2z0OpPlusz2
+ o = 3 * %i + l; //z0d2OpPlusz2
+ p = n + o; // z2z2OpPlusz2
+
+ q = [1 2 3 ; 4 5 6 ; 7 8 9]
+ r = 3 * %i;
+ s = q + r; // d2z0OpPlusz2
+ t = r + q; // z0d2OpPlusz2
+
+ u = [1 2 3] + %i * [4 5 6]
+ v = [7 8 9]
+ x = u + v; // z2d2OpPlusz2
+ y = v + u; // d2z2OpPlusz2
+
+
+ disp(c);
+ disp(d);
+ disp(e);
+ disp(f);
+ disp("");
+ disp(w);
+ disp(j);
+ disp(m);
+ disp(p);
+ disp(s);
+ disp(t);
+ disp(x);
+ disp(y);
+
+endfunction
diff --git a/tests/unit_tests/test_float_OpRc.sci b/tests/unit_tests/test_float_OpRc.sci
new file mode 100644
index 00000000..3e084595
--- /dev/null
+++ b/tests/unit_tests/test_float_OpRc.sci
@@ -0,0 +1,46 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+function test_float_OpRc()
+
+ a = [1 , 2 , 3 , 4]; // d0d0OpRcs2
+ b = [7 , a];// d0d2OpRcs2
+ c = [a , 7];// d2d0OpRcs2
+ d = [a , b];// d2d2OpRcs2
+ disp(a);
+ disp(b);
+ disp(c);
+ disp(d);
+
+ e = [1*%i , 2*%i , 3*%i , 4*%i ];// z0z0OpRcz2
+ f = [7 , e];// z0z2OpRcz2
+ g = [e , 7];// z2z0OpRcz2
+ h = [e , f];// z2z2OpRcz2
+
+ disp(e);
+ disp(f);
+ disp(g);
+ disp(h);
+
+
+ i = [%i , 4.5]; // z0d0OpRcz2
+ j = [4.5 , %i ]; // d0z0OpRcz2
+ k = [4.5 , i ]; // d0z2OpRcz2
+ l = [i , 4.5]; // z2d0OpRcz2
+
+ disp(i);
+ disp(j);
+ disp(k);
+ disp(l);
+
+ m = [1 , 4.5];
+ n = [%i , m ]; // z0d2OpRcz2
+ o = [m , %i ]; // d0z2OpRcz2
+ p = [m , n ]; // d2z2OpRcz2
+ q = [n , m ]; // z2d2OpRcz2
+
+ disp(n);
+ disp(o);
+ disp(p);
+ disp(q);
+
+endfunction
diff --git a/tests/unit_tests/test_float_OpSlash.sci b/tests/unit_tests/test_float_OpSlash.sci
new file mode 100644
index 00000000..1312a72d
--- /dev/null
+++ b/tests/unit_tests/test_float_OpSlash.sci
@@ -0,0 +1,33 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpSlash()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0/d0)
+ disp(d0/z0)
+ disp(z0/d0)
+ disp(z0/z0)
+
+ disp(d2/d0)
+ disp(d2/z0)
+ disp(z2/d0)
+ disp(z2/z0)
+
+ disp(d0/d2)
+ disp(d0/z2)
+ disp(z0/d2)
+ disp(z0/z2)
+
+ disp(d2/d2)
+ disp(d2/z2)
+ disp(z2/d2)
+ disp(z2/z2)
+
+ disp([1 2 3]/[1 2 3]) //d2d2OpSlashd0
+ disp([1 2 3]/(%i * [1 2 3])) //d2z2OpSlashz0
+ disp((%i * [1 2 3])/[1 2 3]) //z2d2OpSlashz0
+ disp((%i * [1 2 3])/(%i * [1 2 3])) //z2z2OpSlashz0
+
+endfunction
diff --git a/tests/unit_tests/test_float_OpStar.sci b/tests/unit_tests/test_float_OpStar.sci
new file mode 100644
index 00000000..fa6d388b
--- /dev/null
+++ b/tests/unit_tests/test_float_OpStar.sci
@@ -0,0 +1,32 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_OpStar()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(d0*d0)
+ disp(d0*z0)
+ disp(z0*d0)
+ disp(z0*z0)
+
+ disp(d2*d0)
+ disp(d2*z0)
+ disp(z2*d0)
+ disp(z2*z0)
+
+ disp(d0*d2)
+ disp(d0*z2)
+ disp(z0*d2)
+ disp(z0*z2)
+
+ disp(d2*d2)
+ disp(d2*z2)
+ disp(z2*d2)
+ disp(z2*z2)
+
+ disp([1 2 3]*[1 2 3]') //d2d2OpStard0
+ disp([1 2 3]*(%i * [1 2 3])') //d2z2OpStarz0
+ disp((%i * [1 2 3])*[1 2 3]') //z2d2OpStarz0
+ disp((%i * [1 2 3])*(%i * [1 2 3])') //z2z2OpStarz0
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_Size.sci b/tests/unit_tests/test_float_Size.sci
new file mode 100644
index 00000000..cd80e8f0
--- /dev/null
+++ b/tests/unit_tests/test_float_Size.sci
@@ -0,0 +1,42 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Size()
+ disp(size(4));
+ disp(size([1 2]))
+ disp(size(2+3*%i));
+ disp(size([1 2 3 ; 4 5 6]));
+ disp(size([1 2 3 ; 4 5 6]*%i));
+ e = %pi ;
+ disp(size(e)); // d0Sized0
+
+ f = e * %i;
+ disp(size(f));// z0Sized0
+
+ a = [1 2 3 ; 4 5 6];
+ disp(size(a));// d2Sized0
+
+ b = [1 2 3 ; 4 5 6] * %i;
+ disp(size(b));// z2Sized0
+
+// with a second argument
+ o=1;
+
+ disp(size(4,1));
+ disp(size(2+3*%i,1));
+ disp(size([1 2 3 ; 4 5 6],o));
+ disp(size([1 2 3 ; 4 5 6]*%i,1));
+ e = %pi ;
+ disp(size(e,1)); // d0Sized0
+
+ f = e * %i;
+ disp(size(f,1));// z0Sized0
+
+ a = [1 2 3 ; 4 5 6];
+ disp(size(a,o));// d2Sized0
+
+ b = [1 2 3 ; 4 5 6] * %i;
+ disp(size(b,1));// z2Sized0
+
+
+
+
+endfunction
diff --git a/tests/unit_tests/test_float_Spec.sci b/tests/unit_tests/test_float_Spec.sci
new file mode 100644
index 00000000..42041925
--- /dev/null
+++ b/tests/unit_tests/test_float_Spec.sci
@@ -0,0 +1,42 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Spec()
+
+
+ disp(spec(45)) ; // d0Spec
+ disp(spec(4+3*%i)); // z0Spec
+
+ a = [1 2 3; -4 5 98 ; 7 8 5] ;
+ b = [1 2 3; -4 5 98 ; 7 -100000 5] ;
+
+
+ disp(spec(a));
+ disp(spec(b));
+
+ disp(spec(a*%i));
+ // 2 outputs
+
+ [aa bb] = spec(45) ; // d0Spec
+ disp(aa);
+ disp(bb);
+
+ [cc dd] = spec(4+3*%i); // z0Spec
+
+ disp(cc);
+ disp(dd);
+
+ a = [1 2 3; -4 5 98 ; 7 8 5] ;
+ b = [1 2 3; -4 5 98 ; 7 -100000 5] ;
+
+
+ [ee ff] = spec(a);
+ disp(ee);
+ disp(ff);
+ [gg hh] = spec(b);
+ disp(gg);
+ disp(hh);
+
+ [ii jj] = spec(a*%i);
+ disp(ii);
+ disp(jj);
+
+endfunction
diff --git a/tests/unit_tests/test_float_Stdevf.sci b/tests/unit_tests/test_float_Stdevf.sci
new file mode 100644
index 00000000..d429e557
--- /dev/null
+++ b/tests/unit_tests/test_float_Stdevf.sci
@@ -0,0 +1,46 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+function test_float_Stdevf()
+ disp (stdevf (4 , 5 )) ;
+ disp ("*******1*******");
+ disp (stdevf ([4 5 6], [1 2 3]));
+ disp ("*******2*******");
+ disp (stdevf (4 , 5*%i )) ;
+ disp ("*******3*******");
+ disp (stdevf ([4 5 6], [1 2 3]*%i));
+ disp ("*******4*******");
+
+
+
+ disp (stdevf ([4 5 6 ; 7 8 9], [1 2 3 ; 4 5 6],1));
+ disp ("*******5*******");
+ disp (stdevf ([4 7; 5 8; 6 9], [1 4; 2 5; 3 6],2));
+// complex
+ disp ("*******6*******");
+ disp (stdevf (4 +4*%i , 5 )) ;
+ disp ("*******7*******");
+ disp (stdevf ([4*%i, 5+6*%i, 6], [1 2 3]));
+ disp ("*******8*******");
+ disp (stdevf (4 +4*%i , 5*%i )) ;
+ disp ("*******9*******");
+ disp (stdevf ([4*%i, 5+6*%i, 6], [1 2 3]*%i));
+ disp ("******10*******");
+
+
+ disp (stdevf ([4 5 6 ; 7 8 9]*%i, [1 2 3 ; 4 5 6],1));
+ disp ("******11*******");
+ disp (stdevf ([4 7; 5 8; 6 9], [1 4; 2 5; 3 6]*%i,2));
+ disp (stdevf ([4 5 6 ; 7 8 9],[1 2 3 ; 4 8 9] + [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******12*******");
+ disp (stdevf ([4 5 6 ; 7 8 9], [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******13*******");
+ disp (stdevf ([4 7; 5 8; 6 9]*%i, [1 4; 2 5; 3 6],2));
+ disp ("******14*******");
+
+ disp (stdevf ([4 5 6 ; 7 8 9]*%i, [1 2 3 ; 4 5 6]*%i,1));
+ disp ("******15*******");
+ disp (stdevf ([4 7; 5 8; 6 9]*%i, [1 4; 2 5; 3 6]*%i,2));
+ disp ("******16*******");
+//
+
+endfunction
diff --git a/tests/unit_tests/test_float_Trace.sci b/tests/unit_tests/test_float_Trace.sci
new file mode 100644
index 00000000..74d20d93
--- /dev/null
+++ b/tests/unit_tests/test_float_Trace.sci
@@ -0,0 +1,14 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Trace()
+
+ a = [1 2 3; 4 %pi 5; 4.5 -3 2];
+ disp(trace(a));
+
+ b = %i * [1 2 3; 4 %pi 5; 4.5 -3 2];
+ disp(trace(b));
+
+
+ disp(trace(5));
+
+ disp(trace(%i));
+endfunction
diff --git a/tests/unit_tests/test_float_Type.sci b/tests/unit_tests/test_float_Type.sci
new file mode 100644
index 00000000..7e10aaa7
--- /dev/null
+++ b/tests/unit_tests/test_float_Type.sci
@@ -0,0 +1,9 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_Type()
+
+ disp(type(%pi));
+ disp(type(%pi + %i));
+ disp(type([%pi 4]));
+ disp(type([%pi %i]));
+
+endfunction
diff --git a/tests/unit_tests/test_float_abs.sci b/tests/unit_tests/test_float_abs.sci
new file mode 100644
index 00000000..05dfa95c
--- /dev/null
+++ b/tests/unit_tests/test_float_abs.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_abs()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(abs(d0))
+ disp(abs(z0))
+ disp(abs(d2))
+ disp(abs(z2))
+endfunction
diff --git a/tests/unit_tests/test_float_acos.sci b/tests/unit_tests/test_float_acos.sci
new file mode 100644
index 00000000..9abb6ba1
--- /dev/null
+++ b/tests/unit_tests/test_float_acos.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_acos()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(acos(d0));
+ disp(acos(d2));
+ disp(acos(z0));
+ disp(acos(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_acosh.sci b/tests/unit_tests/test_float_acosh.sci
new file mode 100644
index 00000000..1fa1556f
--- /dev/null
+++ b/tests/unit_tests/test_float_acosh.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_acosh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(acosh(d0));
+ disp(acosh(d2));
+ disp(acosh(z0));
+ disp(acosh(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_asin.sci b/tests/unit_tests/test_float_asin.sci
new file mode 100644
index 00000000..72b2234a
--- /dev/null
+++ b/tests/unit_tests/test_float_asin.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_asin()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(asin(d0));
+ disp(asin(d2));
+ disp(asin(z0));
+ disp(asin(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_asinh.sci b/tests/unit_tests/test_float_asinh.sci
new file mode 100644
index 00000000..f952001e
--- /dev/null
+++ b/tests/unit_tests/test_float_asinh.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_asinh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(asinh(d0));
+ disp(asinh(d2));
+ disp(asinh(z0));
+ disp(asinh(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_atan.sci b/tests/unit_tests/test_float_atan.sci
new file mode 100644
index 00000000..864ea65e
--- /dev/null
+++ b/tests/unit_tests/test_float_atan.sci
@@ -0,0 +1,15 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_atan()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(atan(d0));
+ disp(atan(d2));
+ disp(atan(z0));
+ disp(atan(z2));
+
+ disp(atan(d0,d0));
+ disp(atan(d2,d2));
+endfunction
diff --git a/tests/unit_tests/test_float_atanh.sci b/tests/unit_tests/test_float_atanh.sci
new file mode 100644
index 00000000..9f693a42
--- /dev/null
+++ b/tests/unit_tests/test_float_atanh.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_atanh()
+ d0 = %pi
+ d2 = [2 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(atanh(d0));
+ disp(atanh(d2));
+ disp(atanh(z0));
+ disp(atanh(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_ceil.sci b/tests/unit_tests/test_float_ceil.sci
new file mode 100644
index 00000000..0cda6c5e
--- /dev/null
+++ b/tests/unit_tests/test_float_ceil.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_ceil()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(ceil(d0));
+ disp(ceil(d2));
+ disp(ceil(z0));
+ disp(ceil(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_chol.sci b/tests/unit_tests/test_float_chol.sci
new file mode 100644
index 00000000..d8306e6b
--- /dev/null
+++ b/tests/unit_tests/test_float_chol.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_chol()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(chol(d0));
+ disp(chol(d2*d2'));
+ disp(chol(z0));
+ disp(chol(z2*z2'));
+endfunction
diff --git a/tests/unit_tests/test_float_conj.sci b/tests/unit_tests/test_float_conj.sci
new file mode 100644
index 00000000..c3141379
--- /dev/null
+++ b/tests/unit_tests/test_float_conj.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_conj()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(conj(d0));
+ disp(conj(d2));
+ disp(conj(z0));
+ disp(conj(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_cos.sci b/tests/unit_tests/test_float_cos.sci
new file mode 100644
index 00000000..bcb53b36
--- /dev/null
+++ b/tests/unit_tests/test_float_cos.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_cos()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(cos(d0));
+ disp(cos(d2));
+ disp(cos(z0));
+ disp(cos(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_cosh.sci b/tests/unit_tests/test_float_cosh.sci
new file mode 100644
index 00000000..cd393494
--- /dev/null
+++ b/tests/unit_tests/test_float_cosh.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_cosh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(cosh(d0));
+ disp(cosh(d2));
+ disp(cosh(z0));
+ disp(cosh(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_exp.sci b/tests/unit_tests/test_float_exp.sci
new file mode 100644
index 00000000..583a5fc9
--- /dev/null
+++ b/tests/unit_tests/test_float_exp.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_exp()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(exp(d0));
+ disp(exp(d2));
+ disp(exp(z0));
+ disp(exp(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_eye.sci b/tests/unit_tests/test_float_eye.sci
new file mode 100644
index 00000000..fe1c6d7f
--- /dev/null
+++ b/tests/unit_tests/test_float_eye.sci
@@ -0,0 +1,15 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_eye()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(eye(d0))
+ disp(eye(z0))
+ disp(eye(d2))
+ disp(eye(z2))
+ //disp(eye(0,0)) // ! sci2c does not manage [] !
+ disp(eye(1,1))
+ disp(eye(d0,d0))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_fix.sci b/tests/unit_tests/test_float_fix.sci
new file mode 100644
index 00000000..cf6d5f1e
--- /dev/null
+++ b/tests/unit_tests/test_float_fix.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_fix()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(fix(d0));
+ disp(fix(d2));
+ disp(fix(z0));
+ disp(fix(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_floor.sci b/tests/unit_tests/test_float_floor.sci
new file mode 100644
index 00000000..34723a21
--- /dev/null
+++ b/tests/unit_tests/test_float_floor.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_floor()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(floor(d0));
+ disp(floor(d2));
+ disp(floor(z0));
+ disp(floor(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_imag.sci b/tests/unit_tests/test_float_imag.sci
new file mode 100644
index 00000000..248588ed
--- /dev/null
+++ b/tests/unit_tests/test_float_imag.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_imag()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(imag(d0))
+ disp(imag(z0))
+ disp(imag(d2))
+ disp(imag(z2))
+endfunction
diff --git a/tests/unit_tests/test_float_int.sci b/tests/unit_tests/test_float_int.sci
new file mode 100644
index 00000000..43be0058
--- /dev/null
+++ b/tests/unit_tests/test_float_int.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_int()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(int(d0));
+ disp(int(d2));
+ disp(int(z0));
+ disp(int(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_inv.sci b/tests/unit_tests/test_float_inv.sci
new file mode 100644
index 00000000..84b79350
--- /dev/null
+++ b/tests/unit_tests/test_float_inv.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_inv()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(inv(d0));
+ disp(inv(d2));
+ disp(inv(z0));
+ disp(inv(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_isnan.sci b/tests/unit_tests/test_float_isnan.sci
new file mode 100644
index 00000000..e8c6edcb
--- /dev/null
+++ b/tests/unit_tests/test_float_isnan.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_isnan()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(isnan(d0))
+ disp(isnan(d2))
+ disp(isnan(z0))
+ disp(isnan(z2))
+endfunction
diff --git a/tests/unit_tests/test_float_log.sci b/tests/unit_tests/test_float_log.sci
new file mode 100644
index 00000000..e3fca7d1
--- /dev/null
+++ b/tests/unit_tests/test_float_log.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_log()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(log(d0));
+ disp(log(d2));
+ disp(log(z0));
+ disp(log(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_log10.sci b/tests/unit_tests/test_float_log10.sci
new file mode 100644
index 00000000..28831699
--- /dev/null
+++ b/tests/unit_tests/test_float_log10.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+ function test_float_log10()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(log10(d0));
+ disp(log10(d2));
+ disp(log10(z0));
+ disp(log10(z2));
+ endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_log1p.sci b/tests/unit_tests/test_float_log1p.sci
new file mode 100644
index 00000000..64d154c3
--- /dev/null
+++ b/tests/unit_tests/test_float_log1p.sci
@@ -0,0 +1,13 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_log1p()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(log1p(d0));
+ disp(log1p(d2));
+ //disp(log1p(z0)); // ! Not Implemented in Scilab !
+ //disp(log1p(z2)); // ! Not Implemented in Scilab !
+
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_max.sci b/tests/unit_tests/test_float_max.sci
new file mode 100644
index 00000000..5001e029
--- /dev/null
+++ b/tests/unit_tests/test_float_max.sci
@@ -0,0 +1,17 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_max()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ d3 = [1 2 9 4 ; 5 6 7 8 ; 9 10 17 12 ; 14 14 15 16]
+
+ disp(max(d0))
+ disp(max(d2))
+
+ disp(max(d0, 8))
+ disp(max(d0, d2))
+ disp(max(d2, 8))
+ disp(max(d3, d2))
+
+
+
+endfunction
diff --git a/tests/unit_tests/test_float_mean.sci b/tests/unit_tests/test_float_mean.sci
new file mode 100644
index 00000000..7da964a1
--- /dev/null
+++ b/tests/unit_tests/test_float_mean.sci
@@ -0,0 +1,32 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_mean()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(mean(d0))
+ disp(mean(z0))
+ disp(mean(d2))
+ disp(mean(z2))
+
+ disp(mean(d0, 1))
+ disp(mean(z0, 1))
+ disp(mean(d2, 1))
+ disp(mean(z2, 1))
+
+ disp(mean(d0, 2))
+ disp(mean(z0, 2))
+ disp(mean(d2, 2))
+ disp(mean(z2, 2))
+
+disp(mean(d0, 'r'))
+disp(mean(z0, 'r'))
+disp(mean(d2, 'r'))
+disp(mean(z2, 'r'))
+
+disp(mean(d0, 'c'))
+disp(mean(z0, 'c'))
+disp(mean(d2, 'c'))
+disp(mean(z2, 'c'))
+endfunction
diff --git a/tests/unit_tests/test_float_min.sci b/tests/unit_tests/test_float_min.sci
new file mode 100644
index 00000000..3f96abfa
--- /dev/null
+++ b/tests/unit_tests/test_float_min.sci
@@ -0,0 +1,19 @@
+
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_min()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ d3 = [1 2 9 4 ; 5 6 7 8 ; 9 10 17 12 ; 14 14 15 16]
+
+ disp(min(d0))
+ disp(min(d2))
+
+ disp(min(d0, 8))
+ disp(min(d0, d2))
+ disp(min(d2, 8))
+ disp(min(d3, d2))
+
+
+
+endfunction
+
diff --git a/tests/unit_tests/test_float_ones.sci b/tests/unit_tests/test_float_ones.sci
new file mode 100644
index 00000000..00e526b0
--- /dev/null
+++ b/tests/unit_tests/test_float_ones.sci
@@ -0,0 +1,15 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_ones()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(ones(d0))
+ disp(ones(z0))
+ disp(ones(d2))
+ disp(ones(z2))
+ //disp(ones(0,0)) // ! sci2c does not manage [] !
+ disp(ones(1,1))
+ disp(ones(d0,d0))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_prod.sci b/tests/unit_tests/test_float_prod.sci
new file mode 100644
index 00000000..b687a88a
--- /dev/null
+++ b/tests/unit_tests/test_float_prod.sci
@@ -0,0 +1,32 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_prod()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(prod(d0))
+ disp(prod(z0))
+ disp(prod(d2))
+ disp(prod(z2))
+
+ disp(prod(d0, 1))
+ disp(prod(z0, 1))
+ disp(prod(d2, 1))
+ disp(prod(z2, 1))
+
+ disp(prod(d0, 2))
+ disp(prod(z0, 2))
+ disp(prod(d2, 2))
+ disp(prod(z2, 2))
+
+ disp(prod(d0, 'r'))
+ disp(prod(z0, 'r'))
+ disp(prod(d2, 'r'))
+ disp(prod(z2, 'r'))
+
+ disp(prod(d0, 'c'))
+ disp(prod(z0, 'c'))
+ disp(prod(d2, 'c'))
+ disp(prod(z2, 'c'))
+endfunction
diff --git a/tests/unit_tests/test_float_rand.sci b/tests/unit_tests/test_float_rand.sci
new file mode 100644
index 00000000..9ad2a378
--- /dev/null
+++ b/tests/unit_tests/test_float_rand.sci
@@ -0,0 +1,15 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_rand()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(rand(d0))
+ disp(rand(z0))
+ disp(rand(d2))
+ disp(rand(z2))
+ //disp(rand(0,0)) // ! sci2c does not manage [] !
+ disp(rand(1,1))
+ disp(rand(d0,d0))
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_real.sci b/tests/unit_tests/test_float_real.sci
new file mode 100644
index 00000000..28632f06
--- /dev/null
+++ b/tests/unit_tests/test_float_real.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_real()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(real(d0))
+ disp(real(z0))
+ disp(real(d2))
+ disp(real(z2))
+endfunction
diff --git a/tests/unit_tests/test_float_round.sci b/tests/unit_tests/test_float_round.sci
new file mode 100644
index 00000000..94fb4f17
--- /dev/null
+++ b/tests/unit_tests/test_float_round.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_round()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(round(d0));
+ disp(round(d2));
+ disp(round(z0));
+ disp(round(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_sign.sci b/tests/unit_tests/test_float_sign.sci
new file mode 100644
index 00000000..1f7e32a4
--- /dev/null
+++ b/tests/unit_tests/test_float_sign.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_sign()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(sign(d0));
+ disp(sign(d2));
+ disp(sign(z0));
+ disp(sign(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_sin.sci b/tests/unit_tests/test_float_sin.sci
new file mode 100644
index 00000000..6fe5eb12
--- /dev/null
+++ b/tests/unit_tests/test_float_sin.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_sin()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(sin(d0));
+ disp(sin(d2));
+ disp(sin(z0));
+ disp(sin(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_sinh.sci b/tests/unit_tests/test_float_sinh.sci
new file mode 100644
index 00000000..0897290b
--- /dev/null
+++ b/tests/unit_tests/test_float_sinh.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_sinh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(sinh(d0));
+ disp(sinh(d2));
+ disp(sinh(z0));
+ disp(sinh(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_sqrt.sci b/tests/unit_tests/test_float_sqrt.sci
new file mode 100644
index 00000000..52c9dd83
--- /dev/null
+++ b/tests/unit_tests/test_float_sqrt.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_sqrt()
+ d0 = %pi
+ d2 = [2 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(sqrt(d0));
+ disp(sqrt(d2));
+ disp(sqrt(z0));
+ disp(sqrt(z2));
+endfunction \ No newline at end of file
diff --git a/tests/unit_tests/test_float_st_deviation.sci b/tests/unit_tests/test_float_st_deviation.sci
new file mode 100644
index 00000000..568d1a31
--- /dev/null
+++ b/tests/unit_tests/test_float_st_deviation.sci
@@ -0,0 +1,32 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_st_deviation()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(st_deviation(d0))
+ disp(st_deviation(z0))
+ disp(st_deviation(d2))
+ disp(st_deviation(z2))
+
+ disp(st_deviation(d0, 1))
+ disp(st_deviation(z0, 1))
+ disp(st_deviation(d2, 1))
+ disp(st_deviation(z2, 1))
+
+ disp(st_deviation(d0, 2))
+ disp(st_deviation(z0, 2))
+ disp(st_deviation(d2, 2))
+ disp(st_deviation(z2, 2))
+
+// disp(st_deviation(d0, 'r'))
+// disp(st_deviation(z0, 'r'))
+// disp(st_deviation(d2, 'r'))
+// disp(st_deviation(z2, 'r'))
+
+// disp(st_deviation(d0, 'c'))
+// disp(st_deviation(z0, 'c'))
+// disp(st_deviation(d2, 'c'))
+// disp(st_deviation(z2, 'c'))
+endfunction
diff --git a/tests/unit_tests/test_float_sum.sci b/tests/unit_tests/test_float_sum.sci
new file mode 100644
index 00000000..86ff0fd5
--- /dev/null
+++ b/tests/unit_tests/test_float_sum.sci
@@ -0,0 +1,32 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_sum()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(sum(d0))
+ disp(sum(z0))
+ disp(sum(d2))
+ disp(sum(z2))
+
+ disp(sum(d0, 1))
+ disp(sum(z0, 1))
+ disp(sum(d2, 1))
+ disp(sum(z2, 1))
+
+ disp(sum(d0, 2))
+ disp(sum(z0, 2))
+ disp(sum(d2, 2))
+ disp(sum(z2, 2))
+
+ disp(sum(d0, 'r'))
+ disp(sum(z0, 'r'))
+ disp(sum(d2, 'r'))
+ disp(sum(z2, 'r'))
+
+ disp(sum(d0, 'c'))
+ disp(sum(z0, 'c'))
+ disp(sum(d2, 'c'))
+ disp(sum(z2, 'c'))
+endfunction
diff --git a/tests/unit_tests/test_float_tanh.sci b/tests/unit_tests/test_float_tanh.sci
new file mode 100644
index 00000000..af0f12e3
--- /dev/null
+++ b/tests/unit_tests/test_float_tanh.sci
@@ -0,0 +1,12 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_tanh()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(tanh(d0));
+ disp(tanh(d2));
+ disp(tanh(z0));
+ disp(tanh(z2));
+endfunction
diff --git a/tests/unit_tests/test_float_variance.sci b/tests/unit_tests/test_float_variance.sci
new file mode 100644
index 00000000..fae69a1b
--- /dev/null
+++ b/tests/unit_tests/test_float_variance.sci
@@ -0,0 +1,32 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_variance()
+ d0 = 0.2113249
+ d2 = [0.2113249 0.0002211 0.6653811;0.7560439 0.4453586 0.6283918]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ //disp(variance(d0))
+ //disp(variance(z0))
+ disp(variance(d2))
+ disp(variance(z2))
+
+ //disp(variance(d0, 1))
+ //disp(variance(z0, 1))
+ disp(variance(d2, 1))
+ disp(variance(z2, 1))
+
+ //disp(variance(d0, 2))
+ //disp(variance(z0, 2))
+ disp(variance(d2, 2))
+ disp(variance(z2, 2))
+
+//disp(variance(d0, 'r'))
+//disp(variance(z0, 'r'))
+disp(variance(d2, 'r'))
+disp(variance(z2, 'r'))
+
+//disp(variance(d0, 'c'))
+//disp(variance(z0, 'c'))
+disp(variance(d2, 'c'))
+disp(variance(z2, 'c'))
+endfunction
diff --git a/tests/unit_tests/test_float_zeros.sci b/tests/unit_tests/test_float_zeros.sci
new file mode 100644
index 00000000..27f4ced0
--- /dev/null
+++ b/tests/unit_tests/test_float_zeros.sci
@@ -0,0 +1,15 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function test_float_zeros()
+ d0 = %pi
+ d2 = [1 2 3 4 ; 4 5 1 8 ; 9 1 11 12 ; 13 14 15 16]
+ z0 = d0 + %i * d0
+ z2 = d2 + %i * d2
+
+ disp(zeros(d0))
+ disp(zeros(z0))
+ disp(zeros(d2))
+ disp(zeros(z2))
+ //disp(zeros(0,0)) // ! sci2c does not manage [] !
+ disp(zeros(1,1))
+ disp(zeros(d0,d0))
+endfunction \ No newline at end of file