⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 segmentedtimelinetests.java

📁 用于制作报表的中间件控件,纯java编写,还附带有数据库操作的源代码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                e = ((NumberFormat) fmt).parse(exceptionString[i]).longValue();            }            else {                e = timeline.getTime(((SimpleDateFormat) fmt)                        .parse(exceptionString[i]));            }            // only add an exception if it is currently an included segment            SegmentedTimeline.Segment segment = timeline.getSegment(e);            if (segment.inIncludeSegments()) {                timeline.addException(e);                exceptionList.add(new Long(e));                assertEquals(exceptionList.size(),                         timeline.getExceptionSegments().size());                assertTrue(segment.inExceptionSegments());            }        }        // make array of exceptions        long[] exception = new long[exceptionList.size()];        int i = 0;        for (Iterator iter = exceptionList.iterator(); iter.hasNext();) {            Long l = (Long) iter.next();            exception[i++] = l.longValue();        }        return (exception);    }    /**     * Adds an array of exceptions relative to the base timeline.     *     * @param timeline The timeline where the exceptions will be stored     * @param exceptionString The exceptions to load     * @param fmt The date formatter to use to parse each exceptions[i] value     * @throws ParseException If there is any exception parsing each      *                        exceptions[i] value.     */    private void fillInBaseTimelineExceptions(SegmentedTimeline timeline,                                             String[] exceptionString,                                             Format fmt) throws ParseException {        SegmentedTimeline baseTimeline = timeline.getBaseTimeline();        for (int i = 0; i < exceptionString.length; i++) {            long e;            if (fmt instanceof NumberFormat) {                e = ((NumberFormat) fmt).parse(exceptionString[i]).longValue();            }            else {                e = timeline.getTime(((SimpleDateFormat) fmt)                        .parse(exceptionString[i]));            }            timeline.addBaseTimelineException(e);            // verify all timeline segments included in the             // baseTimeline.segment are now exceptions            SegmentedTimeline.Segment segment1 = baseTimeline.getSegment(e);            for (SegmentedTimeline.Segment segment2                     = timeline.getSegment(segment1.getSegmentStart());                 segment2.getSegmentStart() <= segment1.getSegmentEnd();                 segment2.inc()) {                if (!segment2.inExcludeSegments()) {                    assertTrue(segment2.inExceptionSegments());                }            }        }    }    /**     * Adds new exceptions to a timeline. The exceptions are the excluded      * segments from its base timeline.     *     * @param timeline  the timeline.     * @param from  the start.     * @param to  the end.     */    private void fillInBaseTimelineExclusionsAsExceptions(            SegmentedTimeline timeline, long from, long to) {        // add the base timeline exclusions as timeline's esceptions        timeline.addBaseTimelineExclusions(from, to);        // validate base timeline exclusions added as timeline's esceptions        for (SegmentedTimeline.Segment segment1 = timeline.getBaseTimeline()                .getSegment(from);             segment1.getSegmentStart() <= to;             segment1.inc()) {            if (segment1.inExcludeSegments()) {                // verify all timeline segments included in the                 // baseTimeline.segment are now exceptions                for (SegmentedTimeline.Segment segment2 = timeline.getSegment(                        segment1.getSegmentStart());                     segment2.getSegmentStart() <= segment1.getSegmentEnd();                    segment2.inc()) {                    if (!segment2.inExcludeSegments()) {                        assertTrue(segment2.inExceptionSegments());                    }                }            }        }    }    /**     * Confirm that cloning works.     */    public void testCloning() {        SegmentedTimeline l1 = new SegmentedTimeline(1000, 5, 2);        SegmentedTimeline l2 = null;        try {            l2 = (SegmentedTimeline) l1.clone();        }        catch (CloneNotSupportedException e) {            e.printStackTrace();        }        assertTrue(l1 != l2);        assertTrue(l1.getClass() == l2.getClass());        assertTrue(l1.equals(l2));    }    /**     * Confirm that the equals method can distinguish all the required fields.     */    public void testEquals() {                SegmentedTimeline l1 = new SegmentedTimeline(1000, 5, 2);        SegmentedTimeline l2 = new SegmentedTimeline(1000, 5, 2);        assertTrue(l1.equals(l2));                l1 = new SegmentedTimeline(1000, 5, 2);        l2 = new SegmentedTimeline(1001, 5, 2);        assertFalse(l1.equals(l2));                l1 = new SegmentedTimeline(1000, 5, 2);        l2 = new SegmentedTimeline(1000, 4, 2);        assertFalse(l1.equals(l2));                l1 = new SegmentedTimeline(1000, 5, 2);        l2 = new SegmentedTimeline(1000, 5, 1);        assertFalse(l1.equals(l2));                l1 = new SegmentedTimeline(1000, 5, 2);        l2 = new SegmentedTimeline(1000, 5, 2);                // start time...        l1.setStartTime(1234L);        assertFalse(l1.equals(l2));        l2.setStartTime(1234L);        assertTrue(l1.equals(l2));    }        /**     * Two objects that are equal are required to return the same hashCode.      */    public void testHashCode() {        SegmentedTimeline l1 = new SegmentedTimeline(1000, 5, 2);        SegmentedTimeline l2 = new SegmentedTimeline(1000, 5, 2);        assertTrue(l1.equals(l2));        int h1 = l1.hashCode();        int h2 = l2.hashCode();        assertEquals(h1, h2);    }            /**     * Serialize an instance, restore it, and check for equality.     */    public void testSerialization2() {        SegmentedTimeline l1 = new SegmentedTimeline(1000, 5, 2);        SegmentedTimeline l2 = null;        try {            ByteArrayOutputStream buffer = new ByteArrayOutputStream();            ObjectOutput out = new ObjectOutputStream(buffer);            out.writeObject(l1);            out.close();            ObjectInput in = new ObjectInputStream(                    new ByteArrayInputStream(buffer.toByteArray()));            l2 = (SegmentedTimeline) in.readObject();            in.close();        }        catch (Exception e) {            e.printStackTrace();        }        boolean b = l1.equals(l2);        assertTrue(b);    }    //////////////////////////////////////////////////////////////////////////    // utility methods    //////////////////////////////////////////////////////////////////////////    /**     * Tests a basic segmented timeline.     */    public void testBasicSegmentedTimeline() {        SegmentedTimeline stl = new SegmentedTimeline(10, 2, 3);        stl.setStartTime(946684800000L);  // 1-Jan-2000        assertFalse(stl.containsDomainValue(946684799999L));        assertTrue(stl.containsDomainValue(946684800000L));        assertTrue(stl.containsDomainValue(946684800019L));        assertFalse(stl.containsDomainValue(946684800020L));        assertFalse(stl.containsDomainValue(946684800049L));        assertTrue(stl.containsDomainValue(946684800050L));        assertTrue(stl.containsDomainValue(946684800069L));        assertFalse(stl.containsDomainValue(946684800070L));        assertFalse(stl.containsDomainValue(946684800099L));        assertTrue(stl.containsDomainValue(946684800100L));                assertEquals(0, stl.toTimelineValue(946684800000L));        assertEquals(19, stl.toTimelineValue(946684800019L));        assertEquals(20, stl.toTimelineValue(946684800020L));        assertEquals(20, stl.toTimelineValue(946684800049L));        assertEquals(20, stl.toTimelineValue(946684800050L));        assertEquals(39, stl.toTimelineValue(946684800069L));        assertEquals(40, stl.toTimelineValue(946684800070L));        assertEquals(40, stl.toTimelineValue(946684800099L));        assertEquals(40, stl.toTimelineValue(946684800100L));                assertEquals(946684800000L, stl.toMillisecond(0));        assertEquals(946684800019L, stl.toMillisecond(19));        assertEquals(946684800050L, stl.toMillisecond(20));        assertEquals(946684800069L, stl.toMillisecond(39));        assertEquals(946684800100L, stl.toMillisecond(40));            }        /**     * Tests a basic time line with one exception.     */    public void testSegmentedTimelineWithException1() {        SegmentedTimeline stl = new SegmentedTimeline(10, 2, 3);        stl.setStartTime(946684800000L);  // 1-Jan-2000        stl.addException(946684800050L);                assertFalse(stl.containsDomainValue(946684799999L));        assertTrue(stl.containsDomainValue(946684800000L));        assertTrue(stl.containsDomainValue(946684800019L));        assertFalse(stl.containsDomainValue(946684800020L));        assertFalse(stl.containsDomainValue(946684800049L));        assertFalse(stl.containsDomainValue(946684800050L));        assertFalse(stl.containsDomainValue(946684800059L));        assertTrue(stl.containsDomainValue(946684800060L));        assertTrue(stl.containsDomainValue(946684800069L));        assertFalse(stl.containsDomainValue(946684800070L));        assertFalse(stl.containsDomainValue(946684800099L));        assertTrue(stl.containsDomainValue(946684800100L));        //long v = stl.toTimelineValue(946684800020L);        assertEquals(0, stl.toTimelineValue(946684800000L));        assertEquals(19, stl.toTimelineValue(946684800019L));        assertEquals(20, stl.toTimelineValue(946684800020L));        assertEquals(20, stl.toTimelineValue(946684800049L));        assertEquals(20, stl.toTimelineValue(946684800050L));        assertEquals(29, stl.toTimelineValue(946684800069L));        assertEquals(30, stl.toTimelineValue(946684800070L));        assertEquals(30, stl.toTimelineValue(946684800099L));        assertEquals(30, stl.toTimelineValue(946684800100L));        assertEquals(946684800000L, stl.toMillisecond(0));        assertEquals(946684800019L, stl.toMillisecond(19));        assertEquals(946684800060L, stl.toMillisecond(20));        assertEquals(946684800069L, stl.toMillisecond(29));        assertEquals(946684800100L, stl.toMillisecond(30));    }        //////////////////////////////////////////////////////////////////////////    // main method only for debug    //////////////////////////////////////////////////////////////////////////    /**     * Only use to debug JUnit suite.     *      * @param args  ignored.     *      * @throws Exception if there is some problem.     */    public static void main(String[] args) throws Exception {        SegmentedTimelineTests test = new SegmentedTimelineTests("Test");        test.setUp();        test.testMondayThoughFridayExceptionSegments();        test.tearDown();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -