### Question:
HorizontalLayout extends Layout { public LayoutModel getDataForScreen(int screenNr, List<OutputMapping> ioMapping) { int fxInput = ioMapping.get(screenNr).getVisualId(); return new LayoutModel( this.howManyScreensShareThisFxOnTheXAxis(fxInput, ioMapping), 1, this.getXOffsetForScreen(fxInput, screenNr, ioMapping), 0, fxInput); } HorizontalLayout(int row1Size); LayoutModel getDataForScreen(int screenNr, List<OutputMapping> ioMapping);  }### Answer:
@Test public void basicTest() throws Exception { final int panels = 3; Layout l = new HorizontalLayout(panels); assertEquals(panels, l.getRow1Size()); assertEquals(0, l.getRow2Size()); assertEquals(Layout.LayoutName.HORIZONTAL, l.getLayoutName()); MatrixData matrix = new MatrixData(8, 8); IFader f = new Switch(matrix, 50); List<OutputMapping> ioMapping = new ArrayList<OutputMapping>(); for (int n=0; n<panels; n++) { ioMapping.add(new OutputMapping(f, n)); } LayoutModel lom0 = l.getDataForScreen(0, ioMapping); assertEquals(0, lom0.getOfsX()); assertEquals(0, lom0.getOfsY()); assertEquals(1, lom0.getSameFxOnX()); assertEquals(1, lom0.getSameFxOnY()); assertEquals(0, lom0.getVisualId()); assertEquals(true, lom0.screenDoesNotNeedStretching()); ioMapping.get(0).setVisualId(0); ioMapping.get(2).setVisualId(0); ioMapping.get(1).setVisualId(1); lom0 = l.getDataForScreen(0, ioMapping); assertEquals(0, lom0.getOfsX()); assertEquals(0, lom0.getOfsY()); assertEquals(2, lom0.getSameFxOnX()); assertEquals(1, lom0.getSameFxOnY()); assertEquals(0, lom0.getVisualId()); assertEquals(false, lom0.screenDoesNotNeedStretching()); LayoutModel lom1 = l.getDataForScreen(1, ioMapping); assertEquals(0, lom1.getOfsX()); assertEquals(0, lom1.getOfsY()); assertEquals(1, lom1.getSameFxOnX()); assertEquals(1, lom1.getSameFxOnY()); assertEquals(1, lom1.getVisualId()); assertEquals(true, lom1.screenDoesNotNeedStretching()); }