List of usage examples for org.apache.commons.math3.fraction BigFraction BigFraction
public BigFraction(final long num)
Create a BigFraction equivalent to the passed long, ie "num / 1".
From source file:com.netflix.imfutility.itunes.asset.ChapterAssetProcessorTest.java
@Test public void testCorrectChapter() throws Exception { ChapterAssetProcessor processor = new ChapterAssetProcessor(metadataXmlProvider, TemplateParameterContextCreator.getWorkingDir()); processor.setInputChapterItem(ChaptersXmlSampleBuilder.buildInputChapter()) .setAspectRatio(new BigFraction(16).divide(9)).setChapterIndex(1) .process(AssetUtils.getTestCorrectChapterFile()); File asset = new File(TemplateParameterContextCreator.getWorkingDir(), "chapter01.jpg"); assertTrue(asset.exists());// w w w . j a v a 2s . c o m assertTrue(asset.isFile()); ChapterAsset chapterAsset = metadataXmlProvider.getRootElement().getChapterAssets().get(0); assertNull(chapterAsset.getType()); assertNull(chapterAsset.getRole()); assertEquals("chapter01.jpg", chapterAsset.getFileName()); }
From source file:com.netflix.imfutility.util.ConversionHelper.java
/** * Transforms edit units to a timecode according to the given edit unit rate. * <ul>/*from w w w.j a v a2 s. c o m*/ * <li>An example of edit units is a frame.</li> * <li>The output timecode has the following format 'hh:mm:ss.xxx', where xxx is milliseconds.</li> * </ul> * * @param eu edit units to be transformed * @param unitsInSec edit unit rate * @return timecode as a string in "hh:mm:ss.mss" format. */ public static String editUnitToTimecode(BigInteger eu, BigFraction unitsInSec) { BigFraction editUnits = new BigFraction(eu); BigFraction unitsInMin = unitsInSec.multiply(new BigFraction(60)); BigFraction unitsInHour = unitsInSec.multiply(new BigFraction(60 * 60)); int hours = editUnits.divide(unitsInHour).intValue(); int minutes = editUnits.subtract(unitsInHour.multiply(hours)).divide(unitsInMin).intValue(); int seconds = editUnits.subtract(unitsInHour.multiply(hours)).subtract(unitsInMin.multiply(minutes)) .divide(unitsInSec).intValue(); BigFraction units = editUnits.subtract(unitsInHour.multiply(hours)).subtract(unitsInMin.multiply(minutes)) .subtract(unitsInSec.multiply(seconds)); int milliseconds = new BigFraction(1000).divide(unitsInSec).multiply(units).intValue(); return String.format("%02d:%02d:%02d.%03d", hours, minutes, seconds, milliseconds); }
From source file:controller.Parser.java
static LP parse(File f) throws FileNotFoundException { Scanner s = new Scanner(f); Pattern p = Pattern.compile(dvarreg); HashMap<String, Integer> x = new HashMap<String, Integer>(); HashMap<Integer, String> xReverse = new HashMap<Integer, String>(); int xcol = 0; /* Get input size and names of the decision variables. */ int constraints = -1; // Take the objective function into account. while (s.hasNextLine()) { String line = s.nextLine(); if (line.trim().equals("")) continue; /* /*from w w w . j a v a2 s. co m*/ * TODO: Beware, will now accept invalid * files with multiple objective functions. */ /* if (!validConstraint(line) && !validObj(line)) { String e = "Unsupported format in file " + f; throw new IllegalArgumentException(e); } */ Matcher m = p.matcher(line); while (m.find()) { String var = m.group(3); if (validVarName(var) && !x.containsKey(var)) { x.put(var, xcol); xReverse.put(xcol++, var); } } constraints++; } BigFraction[][] Ndata = new BigFraction[constraints][x.size()]; for (int i = 0; i < Ndata.length; i++) { Arrays.fill(Ndata[i], BigFraction.ZERO); } BigFraction[] bdata = new BigFraction[constraints]; BigFraction[] cdata = new BigFraction[x.size()]; Arrays.fill(cdata, BigFraction.ZERO); s = new Scanner(f); String obj = s.nextLine(); Matcher m = p.matcher(obj); while (m.find()) { String var = m.group(3); if (!x.containsKey(var)) continue; String sign = m.group(1); if (sign == null) sign = "+"; String coeffStr = m.group(2); BigFraction coeff; if (coeffStr == null) { coeff = BigFraction.ONE; } else { coeff = new BigFraction(Double.parseDouble(coeffStr)); } if (sign.equals("-")) coeff = coeff.negate(); cdata[x.get(var)] = coeff; } int row = 0; while (s.hasNextLine()) { String line = s.nextLine(); String[] split = line.split("<="); if (line.trim().equals("")) continue; if (split.length != 2) { String e = "Unsupported format in file " + f; throw new IllegalArgumentException(e); } m = p.matcher(line); bdata[row] = new BigFraction(Double.parseDouble(split[1])); while (m.find()) { String var = m.group(3); if (!x.containsKey(var)) continue; String sign = m.group(1); if (sign == null) sign = "+"; String coeffStr = m.group(2); BigFraction coeff; if (coeffStr == null) { coeff = BigFraction.ONE; } else { coeff = new BigFraction(Double.parseDouble(coeffStr)); } if (sign.equals("-")) coeff = coeff.negate(); Ndata[row][x.get(var)] = coeff; } row++; } return new LP(new Array2DRowFieldMatrix<BigFraction>(Ndata), new ArrayFieldVector<BigFraction>(bdata), new ArrayFieldVector<BigFraction>(cdata), xReverse); }
From source file:com.netflix.imfutility.ConversionHelperTest.java
@Test public void toNewEditRate() { assertEquals(100, ConversionHelper.toNewEditRate(BigInteger.valueOf(160160), new BigFraction(48000), new BigFraction(30000, 1001))); assertEquals(50,/*from w w w .j ava2 s . c o m*/ ConversionHelper.toNewEditRate(BigInteger.valueOf(100), new BigFraction(50), new BigFraction(25))); assertEquals(55, ConversionHelper.toNewEditRate(BigInteger.valueOf(110), new BigFraction(50), new BigFraction(25))); }
From source file:com.netflix.imfutility.itunes.image.ImageValidator.java
private BigFraction getImageAspectRatio() { return new BigFraction(image.getWidth()).divide(image.getHeight()); }
From source file:com.netflix.imfutility.itunes.asset.ChapterAssetProcessorTest.java
@Test(expected = ImageValidationException.class) public void testInvalidChapter() throws Exception { ChapterAssetProcessor processor = new ChapterAssetProcessor(metadataXmlProvider, TemplateParameterContextCreator.getWorkingDir()); processor.setInputChapterItem(ChaptersXmlSampleBuilder.buildInputChapter()) // aspect ratio of image 16:9 .setAspectRatio(new BigFraction(4).divide(3)).setChapterIndex(1) .process(AssetUtils.getTestCorrectChapterFile()); }
From source file:com.netflix.imfutility.itunes.destcontext.VideoDestContextResolveStrategyTest.java
@Test(expected = ConversionException.class) public void testIncorrectWidth() { VideoDestContextResolveStrategy resolveStrategy = new VideoDestContextResolveStrategy(); resolveStrategy.setPackageType(ITunesPackageType.film).setWidth(639).setHeight(2160) .setFrameRate(new BigFraction(60)).setInterlaced(true); resolveStrategy.resolveContext(map); }
From source file:com.netflix.imfutility.util.ConversionHelper.java
/** * Transforms milliseconds to an SMPTE timecode according to the given edit unit rate. * <ul>//from w w w.j av a 2 s. co m * <li>An example of edit units is a frame.</li> * <li>The output timecode has the following format 'hh:mm:ss:ff'.</li> * </ul> * * @param milliseconds milliseconds to be transformed * @param unitsInSec edit unit rate * @return timecode as a string in "hh:mm:ss:ff" format. */ public static String msToSmpteTimecode(long milliseconds, BigFraction unitsInSec) { BigFraction ms = new BigFraction(milliseconds); BigFraction msInMin = new BigFraction(60 * 1000); BigFraction msInHour = new BigFraction(60 * 60 * 1000); BigFraction msInSec = new BigFraction(1000); BigFraction unitsInMs = unitsInSec.divide(msInSec); int hours = ms.divide(msInHour).intValue(); int minutes = ms.subtract(msInHour.multiply(hours)).divide(msInMin).intValue(); int seconds = ms.subtract(msInHour.multiply(hours)).subtract(msInMin.multiply(minutes)).divide(msInSec) .intValue(); int units = ms.subtract(msInHour.multiply(hours)).subtract(msInMin.multiply(minutes)) .subtract(msInSec.multiply(seconds)).multiply(unitsInMs).intValue(); return String.format("%02d:%02d:%02d:%02d", hours, minutes, seconds, units); }
From source file:com.netflix.imfutility.itunes.asset.ChapterAssetProcessorTest.java
@Test(expected = AssetValidationException.class) public void testInvalidFile() throws Exception { ChapterAssetProcessor processor = new ChapterAssetProcessor(metadataXmlProvider, TemplateParameterContextCreator.getWorkingDir()); processor.setInputChapterItem(ChaptersXmlSampleBuilder.buildInputChapter()) .setAspectRatio(new BigFraction(16).divide(9)).setChapterIndex(1).process(TestUtils.getTestFile()); }
From source file:cc.redberry.core.number.Rational.java
/** * @see BigFraction#BigFraction(java.math.BigInteger) */ public Rational(BigInteger num) { checkNotNull(num); fraction = new BigFraction(num); }