From: Jean Privat Date: Wed, 2 Dec 2015 19:09:15 +0000 (-0500) Subject: tests: add bench_seq X-Git-Tag: v0.8~59^2~1 X-Git-Url: http://nitlanguage.org?ds=sidebyside tests: add bench_seq Signed-off-by: Jean Privat --- diff --git a/tests/bench_seq.nit b/tests/bench_seq.nit new file mode 100644 index 0000000..560a8a2 --- /dev/null +++ b/tests/bench_seq.nit @@ -0,0 +1,41 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Copyright 2005-2008 Jean Privat +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import more_collections + +fun test_list(l: Sequence[Int], n: Int) +do + for i in [0..n[ do l.push i + print "{l.length} {l.first} {l.last}" + for i in [0..n[ do l.unshift -i-1 + print "{l.length} {l.first} {l.last}" + for i in [0..n[ do l.unshift l.pop + print "{l.length} {l.first} {l.last}" + for i in [0..n[ do l.push l.shift + print "{l.length} {l.first} {l.last}" + for i in [0..n[ do l[i] = l[n+i] + print "{l.length} {l.first} {l.last}" + for i in [0..n] do l.insert(i*10, i*2) + print "{l.length} {l.first} {l.last}" + print "" +end + +var nb = 100 +if args.not_empty then nb = args.first.to_i + +test_list(new Array[Int], nb) +test_list(new List[Int], nb) +test_list(new UnrolledList[Int], nb) diff --git a/tests/sav/bench_seq.res b/tests/sav/bench_seq.res new file mode 100644 index 0000000..5ece831 --- /dev/null +++ b/tests/sav/bench_seq.res @@ -0,0 +1,21 @@ +100 0 99 +200 -100 99 +200 0 -1 +200 -100 99 +200 0 99 +301 0 99 + +100 0 99 +200 -100 99 +200 0 -1 +200 -100 99 +200 0 99 +301 0 99 + +100 0 99 +200 -100 99 +200 0 -1 +200 -100 99 +200 0 99 +301 0 99 +