// Copyright 2006 The Closure Library Authors. All Rights Reserved. // // 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. goog.provide('goog.structs.CircularBufferTest'); goog.setTestOnly('goog.structs.CircularBufferTest'); goog.require('goog.structs.CircularBuffer'); goog.require('goog.testing.jsunit'); function testCircularBuffer() { var buff = new goog.structs.CircularBuffer(2); assertUndefined(buff.add('first')); assertEquals(1, buff.getCount()); assertEquals('first', buff.get(0)); assertEquals('first', buff.getLast()); assertUndefined(buff.add('second')); assertEquals(2, buff.getCount()); assertEquals('first', buff.get(0)); assertEquals('second', buff.get(1)); assertEquals('second', buff.getLast()); assertEquals('first', buff.add('third')); assertEquals(2, buff.getCount()); assertEquals('second', buff.get(0)); assertEquals('third', buff.get(1)); assertEquals('third', buff.getLast()); } function testIsEmpty() { var buff = new goog.structs.CircularBuffer(2); assertTrue('initially empty', buff.isEmpty()); assertUndefined(buff.add('first')); assertFalse('not empty after add empty', buff.isEmpty()); } function testClear() { var buff = new goog.structs.CircularBuffer(2); assertUndefined(buff.add('first')); buff.clear(); assertTrue('should be empty after clear', buff.isEmpty()); } function testGetValues() { var buff = new goog.structs.CircularBuffer(2); assertUndefined(buff.add('first')); assertUndefined(buff.add('second')); assertArrayEquals(['first', 'second'], buff.getValues()); } function testGetNewestValues() { var buff = new goog.structs.CircularBuffer(5); assertUndefined(buff.add('first')); assertUndefined(buff.add('second')); assertUndefined(buff.add('third')); assertUndefined(buff.add('fourth')); assertUndefined(buff.add('fifth')); assertArrayEquals(['fourth', 'fifth'], buff.getNewestValues(2)); } function testGetKeys() { var buff = new goog.structs.CircularBuffer(2); assertUndefined(buff.add('first')); assertUndefined(buff.add('second')); assertArrayEquals([0, 1], buff.getKeys()); } function testContainsValue() { var buff = new goog.structs.CircularBuffer(2); assertUndefined(buff.add('first')); assertUndefined(buff.add('second')); assertTrue(buff.containsValue('first')); assertTrue(buff.containsValue('second')); assertFalse(buff.containsValue('third')); } function testContainsKey() { var buff = new goog.structs.CircularBuffer(3); assertUndefined(buff.add('first')); assertUndefined(buff.add('second')); assertUndefined(buff.add('third')); assertTrue(buff.containsKey(0)); assertTrue(buff.containsKey('0')); assertTrue(buff.containsKey(1)); assertTrue(buff.containsKey('1')); assertTrue(buff.containsKey(2)); assertTrue(buff.containsKey('2')); assertFalse(buff.containsKey(3)); assertFalse(buff.containsKey('3')); }