/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * *************************************************************************************** */ package com.espertech.esper.example.stockticker; import com.espertech.esper.example.stockticker.eventbean.PriceLimit; import com.espertech.esper.example.stockticker.eventbean.StockTick; import junit.framework.TestCase; import java.util.List; public class TestStockTickerGenerator extends TestCase implements StockTickerRegressionConstants { public final static int NUM_STOCK_NAMES = 1000; public void testFlow() { StockTickerEventGenerator generator = new StockTickerEventGenerator(); PriceLimit[] limitBeans = generator.makeLimits("junit", NUM_STOCK_NAMES, PRICE_LIMIT_PCT_LOWER_LIMIT, PRICE_LIMIT_PCT_UPPER_LIMIT); assertTrue(limitBeans.length == NUM_STOCK_NAMES); assertTrue(limitBeans[0].getUserId().equals("junit")); for (int i = 0; i < limitBeans.length; i++) { assertTrue(limitBeans[i].getLimitPct() >= PRICE_LIMIT_PCT_LOWER_LIMIT); assertTrue(limitBeans[i].getLimitPct() <= PRICE_LIMIT_PCT_UPPER_LIMIT); } StockTick[] initialPrices = generator.makeInitialPriceStockTicks(limitBeans, PRICE_LOWER_LIMIT, PRICE_LOWER_LIMIT); assertTrue(initialPrices.length == NUM_STOCK_NAMES); for (int i = 0; i < initialPrices.length; i++) { assertTrue(initialPrices[i].getPrice() >= PRICE_LOWER_LIMIT); assertTrue(initialPrices[i].getPrice() <= PRICE_UPPER_LIMIT); } for (int i = 0; i < 100000; i++) { StockTick tick = generator.makeStockTick(limitBeans[0], initialPrices[0]); double initialPrice = initialPrices[0].getPrice(); double range = initialPrice * limitBeans[0].getLimitPct() / 100; assertTrue(tick.getPrice() > (initialPrice - range) - 1); assertTrue(tick.getPrice() < (initialPrice + range) + 1); } } public void testMakeStream() throws Exception { StockTickerEventGenerator generator = new StockTickerEventGenerator(); final int NUM_EVENTS = 1000; List stream = generator.makeEventStream(NUM_EVENTS, 1000, NUM_STOCK_NAMES, 25, 30, 46, 54, true); assertTrue(stream.size() == (NUM_STOCK_NAMES * 2 + NUM_EVENTS)); } }