aboutsummaryrefslogtreecommitdiff
path: root/ClojureCLR/Clojure/Clojure.Tests/ReaderTests/LineNumberingTextReaderTests.cs
diff options
context:
space:
mode:
authorDavid Miller <dmiller2718@gmail.com>2009-10-16 22:32:06 -0500
committerDavid Miller <dmiller2718@gmail.com>2009-10-16 22:32:06 -0500
commitb9c7820e64d4e5b86c837b25800cf61094ad2517 (patch)
tree3331479011111c5cd3f58d975e5bdf780cff9d2d /ClojureCLR/Clojure/Clojure.Tests/ReaderTests/LineNumberingTextReaderTests.cs
parent0ef485fc1e2c80d6d531b5f8874f051e0f4c7d0a (diff)
Removing ClojureCLR (Moved to http://github.com/richhickey/clojure-clr)
Diffstat (limited to 'ClojureCLR/Clojure/Clojure.Tests/ReaderTests/LineNumberingTextReaderTests.cs')
-rw-r--r--ClojureCLR/Clojure/Clojure.Tests/ReaderTests/LineNumberingTextReaderTests.cs251
1 files changed, 0 insertions, 251 deletions
diff --git a/ClojureCLR/Clojure/Clojure.Tests/ReaderTests/LineNumberingTextReaderTests.cs b/ClojureCLR/Clojure/Clojure.Tests/ReaderTests/LineNumberingTextReaderTests.cs
deleted file mode 100644
index 0af3ed50..00000000
--- a/ClojureCLR/Clojure/Clojure.Tests/ReaderTests/LineNumberingTextReaderTests.cs
+++ /dev/null
@@ -1,251 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-using NUnit.Framework;
-
-using clojure.lang;
-using System.IO;
-
-namespace Clojure.Tests.ReaderTests
-{
- [TestFixture]
- public class LineNumberingTextReaderTests : AssertionHelper
- {
- const string _sample = "abc\nde\nfghijk\r\nlmnopq\n\nrstuv";
- StringReader _sr;
- LineNumberingTextReader _rdr;
-
- [SetUp]
- public void Setup()
- {
- _sr = new StringReader(_sample);
- _rdr = new LineNumberingTextReader(_sr);
-
- }
-
- [TearDown]
- public void TearDown()
- {
- _rdr.Close();
- }
-
- [Test]
- public void Initializes_properly()
- {
- Expect(_rdr.Position, EqualTo(0));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.Peek(), EqualTo((int)_sample[0]));
- Expect(_rdr.AtLineStart);
- }
-
-
- [Test]
- public void Reads_character_at_a_time()
- {
- int[] chars = new int[] {
- 'a', 'b', 'c', '\n',
- 'd', 'e', '\n',
- 'f', 'g', 'h', 'i', 'j', 'k', '\n',
- 'l', 'm', 'n', 'o', 'p', 'q', '\n',
- '\n',
- 'r', 's', 't', 'u', 'v' };
-
- int[] positions = new int[] {
- 1, 2, 3, 0,
- 1, 2, 0,
- 1, 2, 3, 4, 5, 6, 0,
- 1, 2, 3, 4, 5, 6, 0,
- 0,
- 1, 2, 3, 4, 5 };
-
- int[] lines = new int[] {
- 1, 1, 1, 2,
- 2, 2, 3,
- 3, 3, 3, 3, 3, 3, 4,
- 4, 4, 4, 4, 4, 4, 5,
- 6,
- 6, 6, 6, 6, 6 };
-
- bool[] starts = new bool[] {
- false, false, false, true,
- false, false, true,
- false, false, false, false, false, false, true,
- false, false, false, false, false, false, true,
- true,
- false, false, false, false, false
- };
-
- int i=0;
- int ch;
- while ((ch = _rdr.Read()) != -1)
- {
- Expect(ch, EqualTo(chars[i]));
- Expect(_rdr.Position, EqualTo(positions[i]));
- Expect(_rdr.LineNumber, EqualTo(lines[i]));
- Expect(_rdr.AtLineStart, EqualTo(starts[i]));
- ++i;
- }
- }
-
- [Test]
- public void Reads_lines_at_a_time()
- {
- string[] lines = new string[] {
- "abc",
- "de",
- "fghijk",
- "lmnopq",
- "",
- "rstuv" };
-
- int[] positions = new int[] {
- 0,0,0,0,0,5 };
-
- int[] lineNums = new int[] {
- 2, 3, 4, 5, 6, 6 };
-
- bool[] starts = new bool[] {
- true, true, true, true, true, true
- };
-
- int index = 0;
- string line;
- while ((line = _rdr.ReadLine()) != null)
- {
- Expect(line, EqualTo(lines[index]));
- Expect(_rdr.Position, EqualTo(positions[index]));
- Expect(_rdr.LineNumber, EqualTo(lineNums[index]));
- Expect(_rdr.AtLineStart, EqualTo(starts[index]));
- ++index;
- }
- }
-
- [Test]
- public void Reads_blocks_just_fine()
- {
- char[][] buffers = new char[][] {
- new char[] { 'a', 'b', 'c', '\n', 'd' },
- new char[] { 'e', '\n', 'f', 'g', 'h' },
- new char[] { 'i', 'j', 'k', '\n', 'l' },
- new char[] { 'm', 'n', 'o', 'p', 'q' },
- new char[] { '\n', '\n', 'r', 's', 't' },
- new char[] { 'u', 'v' } };
- int[] positions = new int[] { 1, 3, 1, 6, 3, 5 };
- int[] lineNums = new int[] { 2, 3, 4, 4, 6, 6 };
- bool[] starts = new bool[] { false, false, false, false, false, true, };
-
- char[] buffer = new char[20];
-
- int index = 0;
- int count;
- while ((count = _rdr.Read(buffer, 0, 5)) != 0)
- {
- //Console.WriteLine("{0} {1}/{2} {3}/{4} {5}", index, _rdr.Position, positions[index], _rdr.LineNumber, lineNums[index], _rdr.AtLineStart);
- Expect(SameContents(buffer, buffers[index], count));
- Expect(_rdr.Position, EqualTo(positions[index]));
- Expect(_rdr.LineNumber, EqualTo(lineNums[index]));
- Expect(_rdr.AtLineStart, EqualTo(starts[index]));
- ++index;
- }
-
- }
-
- bool SameContents(char[] b1, char[] b2, int count)
- {
- for (int i = 0; i < count; i++)
- if (b1[i] != b2[i])
- return false;
-
- return true;
- }
-
-
- [Test]
- [ExpectedException(typeof(IOException))]
- public void Double_unread_fails()
- {
- _rdr.Unread('a');
- _rdr.Unread('b');
- }
-
- [Test]
- public void Basic_unread_works()
- {
- int c1 = _rdr.Read();
- Expect(c1, EqualTo((int)'a'));
- Expect(_rdr.Position, EqualTo(1));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.AtLineStart, False);
-
- int c2 = _rdr.Read();
- Expect(c2, EqualTo((int)'b'));
- Expect(_rdr.Position, EqualTo(2));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.AtLineStart, False);
-
- _rdr.Unread('x');
- Expect(_rdr.Position, EqualTo(1));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.AtLineStart, False);
-
- int c3 = _rdr.Read();
- Expect(c3, EqualTo((int)'x'));
- Expect(_rdr.Position, EqualTo(2));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.AtLineStart, False);
-
- int c4 = _rdr.Read();
- Expect(c4, EqualTo((int)'c'));
- Expect(_rdr.Position, EqualTo(3));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.AtLineStart, False);
- }
-
- [Test]
- public void UnreadingNewlineWorks()
- {
- int c1 = _rdr.Read();
- Expect(c1, EqualTo((int)'a'));
- Expect(_rdr.Position, EqualTo(1));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.AtLineStart, False);
-
- int c2 = _rdr.Read();
- Expect(c2, EqualTo((int)'b'));
- Expect(_rdr.Position, EqualTo(2));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.AtLineStart, False);
-
- int c3 = _rdr.Read();
- Expect(c3, EqualTo((int)'c'));
- Expect(_rdr.Position, EqualTo(3));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.AtLineStart, False);
-
- int c4 = _rdr.Read();
- Expect(c4, EqualTo((int)'\n'));
- Expect(_rdr.Position, EqualTo(0));
- Expect(_rdr.LineNumber, EqualTo(2));
- Expect(_rdr.AtLineStart);
-
- _rdr.Unread(c4);
- Expect(_rdr.Position, EqualTo(3));
- Expect(_rdr.LineNumber, EqualTo(1));
- Expect(_rdr.AtLineStart, False);
-
- int c5 = _rdr.Read();
- Expect(c5, EqualTo((int)'\n'));
- Expect(_rdr.Position, EqualTo(0));
- Expect(_rdr.LineNumber, EqualTo(2));
- Expect(_rdr.AtLineStart);
-
- int c6 = _rdr.Read();
- Expect(c6, EqualTo((int)'d'));
- Expect(_rdr.Position, EqualTo(1));
- Expect(_rdr.LineNumber, EqualTo(2));
- Expect(_rdr.AtLineStart, False);
- }
- }
-}