### Question:
Schemas { public int getCurrentRevisionNumber() { return mCurrentRevision.get(); } private  Schemas(int currentRevision,
      Map<String, ImmutableList<? extends TableDefinitionOperation>> tables,
      ImmutableMap<Integer, ImmutableMap<String, ImmutableList<? extends TableDowngradeOperation>>> downgrades,
      ImmutableMap<Integer, Migration[]> migrations,
      ImmutableList<Release> releases); Schema getSchema(int version); Schema getCurrentSchema(); ImmutableSet<String> getTablesModifiedInRevision(int version); int getCurrentRevisionNumber(); static TableDowngrade dropTable(String tableName); @Deprecated void upgrade(int fromVersion, Context context, SQLiteDatabase database); void upgrade(Context context, SQLiteDatabase database, int fromVersion, int toVersion);  }### Answer:
@Test public void shouldCalculateCurrentRevisionNumberAsCurrentSchemaOffsetPlusMostRecentReleaseMarker() throws Exception { Schemas schemas = Builder .currentSchema(2900) .release(release(1500)) .release(release(666)) .build(); assertThat(schemas.getCurrentRevisionNumber()).isEqualTo(4400); }
@Test public void shouldUseCurrentSchemaOffsetAsCurrentRevisionNumberWhenThereAreNoReleaseMarkers() throws Exception { Schemas schemas = Builder .currentSchema(2900) .build(); assertThat(schemas.getCurrentRevisionNumber()).isEqualTo(2900); }