/******************************************************************************* * Copyright 2014 Analog Devices, Inc. * * 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.analog.lyric.dimple.test.model; import static org.junit.Assert.*; import org.junit.Test; import com.analog.lyric.dimple.model.domains.ComplexDomain; import com.analog.lyric.dimple.model.domains.DiscreteDomain; import com.analog.lyric.dimple.model.domains.RealDomain; import com.analog.lyric.dimple.model.domains.RealJointDomain; import com.analog.lyric.dimple.model.repeated.BitStream; import com.analog.lyric.dimple.model.repeated.ComplexStream; import com.analog.lyric.dimple.model.repeated.DiscreteStream; import com.analog.lyric.dimple.model.repeated.RealJointStream; import com.analog.lyric.dimple.model.repeated.RealStream; import com.analog.lyric.dimple.test.DimpleTestBase; public class TestStreamDomains extends DimpleTestBase { @SuppressWarnings("null") @Test public void test() { BitStream b = new BitStream(); assertArrayEquals(new Object[] {0, 1}, b.getDomain().asDiscrete().getElements()); Object[] dList = new Object[] {0, 1, 2, 4}; DiscreteDomain dDomain = DiscreteDomain.create(dList); DiscreteStream d = new DiscreteStream(dList); DiscreteStream dd = new DiscreteStream(dDomain); assertArrayEquals(dList, d.getDomain().asDiscrete().getElements()); assertArrayEquals(dList, dd.getDomain().asDiscrete().getElements()); double L = -7; double U = 12.2; RealDomain rInfDomain = RealDomain.create(); RealDomain rDomain = RealDomain.create(L, U); RealStream r = new RealStream(); RealStream ri = new RealStream(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY); RealStream rid = new RealStream(rInfDomain); RealStream rr = new RealStream(L, U); RealStream rrd = new RealStream(rDomain); assertEquals(r.getDomain().getLowerBound(), Double.NEGATIVE_INFINITY, 0); assertEquals(r.getDomain().getUpperBound(), Double.POSITIVE_INFINITY, 0); assertEquals(ri.getDomain().getLowerBound(), Double.NEGATIVE_INFINITY, 0); assertEquals(ri.getDomain().getUpperBound(), Double.POSITIVE_INFINITY, 0); assertEquals(rid.getDomain().getLowerBound(), Double.NEGATIVE_INFINITY, 0); assertEquals(rid.getDomain().getUpperBound(), Double.POSITIVE_INFINITY, 0); assertEquals(rr.getDomain().getLowerBound(), L, 0); assertEquals(rr.getDomain().getUpperBound(), U, 0); assertEquals(rrd.getDomain().getLowerBound(), L, 0); assertEquals(rrd.getDomain().getUpperBound(), U, 0); double L2 = 7.2; double U2 = 27; RealDomain rDomain2 = RealDomain.create(L2, U2); ComplexDomain cDomain = ComplexDomain.create(rDomain, rDomain2); ComplexStream c = new ComplexStream(); ComplexStream cd = new ComplexStream(cDomain); assertEquals(c.getDomain().getDimensions(), 2); assertEquals(cd.getDomain().getDimensions(), 2); assertEquals(c.getDomain().getRealDomain(0).getLowerBound(), Double.NEGATIVE_INFINITY, 0); assertEquals(c.getDomain().getRealDomain(0).getUpperBound(), Double.POSITIVE_INFINITY, 0); assertEquals(c.getDomain().getRealDomain(1).getLowerBound(), Double.NEGATIVE_INFINITY, 0); assertEquals(c.getDomain().getRealDomain(1).getUpperBound(), Double.POSITIVE_INFINITY, 0); assertEquals(cd.getDomain().getRealDomain(0).getLowerBound(), L, 0); assertEquals(cd.getDomain().getRealDomain(0).getUpperBound(), U, 0); assertEquals(cd.getDomain().getRealDomain(1).getLowerBound(), L2, 0); assertEquals(cd.getDomain().getRealDomain(1).getUpperBound(), U2, 0); double L3 = Double.NEGATIVE_INFINITY; double U3 = 0; RealDomain rDomain3 = RealDomain.create(L3, U3); RealJointDomain jDomain = RealJointDomain.create(rDomain, rDomain2, rDomain3); RealJointStream j = new RealJointStream(3); RealJointStream jd = new RealJointStream(jDomain); assertEquals(j.getDomain().getDimensions(), 3); assertEquals(jd.getDomain().getDimensions(), 3); assertEquals(j.getDomain().getRealDomain(0).getLowerBound(), Double.NEGATIVE_INFINITY, 0); assertEquals(j.getDomain().getRealDomain(0).getUpperBound(), Double.POSITIVE_INFINITY, 0); assertEquals(j.getDomain().getRealDomain(1).getLowerBound(), Double.NEGATIVE_INFINITY, 0); assertEquals(j.getDomain().getRealDomain(1).getUpperBound(), Double.POSITIVE_INFINITY, 0); assertEquals(j.getDomain().getRealDomain(2).getLowerBound(), Double.NEGATIVE_INFINITY, 0); assertEquals(j.getDomain().getRealDomain(2).getUpperBound(), Double.POSITIVE_INFINITY, 0); assertEquals(jd.getDomain().getRealDomain(0).getLowerBound(), L, 0); assertEquals(jd.getDomain().getRealDomain(0).getUpperBound(), U, 0); assertEquals(jd.getDomain().getRealDomain(1).getLowerBound(), L2, 0); assertEquals(jd.getDomain().getRealDomain(1).getUpperBound(), U2, 0); assertEquals(jd.getDomain().getRealDomain(2).getLowerBound(), L3, 0); assertEquals(jd.getDomain().getRealDomain(2).getUpperBound(), U3, 0); } }