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.image.ImageValidatorTest.java
@Test public void testCorrectValidation() throws Exception { ImageValidator validator;/* w w w. j a va2 s .com*/ validator = new ImageValidator(ImageUtils.getTestImageJpgFile(), "Test"); validator.validateSize(1920, 1080); validator.validateAspectRatio(new BigFraction(16).divide(9)); validator.validateRGBColorSpace(); }
From source file:com.netflix.imfutility.ConversionHelperTest.java
@Test public void editUnitsToTimecode() { assertEquals("01:23:35.080", ConversionHelper.editUnitToTimecode(BigInteger.valueOf(125377), new BigFraction(25))); assertEquals("00:00:00.000", ConversionHelper.editUnitToTimecode(BigInteger.valueOf(0), new BigFraction(25))); assertEquals("00:00:02.000", ConversionHelper.editUnitToTimecode(BigInteger.valueOf(100), new BigFraction(50))); assertEquals("00:00:00.200", ConversionHelper.editUnitToTimecode(BigInteger.valueOf(10), new BigFraction(50))); }
From source file:info.gehrels.voting.NotMoreThanTheAllowedNumberOfCandidatesCanReachItQuorum.java
private BigFraction correctToBoundariesIfNecessary(long numberOfValidVotes, long numberOfSeats, BigFraction calculatedQuorum) {//from ww w .j ava 2s .c o m if ((numberOfValidVotes != 0) && (numberOfSeats != 0)) { return min(new BigFraction(numberOfValidVotes), calculatedQuorum); } else { return calculatedQuorum; } }
From source file:com.netflix.imfutility.ConversionHelperTest.java
@Test public void msToSmpteTimecode() { assertEquals("00:06:12:12", ConversionHelper.msToSmpteTimecode(372480, new BigFraction(25))); assertEquals("00:06:12:11", ConversionHelper.msToSmpteTimecode(372470, new BigFraction(25, 1))); assertEquals("00:00:00:00", ConversionHelper.msToSmpteTimecode(0, new BigFraction(25))); assertEquals("00:00:00:00", ConversionHelper.msToSmpteTimecode(30, new BigFraction(25))); assertEquals("00:00:00:01", ConversionHelper.msToSmpteTimecode(40, new BigFraction(25))); assertEquals("00:00:01:00", ConversionHelper.msToSmpteTimecode(1000, new BigFraction(25))); assertEquals("00:00:00:24", ConversionHelper.msToSmpteTimecode(999, new BigFraction(25))); assertEquals("00:00:00:24", ConversionHelper.msToSmpteTimecode(970, new BigFraction(25))); assertEquals("00:00:00:24", ConversionHelper.msToSmpteTimecode(960, new BigFraction(25))); assertEquals("10:59:59:00", ConversionHelper.msToSmpteTimecode(39599000, new BigFraction(25))); assertEquals("10:59:59:24", ConversionHelper.msToSmpteTimecode(39599960, new BigFraction(25))); assertEquals("10:59:59:23", ConversionHelper.msToSmpteTimecode(39599959, new BigFraction(25))); }
From source file:com.netflix.subtitles.cli.TtmlConverterCmdLineParserTest.java
@Test public void frameRateOptionParsedCorrectly() { /* PREPARATION */ String[] args = new String[] { "-t", "test", "-o", "testFile", "-f", "24000/1001" }; /* EXECUTION */ TtmlConverterCmdLineParams params = new TtmlConverterCmdLineParser().parse(args); /* VALIDATION */ assertEquals("Frame rate option", new BigFraction(24000).divide(1001), params.getFrameRate()); }
From source file:com.netflix.imfutility.util.ConversionHelper.java
/** * Transforms a timecode string (hh:mm:ss:ff) to milliseconds according to the given edit rate (frame rate). * <p>//w ww . j a v a 2 s . co m * Currently works with non-drop timecodes only. * </p> * * @param tc an SMPTE timecode (hh:mm:ss:ff) * @param unitsInSec edit unit rate in a form "25 1" * @return a number of milliseconds */ public static long smpteTimecodeToMilliSeconds(String tc, BigFraction unitsInSec) { String[] parts = tc.split("[:;\\.]"); if (parts.length != 4) { throw new ConversionHelperException(String .format("Incorrect SMPTE timecode '%s'. Expected in a form 'HH[:;.]MM[:;.]SS[:;.]FF'", tc)); } int hours; int mins; int secs; int frames; try { hours = Integer.parseInt(parts[0]); mins = Integer.parseInt(parts[1]); secs = Integer.parseInt(parts[2]); frames = Integer.parseInt(parts[3]); } catch (NumberFormatException e) { throw new ConversionHelperException( String.format("Incorrect SMPTE timecode '%s'! Expected in a form 'HH[:;.]MM[:;.]SS[:;.]FF'" + " where HH,MM,SS and FF are non-negative integers", tc), e); } long total = 0L; total += hours * 60 * 60 * 1000L; total += mins * 60 * 1000L; total += secs * 1000L; total += new BigFraction(frames).divide(unitsInSec).multiply(1000).longValue(); return total; }
From source file:com.netflix.imfutility.itunes.image.ImageValidatorTest.java
@Test(expected = ImageValidationException.class) public void testInvalidAspectRatio() throws Exception { ImageValidator validator = new ImageValidator(ImageUtils.getTestImageJpgFile(), "Test"); validator.validateAspectRatio(new BigFraction(4).divide(3)); }
From source file:com.netflix.imfutility.itunes.destcontext.VideoDestContextResolveStrategyTest.java
@Test public void testCorrectResolvingParameters() { VideoDestContextResolveStrategy resolveStrategy = new VideoDestContextResolveStrategy(); resolveStrategy.setPackageType(ITunesPackageType.film).setWidth(4096).setHeight(2160) .setFrameRate(new BigFraction(60)).setInterlaced(false); assertEquals("hd1080p30", resolveStrategy.resolveContext(map).getName()); resolveStrategy.setPackageType(ITunesPackageType.tv).setWidth(4096).setHeight(2160) .setFrameRate(new BigFraction(60)).setInterlaced(true); assertEquals("hd1080i2997", resolveStrategy.resolveContext(map).getName()); resolveStrategy.setPackageType(ITunesPackageType.film).setWidth(800).setHeight(600) .setFrameRate(new BigFraction(30)).setInterlaced(true); // hd 720 not allowed for film. Expected sd film format assertEquals("sdfilmntsc480i2997", resolveStrategy.resolveContext(map).getName()); resolveStrategy.setPackageType(ITunesPackageType.tv).setWidth(1919).setHeight(1281) .setFrameRate(new BigFraction(24)).setInterlaced(true); assertEquals("hd720i23976", resolveStrategy.resolveContext(map).getName()); resolveStrategy.setPackageType(ITunesPackageType.tv).setWidth(800).setHeight(600) .setFrameRate(new BigFraction(30)).setInterlaced(true); assertEquals("sdtvntsc480i2997", resolveStrategy.resolveContext(map).getName()); resolveStrategy.setWidth(1281).setHeight(720).setFrameRate(new BigFraction(60000).divide(1001)) .setInterlaced(true);//from w w w. j a va 2 s .co m assertEquals("hd720i23976", resolveStrategy.resolveContext(map).getName()); }
From source file:com.netflix.imfutility.itunes.asset.PosterAssetProcessor.java
@Override protected void validate(File assetFile) throws ImageValidationException { ImageValidator validator = new ImageValidator(assetFile, POSTER_TYPE); validator.validateSize(POSTER_MIN_WIDTH, POSTER_MIN_HEIGHT); validator.validateAspectRatio(new BigFraction(POSTER_AR_NUMERATOR).divide(POSTER_AR_DENOMINATOR)); validator.validateJpegOrPng();// ww w . j av a 2 s .c o m validator.validateRGBColorSpace(); }
From source file:com.netflix.subtitles.ttml.TtmlUtilsTest.java
@Test public void reduceDocumentAccordingToGivenOffsetAndStartAndEnd() { /* PREPARATION */ TtEltype tt = new TtEltype(); tt.setBody(new BodyEltype()); BodyEltype body = tt.getBody();/* w ww . j a va2s . c o m*/ body.setBegin("-01:00:00"); body.getDiv().add(new DivEltype()); body.getDiv().add(new DivEltype()); DivEltype div1 = body.getDiv().get(0); div1.getBlockClass().add(new PBuilder().withBegin("01:00:05:00").withEnd("01:00:10:00").build()); div1.getBlockClass() .add(new PBuilder().withBegin("01:00:13:00").withEnd("01:00:17:00").withDur("5s").build()); div1.getBlockClass() .add(new PBuilder().withBegin("01:00:18:14").withEnd("01:00:25:00").withDur("6s").build()); DivEltype div2 = body.getDiv().get(1); div2.getBlockClass().add(new PBuilder().withBegin("01:00:07:00").withDur("1s").build()); div2.getBlockClass().add(new PBuilder().withBegin("01:00:21:10").withEnd("01:00:26:00").build()); div2.getBlockClass().add(new PBuilder().withBegin("01:00:30:00").withEnd("01:00:58:00")); /* EXECUTION */ TtmlUtils.reduceAccordingSegment(tt, 0, 8000, 23000, new BigFraction(24000).divide(1001)); /* VALIDATION */ assertEquals(null, tt.getBody().getBegin()); assertEquals(null, tt.getBody().getEnd()); assertEquals(null, tt.getBody().getDur()); assertEquals(null, div1.getBegin()); assertEquals(null, div1.getEnd()); assertEquals(null, div1.getDur()); assertEquals(null, div2.getBegin()); assertEquals(null, div2.getEnd()); assertEquals(null, div2.getDur()); assertEquals(3, div1.getBlockClass().size()); assertEquals("00:00:00:00", getPBegin(div1.getBlockClass().get(0))); assertEquals("00:00:02:00", getPEnd(div1.getBlockClass().get(0))); assertEquals("00:00:05:00", getPBegin(div1.getBlockClass().get(1))); assertEquals("00:00:09:00", getPEnd(div1.getBlockClass().get(1))); assertEquals("00:00:10:11", getPBegin(div1.getBlockClass().get(2))); assertEquals("00:00:15:00", getPEnd(div1.getBlockClass().get(2))); assertEquals(2, div2.getBlockClass().size()); assertEquals("00:00:00:00", getPBegin(div2.getBlockClass().get(0))); assertEquals("00:00:00:00", getPEnd(div2.getBlockClass().get(0))); assertEquals("00:00:13:07", getPBegin(div2.getBlockClass().get(1))); assertEquals("00:00:15:00", getPEnd(div2.getBlockClass().get(1))); assertEquals(new BigInteger("24"), tt.getFrameRate()); assertEquals("1000 1001", tt.getFrameRateMultiplier()); }