chore(tests/lean/extract): reactivate some #eval tests

This commit is contained in:
Sebastian Ullrich 2019-09-19 18:09:31 +02:00
parent 31c170117e
commit 8cb387e599
10 changed files with 108 additions and 99 deletions

View file

@ -1,80 +1,79 @@
#exit -- Disabled until we implement new VM
#eval "abc"
/- some "a" -/
#eval
let s₁ := "abcde" in
let it₁ := s₁.mkIterator in
let it₂ := it₁.next in
let s₁ := "abcde";
let it₁ := s₁.mkIterator;
let it₂ := it₁.next;
it₁.extract it₂
/- some "" -/
#eval
let s₁ := "abcde" in
let it₁ := s₁.mkIterator in
let s₁ := "abcde";
let it₁ := s₁.mkIterator;
it₁.extract it₁
/- none -/
#eval
let s₁ := "abcde" in
let it₁ := s₁.mkIterator in
let it₂ := it₁.next in
let s₁ := "abcde";
let it₁ := s₁.mkIterator;
let it₂ := it₁.next;
it₂.extract it₁
/- some "abc" -/
#eval
let s₁ := "abcde" in
let it₁ := s₁.mkIterator in
let it₂ := it₁.next.next.next.prev.next in
let s₁ := "abcde";
let it₁ := s₁.mkIterator;
let it₂ := it₁.next.next.next.prev.next;
it₁.extract it₂
/- some "bcde" -/
#eval
let s₁ := "abcde" in
let it₁ := s₁.mkIterator.next in
let it₂ := it₁.next.next.next.next in
let s₁ := "abcde";
let it₁ := s₁.mkIterator.next;
let it₂ := it₁.next.next.next.next;
it₁.extract it₂
/- some "abcde" -/
#eval
let s₁ := "abcde" in
let it₁ := s₁.mkIterator in
let it₂ := it₁.next.next.next.next.next in
let s₁ := "abcde";
let it₁ := s₁.mkIterator;
let it₂ := it₁.next.next.next.next.next;
it₁.extract it₂
/- some "ab" -/
#eval
let s₁ := "abcde" in
let s₂ := "abcde" in
let it₁ := s₁.mkIterator in
let it₂ := s₂.mkIterator.next.next in
let s₁ := "abcde";
let s₂ := "abcde";
let it₁ := s₁.mkIterator;
let it₂ := s₂.mkIterator.next.next;
it₁.extract it₂
/- none -/
#eval
let s₁ := "abcde" in
let s₂ := "abhde" in
let it₁ := s₁.mkIterator in
let it₂ := s₂.mkIterator.next.next in
let s₁ := "abcde";
let s₂ := "abhde";
let it₁ := s₁.mkIterator;
let it₂ := s₂.mkIterator.next.next;
it₁.extract it₂
/- none -/
#eval
let s₁ := "abcde" in
let it₁ := s₁.mkIterator in
let it₂ := it₁.next.setCurr 'a' in
let s₁ := "abcde";
let it₁ := s₁.mkIterator;
let it₂ := it₁.next.setCurr 'a';
it₁.extract it₂
/- some "a" -/
#eval
let s₁ := "abcde" in
let it₁ := s₁.mkIterator in
let it₂ := it₁.next.setCurr 'b' in
let s₁ := "abcde";
let it₁ := s₁.mkIterator;
let it₂ := it₁.next.setCurr 'b';
it₁.extract it₂
/- some "a" -/
#eval
let s₁ := "abcde" in
let it₁ := s₁.mkIterator in
let it₂ := (it₁.next.setCurr 'a').setCurr 'b' in
let s₁ := "abcde";
let it₁ := s₁.mkIterator;
let it₂ := (it₁.next.setCurr 'a').setCurr 'b';
it₁.extract it₂

View file

@ -1 +1,12 @@
extract.lean:1:0: warning: using 'exit' to interrupt Lean
"abc"
"a"
""
""
"abc"
"bcde"
"abcde"
"ab"
""
""
"a"
"a"

View file

@ -9,8 +9,6 @@ foo
def ex₂ : ExceptT String (StateT (Array Nat) Id) Nat :=
foo
#exit
-- The following examples were producing an element of Type `id (Except String Nat)`.
-- Type class resolution was failing to produce an instance for `HasRepr (id (Except String Nat))` because `id` is not transparent.
#eval run ex₁ (mkArray 10 1000)

View file

@ -1 +1,2 @@
repr_issue.lean:12:0: warning: using 'exit' to interrupt Lean
(ok 1000)
(ok 33)

View file

@ -14,7 +14,7 @@ a.foldl Nat.add 0
#exit
#eval mkArray 4 1
#eval Array.map (+10) v
#eval Array.map (fun x => x+10) v
#eval f ⟨1, sorry⟩
#eval f ⟨9, sorry⟩
#eval (((mkArray 1 1).push 2).push 3).foldl 0 (+)

View file

@ -4,6 +4,4 @@ structure S :=
def f (s : S) :=
s.b - s.a
#exit
#eval f {a := 5, b := 30, h := sorry }

View file

