Skip to content

Commit

Permalink
fix some CAS tests
Browse files Browse the repository at this point in the history
fix remaining tests


ide: line shift fix


fix cas tests
  • Loading branch information
kspalaiologos committed Mar 1, 2023
1 parent d978210 commit 5387204
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,7 @@ public String prompt(ObjectInputStream ois, ObjectOutputStream oos) {
try {
text = area.getText(r.byteOffset, area.getDocument().getLength() - r.byteOffset);
synchronized (lines) {
lineIndex = 0;
lines.add(text.substring(0, text.length() - 1));
}
r.byteOffset = 0;
Expand Down
20 changes: 10 additions & 10 deletions src/test/java/TestCAS.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ class TestCAS {
void testBasicIntegral() {
assertEquals(Common.runCode("""
(cas:integral (cas:fn x x) dx)
""").toString(), "ƒ(x)=(* (* (/ 1 2) x) x)");
""").toString(), "ƒ(x)=(* (/ 1 2) x x)");

assertEquals(Common.runCode("""
(cas:integral (cas:fn x \\+ x (** x 2)) dx)
""").toString(), "ƒ(x)=(+ (* (/ 1 3) (** x 3)) (* (* (/ 1 2) x) x))");
""").toString(), "ƒ(x)=(+ (* (/ 1 3) (** x 3)) (* (/ 1 2) x x))");
}

@Test
Expand All @@ -34,7 +34,7 @@ void testBasicIntegralTrig() {
void testIntegralTrig() {
assertEquals(Common.runCode("""
(cas:integral (cas:fn x \\/ (+ (sin x) (cos x))) dx)
""").toString(), "ƒ(x)=(/ (* (sqrt 2) (ln (/ (- (* (- (+ (* 2 (cos x)) (* 2 (sqrt 2)))) (sin x)) (+ (* (* 2 (sqrt 2)) (cos x)) 3)) (+ (* (* 2 (cos x)) (sin x)) 1)))) 4)");
""").toString(), "ƒ(x)=(/ (* (sqrt 2) (ln (/ (- (* (- (+ (* 2 (cos x)) (* 2 (sqrt 2)))) (sin x)) (+ (* 2 (sqrt 2) (cos x)) 3)) (+ (* 2 (cos x) (sin x)) 1)))) 4)");

assertEquals(Common.runCode("""
(cas:integral (cas:fn x \\* (sin x) (cos x) (tan x)) dx)
Expand All @@ -46,7 +46,7 @@ void testIntegralTrig() {

assertEquals(Common.runCode("""
(cas:integral (cas:fn x \\sqrt (tan x)) dx)
""").toString(), "ƒ(x)=(/ (- (- (- (* (* 4 (sqrt 2)) (atan (/ 1 (- (+ (sqrt (/ (- (+ (+ (* (* (* 2 (sqrt 2)) (cos x)) (sqrt (/ (sin x) (cos x)))) (* 2 (sin x))) (* 2 (cos x)))) (cos x))) (* (sqrt 2) (sqrt (/ (sin x) (cos x))))) 1)))) (* (* 4 (sqrt 2)) (atan (/ 1 (+ (+ (sqrt (/ (+ (+ (* (* (* 2 (sqrt 2)) (cos x)) (sqrt (/ (sin x) (cos x)))) (* 2 (sin x))) (* 2 (cos x))) (cos x))) (* (sqrt 2) (sqrt (/ (sin x) (cos x))))) 1))))) (+ (* (sqrt 2) (ln (/ (+ (+ (* (* (* 2 (sqrt 2)) (cos x)) (sqrt (/ (sin x) (cos x)))) (* 2 (sin x))) (* 2 (cos x))) (cos x)))) (* (sqrt 2) (ln (/ (- (+ (+ (* (* (* 2 (sqrt 2)) (cos x)) (sqrt (/ (sin x) (cos x)))) (* 2 (sin x))) (* 2 (cos x)))) (cos x))))))) 4)");
""").toString(), "ƒ(x)=(/ (- (- (- (* 4 (sqrt 2) (atan (/ 1 (+ (sqrt (/ (- (+ (* 2 (sqrt 2) (cos x) (sqrt (/ (sin x) (cos x)))) (* 2 (sin x)) (* 2 (cos x)))) (cos x))) (* (sqrt 2) (sqrt (/ (sin x) (cos x)))) 1)))) (* 4 (sqrt 2) (atan (/ 1 (+ (sqrt (/ (+ (* 2 (sqrt 2) (cos x) (sqrt (/ (sin x) (cos x)))) (* 2 (sin x)) (* 2 (cos x))) (cos x))) (* (sqrt 2) (sqrt (/ (sin x) (cos x)))) 1))))) (+ (* (sqrt 2) (ln (/ (+ (* 2 (sqrt 2) (cos x) (sqrt (/ (sin x) (cos x)))) (* 2 (sin x)) (* 2 (cos x))) (cos x)))) (* (sqrt 2) (ln (/ (- (+ (* 2 (sqrt 2) (cos x) (sqrt (/ (sin x) (cos x)))) (* 2 (sin x)) (* 2 (cos x)))) (cos x))))))) 4)");

assertEquals(Common.runCode("""
(cas:integral (cas:fn x \\/ (exp (asec x)) (** x 2)) dx)
Expand All @@ -57,18 +57,18 @@ void testIntegralTrig() {
void testIntegralExpLog() {
assertEquals(Common.runCode("""
(cas:integral (cas:fn x \\exp (+ 1 (ln x))) dx)
""").toString(), "ƒ(x)=(/ (* (* x x) (e)) 2)");
""").toString(), "ƒ(x)=(/ (* x x (e)) 2)");
}

@Test
void testRationalIntegral() {
assertEquals(Common.runCode("""
(cas:integral (cas:fn x \\/ (sqrt (+ 1 (** x 2))) (+ 1 (** x 3))) dx)
""").toString(), "ƒ(x)=(/ (- (* (sqrt 2) (ln (/ (- (- (- (+ (* (+ (+ (sqrt 2) x) 1) (sqrt (+ (* x x) 1))) (* (- (- x 1)) (sqrt 2))) (* x x)) x) 2) (- (- (* (+ x 1) (sqrt (+ (* x x) 1))) (* x x)) x)))) (* 2 (atan (/ (- (- (* (- (* 2 x) 1) (sqrt (+ (* x x) 1))) (+ (* (* 2 x) x) x)) 1) (- (- (sqrt (+ (* x x) 1)) x) 1))))) 3)");
""").toString(), "ƒ(x)=(/ (- (* (sqrt 2) (ln (/ (+ (* (+ (sqrt 2) x 1) (sqrt (+ (* x x) 1))) (* (- (- x 1)) (sqrt 2)) (* x x) x 2) (- (- (* (+ x 1) (sqrt (+ (* x x) 1))) (* x x)) x)))) (* 2 (atan (/ (- (- (* (- (* 2 x) 1) (sqrt (+ (* x x) 1))) (+ (* 2 x x) x)) 1) (- (- (sqrt (+ (* x x) 1)) x) 1))))) 3)");

assertEquals(Common.runCode("""
(cas:integral (cas:fn x \\/ (** x 6) (sqrt (* (+ (** x 7) 1) (+ (** x 7) 2)))) dx)
""").toString(), "ƒ(x)=(- (/ (ln (- (- (* 2 (sqrt (+ (+ (** x 14) (* 3 (** x 7))) 2))) (* 2 (** x 7))) 3)) 7))");
""").toString(), "ƒ(x)=(- (/ (ln (- (- (* 2 (sqrt (+ (** x 14) (* 3 (** x 7)) 2))) (* 2 (** x 7))) 3)) 7))");
}

@Test
Expand All @@ -82,14 +82,14 @@ void testIntegralSpecialFunction() {
void testDefiniteKuratowski() {
assertEquals(Common.runCode("""
(cas:integral (cas:fn x \\/ (* x (sin x)) (+ 1 (** (cos x) 2))) dx)
""").toString(), "ƒ(x)=(/ (- (- (+ (- (- (- (- (+ (+ (- (- (+ (* (* x 0J1) (ln (/ (- (- (+ (* (- (+ (sqrt 2) 0J1) 1) (sin x)) (* (- (- (+ (* 0J1 (sqrt 2)) 0J1) 1)) (cos x))) (+ (* 0J1 (sqrt 2)) 0J1)) 1) (- (+ (* (- (sqrt 2) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1)) (cos x))) (+ (* 0J1 (sqrt 2)) 0J1))))) (* (* x 0J1) (ln (/ (- (+ (+ (* (- (+ (sqrt 2) 0J1) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) (+ 0J1 1)) (cos x))) (* 0J1 (sqrt 2))) (+ 0J1 1)) (- (+ (+ (* (- (sqrt 2) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) 0J1) (cos x))) (* 0J1 (sqrt 2))) 0J1))))) (* (* x 0J1) (ln (/ (- (- (- (+ (* (+ (+ (sqrt 2) 0J1) 1) (sin x)) (* (- (- (- (* 0J1 (sqrt 2)) 0J1) 1)) (cos x))) (* 0J1 (sqrt 2))) 0J1) 1) (- (- (+ (* (+ (sqrt 2) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1)) (cos x))) (* 0J1 (sqrt 2))) 0J1))))) (* (* x 0J1) (ln (/ (+ (+ (+ (+ (* (+ (+ (sqrt 2) 0J1) 1) (sin x)) (* (+ (+ (* 0J1 (sqrt 2)) 0J1) 1) (cos x))) (* 0J1 (sqrt 2))) 0J1) 1) (+ (+ (+ (* (+ (sqrt 2) 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1) (cos x))) (* 0J1 (sqrt 2))) 0J1))))) (* (* x 0J1) (ln (/ (- (+ (+ (+ (* (- (sqrt 2) (+ 0J1 1)) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1) 1) (cos x))) (* 0J1 (sqrt 2))) 0J1) 1) (+ (+ (+ (* (+ (sqrt 2) 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1) (cos x))) (* 0J1 (sqrt 2))) 0J1))))) (* (* x 0J1) (ln (/ (- (- (+ (* (- (sqrt 2) (+ 0J1 1)) (sin x)) (* (- (- (* 0J1 (sqrt 2)) (+ 0J1 1))) (cos x))) (* 0J1 (sqrt 2))) (+ 0J1 1)) (- (- (+ (* (+ (sqrt 2) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1)) (cos x))) (* 0J1 (sqrt 2))) 0J1))))) (* (* x 0J1) (ln (/ (- (- (+ (+ (* (- (- (sqrt 2) 0J1) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1) 1) (cos x))) (* 0J1 (sqrt 2))) 0J1) 1) (- (+ (+ (* (- (sqrt 2) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) 0J1) (cos x))) (* 0J1 (sqrt 2))) 0J1))))) (* (* x 0J1) (ln (/ (- (+ (* (- (- (sqrt 2) 0J1) 1) (sin x)) (* (- (+ (+ (* 0J1 (sqrt 2)) 0J1) 1)) (cos x))) (+ (+ (* 0J1 (sqrt 2)) 0J1) 1)) (- (+ (* (- (sqrt 2) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1)) (cos x))) (+ (* 0J1 (sqrt 2)) 0J1)))))) (+ (+ (dilog (/ (- (- (+ (* (- (+ (sqrt 2) 0J1) 1) (sin x)) (* (- (- (+ (* 0J1 (sqrt 2)) 0J1) 1)) (cos x))) (+ (* 0J1 (sqrt 2)) 0J1)) 1) (- (+ (* (- (sqrt 2) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1)) (cos x))) (+ (* 0J1 (sqrt 2)) 0J1)))) (dilog (/ (- (+ (+ (* (- (+ (sqrt 2) 0J1) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) (+ 0J1 1)) (cos x))) (* 0J1 (sqrt 2))) (+ 0J1 1)) (- (+ (+ (* (- (sqrt 2) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) 0J1) (cos x))) (* 0J1 (sqrt 2))) 0J1)))) (dilog (/ (- (- (- (+ (* (+ (+ (sqrt 2) 0J1) 1) (sin x)) (* (- (- (- (* 0J1 (sqrt 2)) 0J1) 1)) (cos x))) (* 0J1 (sqrt 2))) 0J1) 1) (- (- (+ (* (+ (sqrt 2) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1)) (cos x))) (* 0J1 (sqrt 2))) 0J1))))) (dilog (/ (+ (+ (+ (+ (* (+ (+ (sqrt 2) 0J1) 1) (sin x)) (* (+ (+ (* 0J1 (sqrt 2)) 0J1) 1) (cos x))) (* 0J1 (sqrt 2))) 0J1) 1) (+ (+ (+ (* (+ (sqrt 2) 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1) (cos x))) (* 0J1 (sqrt 2))) 0J1)))) (dilog (/ (- (+ (+ (+ (* (- (sqrt 2) (+ 0J1 1)) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1) 1) (cos x))) (* 0J1 (sqrt 2))) 0J1) 1) (+ (+ (+ (* (+ (sqrt 2) 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1) (cos x))) (* 0J1 (sqrt 2))) 0J1)))) (dilog (/ (- (- (+ (* (- (sqrt 2) (+ 0J1 1)) (sin x)) (* (- (- (* 0J1 (sqrt 2)) (+ 0J1 1))) (cos x))) (* 0J1 (sqrt 2))) (+ 0J1 1)) (- (- (+ (* (+ (sqrt 2) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1)) (cos x))) (* 0J1 (sqrt 2))) 0J1)))) (+ (dilog (/ (- (- (+ (+ (* (- (- (sqrt 2) 0J1) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1) 1) (cos x))) (* 0J1 (sqrt 2))) 0J1) 1) (- (+ (+ (* (- (sqrt 2) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) 0J1) (cos x))) (* 0J1 (sqrt 2))) 0J1))) (dilog (/ (- (+ (* (- (- (sqrt 2) 0J1) 1) (sin x)) (* (- (+ (+ (* 0J1 (sqrt 2)) 0J1) 1)) (cos x))) (+ (+ (* 0J1 (sqrt 2)) 0J1) 1)) (- (+ (* (- (sqrt 2) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1)) (cos x))) (+ (* 0J1 (sqrt 2)) 0J1)))))) 4)");
""").toString(), "ƒ(x)=(/ (+ (- (- (+ (+ (* x 0J1 (ln (/ (+ (* (+ (sqrt 2) 0J1 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1 1)) (cos x)) (+ (* 0J1 (sqrt 2)) 0J1) 1) (+ (* (- (sqrt 2) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1)) (cos x)) (+ (* 0J1 (sqrt 2)) 0J1))))) (* x 0J1 (ln (/ (+ (* (+ (sqrt 2) 0J1 1) (sin x)) (* (- (* 0J1 (sqrt 2)) (+ 0J1 1)) (cos x)) (* 0J1 (sqrt 2)) (+ 0J1 1)) (+ (* (- (sqrt 2) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) 0J1) (cos x)) (* 0J1 (sqrt 2)) 0J1)))) (* x 0J1 (ln (/ (+ (* (+ (sqrt 2) 0J1 1) (sin x)) (* (- (- (- (* 0J1 (sqrt 2)) 0J1) 1)) (cos x)) (* 0J1 (sqrt 2)) 0J1 1) (+ (* (+ (sqrt 2) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1)) (cos x)) (* 0J1 (sqrt 2)) 0J1)))) (* x 0J1 (ln (/ (+ (* (+ (sqrt 2) 0J1 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1 1) (cos x)) (* 0J1 (sqrt 2)) 0J1 1) (+ (* (+ (sqrt 2) 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1) (cos x)) (* 0J1 (sqrt 2)) 0J1))))) (* x 0J1 (ln (/ (+ (* (- (sqrt 2) (+ 0J1 1)) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1 1) (cos x)) (* 0J1 (sqrt 2)) 0J1 1) (+ (* (+ (sqrt 2) 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1) (cos x)) (* 0J1 (sqrt 2)) 0J1)))) (* x 0J1 (ln (/ (+ (* (- (sqrt 2) (+ 0J1 1)) (sin x)) (* (- (- (* 0J1 (sqrt 2)) (+ 0J1 1))) (cos x)) (* 0J1 (sqrt 2)) (+ 0J1 1)) (+ (* (+ (sqrt 2) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1)) (cos x)) (* 0J1 (sqrt 2)) 0J1)))) (* x 0J1 (ln (/ (+ (* (- (- (sqrt 2) 0J1) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1) 1) (cos x)) (* 0J1 (sqrt 2)) 0J1 1) (+ (* (- (sqrt 2) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) 0J1) (cos x)) (* 0J1 (sqrt 2)) 0J1)))) (* x 0J1 (ln (/ (+ (* (- (- (sqrt 2) 0J1) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1 1)) (cos x)) (+ (* 0J1 (sqrt 2)) 0J1 1)) (+ (* (- (sqrt 2) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1)) (cos x)) (+ (* 0J1 (sqrt 2)) 0J1)))))) (+ (dilog (/ (+ (* (+ (sqrt 2) 0J1 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1 1)) (cos x)) (+ (* 0J1 (sqrt 2)) 0J1) 1) (+ (* (- (sqrt 2) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1)) (cos x)) (+ (* 0J1 (sqrt 2)) 0J1)))) (dilog (/ (+ (* (+ (sqrt 2) 0J1 1) (sin x)) (* (- (* 0J1 (sqrt 2)) (+ 0J1 1)) (cos x)) (* 0J1 (sqrt 2)) (+ 0J1 1)) (+ (* (- (sqrt 2) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) 0J1) (cos x)) (* 0J1 (sqrt 2)) 0J1))) (dilog (/ (+ (* (+ (sqrt 2) 0J1 1) (sin x)) (* (- (- (- (* 0J1 (sqrt 2)) 0J1) 1)) (cos x)) (* 0J1 (sqrt 2)) 0J1 1) (+ (* (+ (sqrt 2) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1)) (cos x)) (* 0J1 (sqrt 2)) 0J1))))) (dilog (/ (+ (* (+ (sqrt 2) 0J1 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1 1) (cos x)) (* 0J1 (sqrt 2)) 0J1 1) (+ (* (+ (sqrt 2) 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1) (cos x)) (* 0J1 (sqrt 2)) 0J1)))) (dilog (/ (+ (* (- (sqrt 2) (+ 0J1 1)) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1 1) (cos x)) (* 0J1 (sqrt 2)) 0J1 1) (+ (* (+ (sqrt 2) 1) (sin x)) (* (+ (* 0J1 (sqrt 2)) 0J1) (cos x)) (* 0J1 (sqrt 2)) 0J1))) (dilog (/ (+ (* (- (sqrt 2) (+ 0J1 1)) (sin x)) (* (- (- (* 0J1 (sqrt 2)) (+ 0J1 1))) (cos x)) (* 0J1 (sqrt 2)) (+ 0J1 1)) (+ (* (+ (sqrt 2) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1)) (cos x)) (* 0J1 (sqrt 2)) 0J1))) (+ (dilog (/ (+ (* (- (- (sqrt 2) 0J1) 1) (sin x)) (* (- (- (* 0J1 (sqrt 2)) 0J1) 1) (cos x)) (* 0J1 (sqrt 2)) 0J1 1) (+ (* (- (sqrt 2) 1) (sin x)) (* (- (* 0J1 (sqrt 2)) 0J1) (cos x)) (* 0J1 (sqrt 2)) 0J1))) (dilog (/ (+ (* (- (- (sqrt 2) 0J1) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1 1)) (cos x)) (+ (* 0J1 (sqrt 2)) 0J1 1)) (+ (* (- (sqrt 2) 1) (sin x)) (* (- (+ (* 0J1 (sqrt 2)) 0J1)) (cos x)) (+ (* 0J1 (sqrt 2)) 0J1)))))) 4)");
}

@Test
void testMultipleValues() {
assertEquals(Common.runCode("""
(cas:integral (cas:fn (a x) \\/ (+ a (** x 2))) dx)
""").toString(), "(ƒ(a,x)=(/ (ln (/ (+ (* (- (* x x) a) (sqrt (- a))) (* (* 2 a) x)) (+ (* x x) a))) (* 2 (sqrt (- a)))) ƒ(a,x)=(/ (atan (/ (* x (sqrt a)) a)) (sqrt a)))");
""").toString(), "(ƒ(a,x)=(/ (ln (/ (+ (* (- (* x x) a) (sqrt (- a))) (* 2 a x)) (+ (* x x) a))) (* 2 (sqrt (- a)))) ƒ(a,x)=(/ (atan (/ (* x (sqrt a)) a)) (sqrt a)))");
}

@Test
Expand All @@ -107,6 +107,6 @@ void testBasicLimit() {
void testPolynomialFactor() {
assertEquals(Common.runCode("""
(cas:factor (cas:polynomial '(1 -6 11 -6)))
""").toString(), "ƒ(x)=(* (* (- x 3) (- x 2)) (- x 1))");
""").toString(), "ƒ(x)=(* (- x 3) (- x 2) (- x 1))");
}
}

0 comments on commit 5387204

Please sign in to comment.