Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 14201)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 14202)
@@ -33,4 +33,5 @@
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.concurrent.ForkJoinPool;
@@ -190,4 +191,22 @@
         }
 
+        @Override
+        public int hashCode() {
+            return Objects.hash(order, osm, style, flags);
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj)
+                return true;
+            if (obj == null || getClass() != obj.getClass())
+                return false;
+            StyleRecord other = (StyleRecord) obj;
+            return flags == other.flags
+                && order == other.order
+                && Objects.equals(osm, other.osm)
+                && Objects.equals(style, other.style);
+        }
+
         /**
          * Get the style for this style element.
Index: /trunk/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java	(revision 14201)
+++ /trunk/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java	(revision 14202)
@@ -36,4 +36,5 @@
      * Lat/Lon sample values for unit tests
      */
+    @SuppressFBWarnings(value = "MS_MUTABLE_COLLECTION")
     public static final List<Double> SAMPLE_VALUES = Arrays.asList(
             // CHECKSTYLE.OFF: SingleSpaceSeparator
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRendererTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRendererTest.java	(revision 14201)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRendererTest.java	(revision 14202)
@@ -7,4 +7,7 @@
 import org.junit.Test;
 import org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.StyleRecord;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+import nl.jqno.equalsverifier.Warning;
 
 /**
@@ -70,5 +73,5 @@
     }
 
-    private long floatToFixedCheckBits(float number, int totalBits) {
+    private static long floatToFixedCheckBits(float number, int totalBits) {
         long result = StyleRecord.floatToFixed(number, totalBits);
         long shouldBeZero = result >> totalBits;
@@ -77,3 +80,12 @@
     }
 
+    /**
+     * Unit test of methods {@link StyleRecord#equals} and {@link StyleRecord#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(StyleRecord.class).usingGetClass()
+            .suppress(Warning.NONFINAL_FIELDS)
+            .verify();
+    }
 }
