Skip to content

Commit 8c149fc

Browse files
authored
Update README.md
1 parent 5d071f1 commit 8c149fc

File tree

1 file changed

+160
-0
lines changed

1 file changed

+160
-0
lines changed

README.md

+160
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,166 @@ The User can also check if his/her equation is part of the Regression Suite form
7474
While the answers in the Regression Suite have been hand computed and have been checked, some mistakes are still present.
7575
The User should bear this in mind.
7676

77+
# Release 3.0
78+
Packages
79+
JavaCalculus is divided into 1 package of 9 Files:
80+
1) MathsContxtLAv
81+
2) DiffrIntegrSep
82+
3) FuncInvSep
83+
4) SimpleAlgebraSep
84+
5) SubsStrSep
85+
6) CalculusApplication
86+
7) MathematicalTestHarness
87+
8) TestHarnessClass
88+
9) Usage
89+
90+
TestHarness is divided into 1 package of 13 Files:
91+
1) TestHarnessAlgebra
92+
2) TestHarnessCoefficients
93+
3) TestHarnessExpression
94+
4) TestHarnessFInverse
95+
5) TestHarnessFunctions
96+
6) TestHarnessIndConstant
97+
7) TestHarnessInfinityNaN
98+
8) TestHarnessIsolation
99+
9) TestHarnessNames
100+
10) TestHarnessParentheses
101+
11) TestHarnessPredicate
102+
12) TestHarnessSignedX
103+
13) TestHarnessUnitTest
104+
105+
106+
107+
3. RUNNING THE PROGRAMS
108+
Using Netbeans 8.2,
109+
1) Open MathematicalTestHarness.java.
110+
2) Right Click
111+
3) Select Run File
112+
113+
114+
5. ENGINEERING
115+
116+
5.a Separation of Interface Code to appropriate files
117+
1) The Original MathsContxtLAv Code has been decluttered and seperated out to individual files (File Name ending with “Sep”). The Java public & private keywords for variables have been used rationalized.
118+
2) The parser “state” variables for each interface has been seperated to allow better command and control.
119+
120+
121+
5.b Design of Term
122+
A term in JavaCalculus follows the below grammar:
123+
M*x^Exp*IndConstant*Parenthesis
124+
Where M: is a numerical String ( A constant integer or float)
125+
X: is the prmary variable (used only by differentiator & Integrator- variable “DiffWithRespTo” in the code- can be alphanumeric as in x123, y256 etc (i.e of any length).)
126+
IndConstant: is any other variable(other than the primary variable (x) ). These are treated as constant string during Integration & Differentiation i.e Algebraic Coefficients.
127+
Parenthesis: This is a String expression of Constants, x and IndConstants with braces at the beginning & closing braces at the end. The Design Intent has been that JavaCalculus Differentiator & Integrator will appropriately differentiate/integrate it if it contains the primary variable.
128+
Infinity /NaN: The String “Infinity” & “NaN” can be used in M. However JavaCalculus uses it appropriately as an IndConstant.
129+
130+
5.c Testing Improvements
131+
1) “Status=Pass Conformal Map TEST” Or Function ConformalMapTestCaseIntegr has been added to check if the mapping holds true for :
132+
a. 8 values of x (-3.0 to +4) at the high level followed by a +-DELTA (DELTA = 0.000001) (3 values (-DELTA, 0 , +Delta) )
133+
b. mapping the primary variable to “y” using StrIntegr.replaceAll(DiffWithRespTo, "y");
134+
c. High Level Algebraic Conformal Mapping:
135+
The mapping between :
136+
1) Expression supplied by the user is checked with that of Simple Expression.
137+
2) Differentiation / Integration Answer supplied by the user is checked with that of DiffExpr/ IntegrExpr
138+
3) DiffExpr/ IntegrExpr Output is checked with that of Simple Expression (Map2).
139+
4) This is repeated for (b.)
140+
141+
Only if all pass is the status made GREEN.
142+
143+
2) PassFailTestCaseValue
144+
This has been improved from just checking Doublevalue to accomodating rounding off. Thus any numerical random values in the last few digits of Double are accomodated.
145+
146+
147+
5.d Test Results Reporting
148+
The Test Report is added at the end of the raw Test Results.(After Test Case 110023
149+
a) Summary:
150+
mainDiffTest: TestCase Summary : Total Failed=117 Out of Run TestCases-Dups=311 Passed Count=194 DupCount=17
151+
Section IsolationTestCases Complete # of Failures=6 Out of=22 Test Cases. Dups=0 in Section
152+
Section InfinityNaNTestCases Complete # of Failures=0 Out of=20 Test Cases. Dups=0 in Section
153+
Section SanityTestCases Complete # of Failures=6 Out of=14 Test Cases. Dups=0 in Section
154+
Section UnitTestCases Complete # of Failures=8 Out of=28 Test Cases. Dups=2 in Section
155+
Section Names Complete # of Failures=0 Out of=4 Test Cases. Dups=1 in Section
156+
Section Coefficients Complete # of Failures=5 Out of=61 Test Cases. Dups=6 in Section
157+
Section Exponent Complete # of Failures=2 Out of=11 Test Cases. Dups=0 in Section
158+
Section SignedX Complete # of Failures=10 Out of=30 Test Cases. Dups=2 in Section
159+
Section IndConstant Complete # of Failures=36 Out of=43 Test Cases. Dups=6 in Section
160+
Section Parentheses Complete # of Failures=33 Out of=48 Test Cases. Dups=0 in Section
161+
Section Function Test Cases Complete # of Failures=2 Out of=2 Test Cases. Dups=0 in Section
162+
Section Function Argument Test Cases Complete # of Failures=5 Out of=5 Test Cases. Dups=0 in Section
163+
Section SoftwareEngg Complete # of Failures=4 Out of=23 Test Cases. Dups=0 in Section
164+
165+
mainIntegrTest: j=110023 TestCase=110023
166+
mainIntegrTest: TestCase Summary : Total Failed=135 Out of Run TestCases-Dups=311 Passed Count=176 DupCount=17
167+
Section IsolationTestCases Complete # of Failures=8 Out of=22 Test Cases. Dups=0 in Section
168+
Section InfinityNaNTestCases Complete # of Failures=5 Out of=20 Test Cases. Dups=0 in Section
169+
Section SanityTestCases Complete # of Failures=7 Out of=14 Test Cases. Dups=0 in Section
170+
Section UnitTestCases Complete # of Failures=5 Out of=28 Test Cases. Dups=2 in Section
171+
Section Names Complete # of Failures=0 Out of=4 Test Cases. Dups=1 in Section
172+
Section Coefficients Complete # of Failures=8 Out of=61 Test Cases. Dups=6 in Section
173+
Section Exponent Complete # of Failures=4 Out of=11 Test Cases. Dups=0 in Section
174+
Section SignedX Complete # of Failures=8 Out of=30 Test Cases. Dups=2 in Section
175+
Section IndConstant Complete # of Failures=34 Out of=43 Test Cases. Dups=6 in Section
176+
Section Parentheses Complete # of Failures=47 Out of=48 Test Cases. Dups=0 in Section
177+
Section Function Test Cases Complete # of Failures=2 Out of=2 Test Cases. Dups=0 in Section
178+
Section Function Argument Test Cases Complete # of Failures=5 Out of=5 Test Cases. Dups=0 in Section
179+
Section SoftwareEngg Complete # of Failures=2 Out of=23 Test Cases. Dups=0 in Section
180+
181+
b) Sectionwise Breakup:
182+
mainIntegrTest: TestCase Summary : Failed Test Cases are:
183+
TestCase=1003:Order=1:Str=false:Val=false:ConfValFlag=false,:Order=2:Str=false:Val=false:ConfValFlag=false,:Order=3:Str=false:Val=false:ConfValFlag=false,:Order=4:Str=false:Val=false:ConfValFlag=false, TestCase=1004:Order=4:Str=false:Val=false:ConfValFlag=false, TestCase=1005:Order=1:Str=false:Val=true:ConfValFlag=false, TestCase=1015:Order=1:Str=false:Val=false:ConfValFlag=false, TestCase=1016:Order=1:Str=false:Val=false:ConfValFlag=false, TestCase=1019:Order=1:Str=false:Val=false:ConfValFlag=false,
184+
TestCase=1020:Order=1:Str=false:Val=false:ConfValFlag=false, TestCase=1021:Order=1:Str=false:Val=false:ConfValFlag=false, null
185+
, Section IsolationTestCases Complete # of Failures=8 Out of=22 Test Cases. Dups=0 in Section
186+
, TestCase=2003:Order=1:Str=false:Val=true:ConfValFlag=true,
187+
TestCase=2004:Order=1:Str=false:Val=true:ConfValFlag=true, TestCase=2006:Order=1:Str=false:Val=true:ConfValFlag=true, TestCase=2008:Order=1:Str=false:Val=true:ConfValFlag=true, TestCase=2017:Order=1:Str=false:Val=true:ConfValFlag=true, null
188+
,
189+
Section InfinityNaNTestCases Complete # of Failures=5 Out of=20 Test Cases. Dups=0 in Section
190+
c) Exception Breakup
191+
mainIntegrTest: Exception TestCase Summary : Total Exceptions=5 Exception Test Cases are:
192+
TestCase=40046:Order=1:Str=false:Val=false, TestCase=40047:Order=1:Str=false:Val=false, TestCase=40048:Order=1:Str=false:Val=false, TestCase=40049:Order=1:Str=false:Val=false, TestCase=80035:Order=1:Str=false:Val=false,
193+
mainIntegrTest: TestCase Duplicate Summary : EqnDBIndex=328
194+
d) Dups
195+
TestCase@5038@:Dup with :5036:
196+
TestCase@5042@:Dup with :5037:
197+
TestCase@10001@:Dup with :1000:
198+
TestCase@20001@:Dup with :4026:
199+
TestCase@20020@:Dup with :4030:
200+
TestCase@20022@:Dup with :4031:
201+
TestCase@20023@:Dup with :4032:
202+
TestCase@20031@:Dup with :4027:
203+
TestCase@20093@:Dup with :4026:
204+
TestCase@40005@:Dup with :4026:
205+
TestCase@40006@:Dup with :20002:
206+
TestCase@50003@:Dup with :4019:
207+
TestCase@50004@:Dup with :4020:
208+
TestCase@50012@:Dup with :40020:
209+
TestCase@50013@:Dup with :40021:
210+
TestCase@50048@:Dup with :50047:
211+
TestCase@50050@:Dup with :50049:
212+
e) Exception Cause Breakup
213+
40046:For input string: "0.0E+0.010",
214+
40047:For input string: "0.0E-0.010",
215+
40048:For input string: "0.0E-0.010",
216+
40049:For input string: "0.0E-1.010",
217+
80035:String index out of range: -1,
218+
219+
5.e Algebraic Conformal Mapping
220+
JavaCalculus 3.0 has been improved to output algebraic conformal strings.
221+
SimpleExpression has been improved to output algebraic conformal.
222+
DiffExpr has been improved to output algebraic conformal.
223+
IntegrExpr has been improved to output algebraic conformal.
224+
225+
Thus (TestCase = 2000)
226+
"1.0/-0/x^8 + 1.0/-0/x^5 + 1.0/-0/x^4 - 1.0/-0/x - 25/-0";
227+
Simple Expression Map1:
228+
"-Infinity/x^8.0-Infinity/x^5.0-Infinity/x^4.0+Infinity/x+Infinity";
229+
DiffExpr :
230+
"-Infinity*-8.0/x^9.0-Infinity*-5.0/x^6.0-Infinity*-4.0/x^5.0-Infinity/x^2.0+Infinity";
231+
IntegrExpr:
232+
"-Infinity/-7.0/x^7.0-Infinity/-4.0/x^4.0-Infinity/-3.0/x^3.0+Infinity*ln(x)+Infinity*x";
233+
Simple Expression Map2(IntegrExpr):
234+
"Infinity/7.0/x^7.0+Infinity/4.0/x^4.0+Infinity/3.0/x^3.0+Infinity*ln(x)+Infinity*x";
235+
236+
The Design intent has been to allow extremely small values(Delta x) to be properly algebraicly mapped and Differentiated.It also helps in the debugging of very large Strings Equations to check which term is causing the error.
77237

78238
For more details see [GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/).
79239

0 commit comments

Comments
 (0)