diff options
Diffstat (limited to 'ClojureCLR/Clojure/Clojure.Tests/LibTests/KeywordTests.cs')
-rw-r--r-- | ClojureCLR/Clojure/Clojure.Tests/LibTests/KeywordTests.cs | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/ClojureCLR/Clojure/Clojure.Tests/LibTests/KeywordTests.cs b/ClojureCLR/Clojure/Clojure.Tests/LibTests/KeywordTests.cs deleted file mode 100644 index 6960f14c..00000000 --- a/ClojureCLR/Clojure/Clojure.Tests/LibTests/KeywordTests.cs +++ /dev/null @@ -1,239 +0,0 @@ -/**
- * 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 Rhino.Mocks;
-
-using clojure.lang;
-
-using RMExpect = Rhino.Mocks.Expect;
-using System.Collections;
-
-
-namespace Clojure.Tests.LibTests
-{
- [TestFixture]
- public class KeywordTests : AssertionHelper
- {
-
- #region c-tor tests
-
- [Test]
- public void InternCreatesKeywordBasedOnSymbol()
- {
- Symbol sym = Symbol.intern("def","abc");
- Keyword k1 = Keyword.intern(sym);
- Expect(k1.Name,EqualTo(sym.Name));
- Expect(k1.Namespace,EqualTo(sym.Namespace));
- }
-
- [Test]
- public void InternReturnsSameKeywordOnEqualSym()
- {
- Symbol sym1 = Symbol.intern("def", "abc");
- Symbol sym2 = Symbol.intern("def", "abc");
- Keyword k1 = Keyword.intern(sym1);
- Keyword k2 = Keyword.intern(sym2);
-
- Expect(Object.ReferenceEquals(k1, k2));
- }
-
- [Test]
- public void Intern2CreatesKeywordBasedOnSymbol()
- {
- Keyword k1 = Keyword.intern("def","abc");
- Expect(k1.Name, EqualTo("abc"));
- Expect(k1.Namespace, EqualTo("def"));
- }
-
- [Test]
- public void Intern2ReturnsSameKeywordOnEqualSym()
- {
- Keyword k1 = Keyword.intern("def", "abc");
- Keyword k2 = Keyword.intern("def", "abc");
-
- Expect(Object.ReferenceEquals(k1, k2));
- }
-
- #endregion
-
- #region object override tests
-
- [Test]
- public void ToStringReturnsStringNameWithColonPrepended()
- {
- Symbol sym1 = Symbol.intern("abc");
- Symbol sym2 = Symbol.intern("abc/def");
- Keyword k1 = Keyword.intern(sym1);
- Keyword k2 = Keyword.intern(sym2);
-
- Expect(k1.ToString(), EqualTo(":abc"));
- Expect(k2.ToString(), EqualTo(":abc/def"));
- }
-
- [Test]
- public void EqualOnIdentityIsTrue()
- {
- Symbol sym1 = Symbol.intern("abc");
- Keyword k1 = Keyword.intern(sym1);
-
- Expect(k1.Equals(k1));
- }
-
- [Test]
- public void EqualsOnNonKeywordIsFalse()
- {
- Symbol sym1 = Symbol.intern("abc");
- Keyword k1 = Keyword.intern(sym1);
-
- Expect(k1.Equals(sym1), False);
- }
-
- //[Test]
- //public void EqualsDependsOnSym()
- //{
- // Symbol sym1 = Symbol.intern("abc");
- // Symbol sym2 = Symbol.intern("abc");
- // Keyword k1 = Keyword.intern(sym1);
- // Keyword k2 = Keyword.intern(sym2);
- // // I don't know how we ever create two keywords that will force
- // // the code to go into the sym.equals part of the code.
- // // At least, not through the factory methods.
- //}
-
- [Test]
- public void HashCodeDependsOnValue()
- {
- Symbol sym1 = Symbol.intern("abc");
- Symbol sym2 = Symbol.intern("abc/def");
- Keyword k1 = Keyword.intern(sym1);
- Keyword k2 = Keyword.intern(sym2);
-
- Expect(k1.GetHashCode(), Not.EqualTo(k2.GetHashCode()));
- }
-
-
- #endregion
-
- #region Named tests
-
- public void NameAndNamespaceComeFromTheSymbol()
- {
- Symbol sym1 = Symbol.intern("def", "abc");
- Keyword k1 = Keyword.intern(sym1);
- Symbol sym2 = Symbol.intern("abc");
- Keyword k2 = Keyword.intern(sym2);
- Expect(k1.Name, EqualTo("abc"));
- Expect(k1.Namespace, EqualTo("def"));
- Expect(k2.Name, EqualTo("abc"));
- Expect(k2.Namespace, Null);
- }
-
- #endregion
-
- #region IFn Tests
-
- [Test]
- public void Invoke2IndexesIntoItsFirstArg()
- {
- Keyword k1 = Keyword.intern(Symbol.intern("abc"));
- Keyword k2 = Keyword.intern(Symbol.intern("ab"));
-
- IDictionary dict = new Hashtable();
- dict[k1] = 7;
- dict["abc"] = 8;
-
- Expect(k1.invoke(dict), EqualTo(7));
- Expect(k2.invoke(dict), Null);
- }
-
- [Test]
- public void Invoke3IndexesIntoItsFirstArg()
- {
- Keyword k1 = Keyword.intern(Symbol.intern("abc"));
- Keyword k2 = Keyword.intern(Symbol.intern("ab"));
-
- IDictionary dict = new Hashtable();
- dict[k1] = 7;
- dict["abc"] = 8;
-
- Expect(k1.invoke(dict, 20), EqualTo(7));
- Expect(k2.invoke(dict, 20), EqualTo(20));
- }
-
- [Test]
- [ExpectedException(typeof(ArgumentException))]
- public void InvokeOnNoArgsFails()
- {
- Keyword k1 = Keyword.intern(Symbol.intern("abc"));
- object o = k1.invoke();
- }
-
- [Test]
- [ExpectedException(typeof(ArgumentException))]
- public void InvokeOnTooManyArgsFails()
- {
- Keyword k1 = Keyword.intern(Symbol.intern("abc"));
- IDictionary dict = new Hashtable();
- dict[k1] = 7;
- dict["abc"] = 8;
-
- object o = k1.invoke(dict, 20, null);
- }
-
- #endregion
-
- #region IComparable tests
-
- [Test]
- [ExpectedException(typeof(InvalidCastException))]
- public void CompareToNonKeywordFails()
- {
- Symbol s1 = Symbol.intern("abc");
- Keyword k1 = Keyword.intern(s1);
- int c = k1.CompareTo(s1);
- }
-
- [Test]
- public void CompareToEqualKeywordIsZero()
- {
- Keyword k1 = Keyword.intern(Symbol.intern("abc"));
- Keyword k2 = Keyword.intern(Symbol.intern("abc"));
-
- Expect(k1.CompareTo(k2), EqualTo(0));
- }
-
- [Test]
- public void CompareDependsOnSymbolCompare()
- {
- Symbol sym1 = Symbol.intern("abc");
- Symbol sym2 = Symbol.intern("a", "abc");
- Symbol sym3 = Symbol.intern("b", "abc");
- Keyword k1 = Keyword.intern(sym1);
- Keyword k2 = Keyword.intern(sym2);
- Keyword k3 = Keyword.intern(sym3);
-
- Expect(k1.CompareTo(k2), LessThan(0));
- Expect(k2.CompareTo(k1), GreaterThan(0));
- Expect(k1.CompareTo(k3), LessThan(0));
- Expect(k3.CompareTo(k1), GreaterThan(0));
- }
-
-
- #endregion
- }
-
-}
|