From 67f56f0795ac0214f9828c42f8face229e204c1d Mon Sep 17 00:00:00 2001 From: David Miller Date: Sat, 21 Feb 2009 06:55:20 +0000 Subject: ClojureCLR: added ClojureCLR project to repo. --- .../Clojure.Tests/LibTests/ISeqTestHelper.cs | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 ClojureCLR/Clojure/Clojure.Tests/LibTests/ISeqTestHelper.cs (limited to 'ClojureCLR/Clojure/Clojure.Tests/LibTests/ISeqTestHelper.cs') diff --git a/ClojureCLR/Clojure/Clojure.Tests/LibTests/ISeqTestHelper.cs b/ClojureCLR/Clojure/Clojure.Tests/LibTests/ISeqTestHelper.cs new file mode 100644 index 00000000..ba04a65e --- /dev/null +++ b/ClojureCLR/Clojure/Clojure.Tests/LibTests/ISeqTestHelper.cs @@ -0,0 +1,54 @@ +/** + * Copyright (c) David Miller. All rights reserved. + * The use and distribution terms for this software are covered by the + * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) + * which can be found in the file epl-v10.html at the root of this distribution. + * By using this software in any fashion, you are agreeing to be bound by + * the terms of this license. + * You must not remove this notice, or any other, from this software. + **/ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; +using clojure.lang; + +namespace Clojure.Tests.LibTests +{ + public class ISeqTestHelper : AssertionHelper + { + public void VerifyISeqContents(ISeq s, IList values) + { + int i=0; + + for (; s != null; s = s.rest(), i++) + Expect(s.first(), EqualTo(values[i])); + + Expect(i, EqualTo(values.Count)); + } + + public void VerifyISeqCons(ISeq s, object newVal, IList values) + { + ISeq newSeq = s.cons(newVal); + + Expect(newSeq.first(), EqualTo(newVal)); + VerifyISeqContents(newSeq.rest(), values); + } + + public void VerifyISeqRestTypes(ISeq s, Type type) + { + for ( ; s.rest() != null; s = s.rest()) + Expect(s.rest(), InstanceOfType(type)); + } + + public void VerifyISeqRestMaintainsMeta(ISeq s) + { + IPersistentMap meta = ((IMeta)s).meta(); + + for (; s.rest() != null; s = s.rest()) + Expect(((IMeta)s.rest()).meta(), EqualTo(meta)); + } + } +} -- cgit v1.2.3-18-g5258