public override bool Equals(System.Object other) { if (other == this) { return(true); } if (other is TermAttribute) { InitTermBuffer(); TermAttributeImpl o = ((TermAttributeImpl)other); o.InitTermBuffer(); if (termLength != o.termLength) { return(false); } for (int i = 0; i < termLength; i++) { if (termBuffer[i] != o.termBuffer[i]) { return(false); } } return(true); } return(false); }
public virtual void TestToString() { char[] b = new char[] { 'a', 'l', 'o', 'h', 'a' }; TermAttributeImpl t = new TermAttributeImpl(); t.SetTermBuffer(b, 0, 5); Assert.AreEqual("term=aloha", t.ToString()); t.SetTermBuffer("hi there"); Assert.AreEqual("term=hi there", t.ToString()); }
public override System.Object Clone() { TermAttributeImpl t = (TermAttributeImpl)base.Clone(); // Do a deep clone if (termBuffer != null) { t.termBuffer = new char[termBuffer.Length]; termBuffer.CopyTo(t.termBuffer, 0); } return(t); }
public virtual void TestClone() { TermAttributeImpl t = new TermAttributeImpl(); char[] content = "hello".ToCharArray(); t.SetTermBuffer(content, 0, 5); char[] buf = t.TermBuffer(); TermAttributeImpl copy = (TermAttributeImpl)TestSimpleAttributeImpls.AssertCloneIsEqual(t); Assert.AreEqual(t.Term(), copy.Term()); Assert.AreNotSame(buf, copy.TermBuffer()); }
public virtual void TestResize() { TermAttributeImpl t = new TermAttributeImpl(); char[] content = "hello".ToCharArray(); t.SetTermBuffer(content, 0, content.Length); for (int i = 0; i < 2000; i++) { t.ResizeTermBuffer(i); Assert.IsTrue(i <= t.TermBuffer().Length); Assert.AreEqual("hello", t.Term()); } }
public virtual void TestEquals() { TermAttributeImpl t1a = new TermAttributeImpl(); char[] content1a = "hello".ToCharArray(); t1a.SetTermBuffer(content1a, 0, 5); TermAttributeImpl t1b = new TermAttributeImpl(); char[] content1b = "hello".ToCharArray(); t1b.SetTermBuffer(content1b, 0, 5); TermAttributeImpl t2 = new TermAttributeImpl(); char[] content2 = "hello2".ToCharArray(); t2.SetTermBuffer(content2, 0, 6); Assert.IsTrue(t1a.Equals(t1b)); Assert.IsFalse(t1a.Equals(t2)); Assert.IsFalse(t2.Equals(t1b)); }
public virtual void TestMixedStringArray() { TermAttributeImpl t = new TermAttributeImpl(); t.SetTermBuffer("hello"); Assert.AreEqual(t.TermLength(), 5); Assert.AreEqual(t.Term(), "hello"); t.SetTermBuffer("hello2"); Assert.AreEqual(t.TermLength(), 6); Assert.AreEqual(t.Term(), "hello2"); t.SetTermBuffer("hello3".ToCharArray(), 0, 6); Assert.AreEqual(t.Term(), "hello3"); // Make sure if we get the buffer and change a character // that term() reflects the change char[] buffer = t.TermBuffer(); buffer[1] = 'o'; Assert.AreEqual(t.Term(), "hollo3"); }
public virtual void TestGrow() { TermAttributeImpl t = new TermAttributeImpl(); StringBuilder buf = new System.Text.StringBuilder("ab"); for (int i = 0; i < 20; i++) { char[] content = buf.ToString().ToCharArray(); t.SetTermBuffer(content, 0, content.Length); Assert.AreEqual(buf.Length, t.TermLength()); Assert.AreEqual(buf.ToString(), t.Term()); buf.Append(buf.ToString()); } Assert.AreEqual(1048576, t.TermLength()); Assert.AreEqual(1179654, t.TermBuffer().Length); // now as a string, first variant t = new TermAttributeImpl(); buf = new System.Text.StringBuilder("ab"); for (int i = 0; i < 20; i++) { System.String content = buf.ToString(); t.SetTermBuffer(content, 0, content.Length); Assert.AreEqual(content.Length, t.TermLength()); Assert.AreEqual(content, t.Term()); buf.Append(content); } Assert.AreEqual(1048576, t.TermLength()); Assert.AreEqual(1179654, t.TermBuffer().Length); // now as a string, second variant t = new TermAttributeImpl(); buf = new System.Text.StringBuilder("ab"); for (int i = 0; i < 20; i++) { System.String content = buf.ToString(); t.SetTermBuffer(content); Assert.AreEqual(content.Length, t.TermLength()); Assert.AreEqual(content, t.Term()); buf.Append(content); } Assert.AreEqual(1048576, t.TermLength()); Assert.AreEqual(1179654, t.TermBuffer().Length); // Test for slow growth to a long term t = new TermAttributeImpl(); buf = new System.Text.StringBuilder("a"); for (int i = 0; i < 20000; i++) { System.String content = buf.ToString(); t.SetTermBuffer(content); Assert.AreEqual(content.Length, t.TermLength()); Assert.AreEqual(content, t.Term()); buf.Append("a"); } Assert.AreEqual(20000, t.TermLength()); Assert.AreEqual(20167, t.TermBuffer().Length); // Test for slow growth to a long term t = new TermAttributeImpl(); buf = new System.Text.StringBuilder("a"); for (int i = 0; i < 20000; i++) { System.String content = buf.ToString(); t.SetTermBuffer(content); Assert.AreEqual(content.Length, t.TermLength()); Assert.AreEqual(content, t.Term()); buf.Append("a"); } Assert.AreEqual(20000, t.TermLength()); Assert.AreEqual(20167, t.TermBuffer().Length); }
public virtual void TestCopyTo() { TermAttributeImpl t = new TermAttributeImpl(); TermAttributeImpl copy = (TermAttributeImpl) TestSimpleAttributeImpls.AssertCopyIsEqual(t); Assert.AreEqual("", t.Term()); Assert.AreEqual("", copy.Term()); t = new TermAttributeImpl(); char[] content = "hello".ToCharArray(); t.SetTermBuffer(content, 0, 5); char[] buf = t.TermBuffer(); copy = (TermAttributeImpl) TestSimpleAttributeImpls.AssertCopyIsEqual(t); Assert.AreEqual(t.Term(), copy.Term()); Assert.AreNotSame(buf, copy.TermBuffer()); }
public virtual void TestToString() { char[] b = new char[]{'a', 'l', 'o', 'h', 'a'}; TermAttributeImpl t = new TermAttributeImpl(); t.SetTermBuffer(b, 0, 5); Assert.AreEqual("term=aloha", t.ToString()); t.SetTermBuffer("hi there"); Assert.AreEqual("term=hi there", t.ToString()); }
public virtual void TestGrow() { TermAttributeImpl t = new TermAttributeImpl(); System.Text.StringBuilder buf = new System.Text.StringBuilder("ab"); for (int i = 0; i < 20; i++) { char[] content = buf.ToString().ToCharArray(); t.SetTermBuffer(content, 0, content.Length); Assert.AreEqual(buf.Length, t.TermLength()); Assert.AreEqual(buf.ToString(), t.Term()); buf.Append(buf.ToString()); } Assert.AreEqual(1048576, t.TermLength()); Assert.AreEqual(1179654, t.TermBuffer().Length); // now as a string, first variant t = new TermAttributeImpl(); buf = new System.Text.StringBuilder("ab"); for (int i = 0; i < 20; i++) { System.String content = buf.ToString(); t.SetTermBuffer(content, 0, content.Length); Assert.AreEqual(content.Length, t.TermLength()); Assert.AreEqual(content, t.Term()); buf.Append(content); } Assert.AreEqual(1048576, t.TermLength()); Assert.AreEqual(1179654, t.TermBuffer().Length); // now as a string, second variant t = new TermAttributeImpl(); buf = new System.Text.StringBuilder("ab"); for (int i = 0; i < 20; i++) { System.String content = buf.ToString(); t.SetTermBuffer(content); Assert.AreEqual(content.Length, t.TermLength()); Assert.AreEqual(content, t.Term()); buf.Append(content); } Assert.AreEqual(1048576, t.TermLength()); Assert.AreEqual(1179654, t.TermBuffer().Length); // Test for slow growth to a long term t = new TermAttributeImpl(); buf = new System.Text.StringBuilder("a"); for (int i = 0; i < 20000; i++) { System.String content = buf.ToString(); t.SetTermBuffer(content); Assert.AreEqual(content.Length, t.TermLength()); Assert.AreEqual(content, t.Term()); buf.Append("a"); } Assert.AreEqual(20000, t.TermLength()); Assert.AreEqual(20167, t.TermBuffer().Length); // Test for slow growth to a long term t = new TermAttributeImpl(); buf = new System.Text.StringBuilder("a"); for (int i = 0; i < 20000; i++) { System.String content = buf.ToString(); t.SetTermBuffer(content); Assert.AreEqual(content.Length, t.TermLength()); Assert.AreEqual(content, t.Term()); buf.Append("a"); } Assert.AreEqual(20000, t.TermLength()); Assert.AreEqual(20167, t.TermBuffer().Length); }