diff --git a/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPv6AddressTest.java b/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPv6AddressTest.java
index 672a0e1..6eb5743 100644
--- a/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPv6AddressTest.java
+++ b/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPv6AddressTest.java
@@ -38,26 +38,6 @@
             this.input = input;
         }
 
-        public WithMaskTaskCase hasMask() {
-            this.hasMask = true;
-            return this;
-        }
-
-        public WithMaskTaskCase maskLength(int l) {
-            this.hasMask = l < 128;
-            for(int j=0; j < 8; j++) {
-                int pos = j * 8;
-                int index = Math.max(0, Math.min(7, pos - l));
-
-                if(index == 0) {
-                    expectedMask[j] = 0;
-                } else {
-                    expectedMask[j] = (byte) (-1 << index);
-                }
-            }
-            return this;
-        }
-
         public WithMaskTaskCase maskHex(String string) {
             string = string.replaceAll(" ", "");
             this.hasMask = true;
