/* * This file is part of ALOE. * * ALOE is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * ALOE is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with ALOE. If not, see <http://www.gnu.org/licenses/>. * * Copyright (c) 2012 SCCL, University of Washington (http://depts.washington.edu/sccl) */ package etc.aloe.data; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; import weka.core.Instances; /** * * @author Michael Brooks <mjbrooks@uw.edu> */ public class SegmentSetTest { public SegmentSetTest() { } @BeforeClass public static void setUpClass() { } @AfterClass public static void tearDownClass() { } @Before public void setUp() { } @After public void tearDown() { } /** * Test of add method, of class SegmentSet. */ @Test public void testAdd() { System.out.println("add"); Segment segment = new Segment(); SegmentSet instance = new SegmentSet(); instance.add(segment); assertEquals(segment, instance.get(0)); } /** * Test of size method, of class SegmentSet. */ @Test public void testSize() { System.out.println("size"); Segment segment = new Segment(); SegmentSet instance = new SegmentSet(); assertEquals(0, instance.size()); instance.add(segment); assertEquals(1, instance.size()); } /** * Test of getSegments method, of class SegmentSet. */ @Test public void testGetSegments() { System.out.println("getSegments"); Segment segment = new Segment(); SegmentSet instance = new SegmentSet(); instance.add(segment); List result = instance.getSegments(); assertEquals(1, result.size()); assertEquals(segment, result.get(0)); } /** * Test of setSegments method, of class SegmentSet. */ @Test public void testSetSegments() { System.out.println("setSegments"); List<Segment> segments = new ArrayList<Segment>(); segments.add(new Segment()); SegmentSet instance = new SegmentSet(); instance.setSegments(segments); assertEquals(segments, instance.getSegments()); } /** * Test ofgetBasicExamples method, of class SegmentSet. */ @Test public void testGetBasicExamples() { System.out.println("getBasicExamples"); SegmentSet segments = new SegmentSet(); Segment seg0 = new Segment(); seg0.add(new Message(0, new Date(), "Alice", "it's")); seg0.add(new Message(1, new Date(), "Bob", "cow")); seg0.add(new Message(2, new Date(), "Alice", "time")); seg0.setTrueLabel(Boolean.TRUE); segments.add(seg0); Segment seg1 = new Segment(); seg1.add(new Message(3, new Date(), "Bob", "noooooooo")); seg1.setTrueLabel(Boolean.FALSE); segments.add(seg1); ExampleSet examples = segments.getBasicExamples(); assertEquals(segments.size(), examples.size()); Instances instances = examples.getInstances(); assertEquals(ExampleSet.ID_ATTR_NAME, instances.attribute(0).name()); assertEquals(ExampleSet.MESSAGE_ATTR_NAME, instances.attribute(1).name()); assertEquals(ExampleSet.LABEL_ATTR_NAME, instances.classAttribute().name()); assertEquals(seg0.getId(), instances.get(0).value(0), 0); assertEquals(seg0.concatMessages(), instances.get(0).stringValue(1)); assertEquals(seg0.getTrueLabel(), examples.getClassLabel(instances.get(0).value(instances.classAttribute()))); assertEquals(seg1.getId(), instances.get(1).value(0), 0); assertEquals(seg1.concatMessages(), instances.get(1).stringValue(1)); assertEquals(seg1.getTrueLabel(), examples.getClassLabel(instances.get(1).value(instances.classAttribute()))); } /** * Test of get method, of class SegmentSet. */ @Test public void testGet() { System.out.println("get"); SegmentSet instance = new SegmentSet(); Segment seg0 = new Segment(); Segment seg1 = new Segment(); instance.add(seg0); instance.add(seg1); assertEquals(seg0, instance.get(0)); assertEquals(seg1, instance.get(1)); try { instance.get(2); assertTrue(false); } catch (IndexOutOfBoundsException e) { assertTrue(true); } } /** * Test of onlyLabeled method, of class SegmentSet. */ @Test public void testOnlyLabeled() { System.out.println("onlyLabeled"); SegmentSet segments = new SegmentSet(); Segment seg0 = new Segment(true, null); Segment seg1 = new Segment(null, null); Segment seg2 = new Segment(false, null); segments.add(seg0); segments.add(seg1); segments.add(seg2); SegmentSet result = segments.onlyLabeled(); assertEquals(2, result.size()); assertEquals(seg0, result.get(0)); assertEquals(seg2, result.get(1)); } /** * Test of getCountWithTrueLabel method, of class SegmentSet. */ @Test public void testGetCountWithTrueLabel() { System.out.println("getCountWithTrueLabel"); SegmentSet segments = new SegmentSet(); segments.add(new Segment(true, null)); segments.add(new Segment(true, null)); segments.add(new Segment(false, null)); segments.add(new Segment(false, null)); segments.add(new Segment(false, null)); segments.add(new Segment(null, null)); assertEquals(2, segments.getCountWithTrueLabel(true)); assertEquals(3, segments.getCountWithTrueLabel(false)); assertEquals(1, segments.getCountWithTrueLabel(null)); } }