blob: 42453b65f5548ced8d664673cbe75b5fe583dc23 [file] [log] [blame]
/*
* Copyright 2012 AndroidPlot.com
*
* 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.
*/
package com.androidplot.ui;
import android.graphics.RectF;
import com.androidplot.mock.MockRectF;
import com.androidplot.ui.FixedTableModel;
import com.androidplot.ui.TableOrder;
import mockit.*;
import org.junit.Before;
import org.junit.Test;
import java.util.Iterator;
import static junit.framework.Assert.*;
public class FixedTableModelTest {
@Before
public void setUp() throws Exception {
Mockit.setUpMocks(MockRectF.class);
}
@Test
public void testConstructor() throws Exception {
FixedTableModel model = new FixedTableModel(100, 100, null);
// TODO
}
@Test
public void testIterator() throws Exception {
FixedTableModel model = new FixedTableModel(100, 100, TableOrder.COLUMN_MAJOR);
RectF tableRect = new RectF(0, 0, 1000, 2000);
Iterator<RectF> it = model.getIterator(tableRect, 5);
assertTrue(it.hasNext());
RectF cellRect = it.next();
assertTrue(it.hasNext());
cellRect = it.next();
assertTrue(it.hasNext());
cellRect = it.next();
assertTrue(it.hasNext());
cellRect = it.next();
assertTrue(it.hasNext());
cellRect = it.next();
assertFalse(it.hasNext());
try {
cellRect = it.next();
fail("Expected IndexOutOfBoundsException");
} catch(IndexOutOfBoundsException ex) {
// this was expected
}
}
@Test
public void testColumnMajor() throws Exception {
FixedTableModel model = new FixedTableModel(300, 500, TableOrder.COLUMN_MAJOR);
RectF tableRect = new RectF(0, 0, 1000, 2000);
// test the numElement limit:
Iterator<RectF> it = model.getIterator(tableRect, 5);
assertTrue(it.hasNext());
RectF cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(0f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(300f, cellRect.left);
assertEquals(0f, cellRect.top);
assertEquals(600f, cellRect.right);
assertEquals(500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(600f, cellRect.left);
assertEquals(0f, cellRect.top);
assertEquals(900f, cellRect.right);
assertEquals(500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(500f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(1000f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(300f, cellRect.left);
assertEquals(500f, cellRect.top);
assertEquals(600f, cellRect.right);
assertEquals(1000f, cellRect.bottom);
assertFalse(it.hasNext());
// test border limit:
it = model.getIterator(tableRect, 25);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(0f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(300f, cellRect.left);
assertEquals(0f, cellRect.top);
assertEquals(600f, cellRect.right);
assertEquals(500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(600f, cellRect.left);
assertEquals(0f, cellRect.top);
assertEquals(900f, cellRect.right);
assertEquals(500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(500f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(1000f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(300f, cellRect.left);
assertEquals(500f, cellRect.top);
assertEquals(600f, cellRect.right);
assertEquals(1000f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(600f, cellRect.left);
assertEquals(500f, cellRect.top);
assertEquals(900f, cellRect.right);
assertEquals(1000f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(1000f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(1500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(300f, cellRect.left);
assertEquals(1000f, cellRect.top);
assertEquals(600f, cellRect.right);
assertEquals(1500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(600f, cellRect.left);
assertEquals(1000f, cellRect.top);
assertEquals(900f, cellRect.right);
assertEquals(1500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(1500f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(2000f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(300f, cellRect.left);
assertEquals(1500f, cellRect.top);
assertEquals(600f, cellRect.right);
assertEquals(2000f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(600f, cellRect.left);
assertEquals(1500f, cellRect.top);
assertEquals(900f, cellRect.right);
assertEquals(2000f, cellRect.bottom);
//we've reached the limit
assertFalse(it.hasNext());
}
@Test
public void testRowMajor() throws Exception {
FixedTableModel model = new FixedTableModel(300, 500, TableOrder.ROW_MAJOR);
RectF tableRect = new RectF(0, 0, 1000, 2000);
// test the numElement limit:
Iterator<RectF> it = model.getIterator(tableRect, 5);
assertTrue(it.hasNext());
RectF cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(0f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(500f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(1000f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(1000f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(1500f, cellRect.bottom);
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(0f, cellRect.left);
assertEquals(1500f, cellRect.top);
assertEquals(300f, cellRect.right);
assertEquals(2000f, cellRect.bottom);
// next column over
assertTrue(it.hasNext());
cellRect = it.next();
assertEquals(300f, cellRect.left);
assertEquals(0f, cellRect.top);
assertEquals(600f, cellRect.right);
assertEquals(500f, cellRect.bottom);
}
}