/* * 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.cscw2013; import etc.aloe.data.ExampleSet; import etc.aloe.data.FeatureSpecification; import etc.aloe.data.Message; import etc.aloe.data.Segment; import etc.aloe.data.SegmentSet; import java.util.Arrays; 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.filters.Filter; /** * * @author Michael Brooks <mjbrooks@uw.edu> */ public class FeatureGenerationImplTest { private List<String> termList; private SegmentSet segments; private ExampleSet basicExamples; public FeatureGenerationImplTest() { } @BeforeClass public static void setUpClass() { } @AfterClass public static void tearDownClass() { } @Before public void setUp() { termList = Arrays.asList(new String[]{ ":)", ":-)", ":-(", ":>", ";)", ";-)" }); 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); Segment seg2 = new Segment(); seg2.add(new Message(4, new Date(), "Bob", "once")); seg2.add(new Message(5, new Date(), "Alice", "upon")); seg2.setTrueLabel(Boolean.FALSE); segments.add(seg2); basicExamples = segments.getBasicExamples(); } @After public void tearDown() { } /** * Test of generateFeatures method, of class FeatureGenerationImpl. */ @Test public void testGenerateFeatures() { System.out.println("generateFeatures"); FeatureGenerationImpl generation = new FeatureGenerationImpl(termList); FeatureSpecification spec = generation.generateFeatures(basicExamples); assertNotNull(spec); assertTrue(spec.getFilters().size() > 0); for (Filter filter : spec.getFilters()) { assertTrue(filter.isOutputFormatDefined()); assertTrue(filter.isFirstBatchDone()); try { basicExamples.setInstances(Filter.useFilter(basicExamples.getInstances(), filter)); } catch (Exception e) { assertTrue(e.getMessage(), false); } } } }