@ -1,35 +1,12 @@
#exit -- Disabled until we implement new VM
#eval ("abc" ++ "cde").length
#eval "abc".popBack
#eval "".popBack
#eval "abcd".popBack
#eval ("abcd".mkIterator.nextn 2).remainingToString
#eval ("abcd".mkIterator.nextn 2).prevToString
#eval ("abcd".mkIterator.nextn 10).remainingToString
#eval ("abcd".mkIterator.nextn 10).prevToString
#eval "foo.Lean".popnBack 5
#eval "foo.Lean".backn 5
#eval "αβγ".popBack
#eval "αβ".length
#eval ("αβcc".mkIterator.next.insert "_foo_").toString
#eval ("αβcc".mkIterator.next.next.insert "_foo_").toString
#eval ("αβcc".mkIterator.next.next.prev.insert "_foo_").toString
#eval ("αβcc".mkIterator.remaining)
#eval ("αβcc".mkIterator.next.remaining)
#eval ("αβcc".mkIterator.next.insert "αbcβ").remaining
#eval (("αβcc".mkIterator.next.insert "αbcβ").remove 2).remaining
#eval (("αβcc".mkIterator.next.insert "αbcβ").remove 2).prev.remaining
#eval ("αβcc".mkIterator.next.toEnd).remaining
#eval "αβcc".mkIterator.offset
#eval "αβcc".mkIterator.next.offset
#eval "αβcc".mkIterator.next.next.offset
#eval ("αβcc".mkIterator.next.setCurr 'a').offset
#eval ("αβcc".mkIterator.next.insert "αbc").offset
#eval ("αβcc".mkIterator.next.insert "αbc").remaining
#eval ("αβcc".mkIterator.insert "αbc").offset
#eval ("αβcc".mkIterator.next.insert "αbcβ").offset
#eval "αβcd".mkIterator.toEnd.offset
#eval "αβcc".mkIterator.pos
#eval "αβcc".mkIterator.next.pos
#eval "αβcc".mkIterator.next.next.pos
#eval "αβcc".mkIterator.next.setCurr 'a'
#eval "αβcd".mkIterator.toEnd.pos
#eval "ab\n\nfoo bla".lineColumn 0
#eval "ab\n\nfoo bla".lineColumn 1
#eval "ab\n\nfoo bla".lineColumn 2

View file

@ -1 +1,15 @@
string_imp.lean:1:0: warning: using 'exit' to interrupt Lean
6
"cd"
""
2
0
2
4
(String.Iterator.mk "αacc" 2)
6
(3, 7)
(3, 7)
(3, 7)
(3, 7)
(3, 7)
(3, 7)

View file

@ -9,20 +9,6 @@ let it₁ := s.mkIterator;
let it₂ := it₁.next;
it₁.remainingToString ++ "-" ++ it₂.remainingToString
#exit -- Disabled until we implement new VM
def r (s : String) : String :=
let it₁ := s.mkIterator.toEnd;
let it₂ := it₁.prev;
it₁.prevToString ++ "-" ++ it₂.prevToString
def s (s : String) : String :=
let it₁ := s.mkIterator.toEnd;
let it₂ := it₁.prev;
(it₁.insert "abc").toString ++ (it₂.insert "de").toString
#eval "hello" ++ "hello"
#eval f "hello"
#eval (f "αβ").length
@ -51,8 +37,6 @@ let it₂ := it₁.prev;
#eval "abc".mkIterator.remainingToString
#eval ("a".push (Char.ofNat 0)) ++ "bb"
#eval (("a".push (Char.ofNat 0)) ++ "αb").length
#eval r "abc"
#eval "abc".mkIterator.toEnd.prevToString
#eval "".mkIterator.hasNext
#eval "a".mkIterator.hasNext
#eval "a".mkIterator.next.hasNext
@ -60,14 +44,5 @@ let it₂ := it₁.prev;
#eval "a".mkIterator.next.hasPrev
#eval "αβ".mkIterator.next.hasPrev
#eval "αβ".mkIterator.next.prev.hasPrev
#eval ("αβ".mkIterator.toEnd.insert "abc").toString
#eval ("αβ".mkIterator.next.insert "abc").toString
#eval s "αβ"
#eval ("abcdef".mkIterator.next.remove 2).toString
#eval ("abcdef".mkIterator.next.next.remove 2).toString
#eval ("abcdef".mkIterator.next.remove 3).toString
#eval (("abcdef".mkIterator.next.next.next.remove 100).prev.setCurr 'a').toString
#eval ("abcdef".mkIterator.next.next.next.remove 100).hasNext
#eval ("abcdef".mkIterator.next.next.next.remove 100).prev.hasNext
#eval toBool $ "abc" = "abc"
#eval toBool $ "abc" = "abd"
#eval "abc" == "abc"
#eval "abc" == "abd"

View file

@ -1 +1,37 @@
string_imp2.lean:13:0: warning: using 'exit' to interrupt Lean
"hellohello"
"hello hello"
5
['h', 'e', 'l', 'l', 'o']
['α', 'β']
[]
['α', 'β', 'γ']
"αβγ"
"αβγ"
"αβγ"
2
['α', 'β']
"αβa"
"α α-"
'A'
"aβγ"
"abγ"
"abc"
"cbγ"
"0bc"
"01c"
"012"
"21c"
"λbc"
"abc-bc"
"abc"
"a\x00bb"
4
false
true
false
false
true
true
false
true
false