simendsjo: > Suggestions for D-ifying the code is welcome. Your unit tests are not good enough, they miss some important corner cases. This my first version in D2:
import std.string: indexOf; /// return True if s1 is a rotated version of s2 bool isRotated(T)(T[] s1, T[] s2) { return (s1.length + s2.length == 0) || (s1.length == s2.length && indexOf(s1 ~ s1, s2) != -1); } unittest { // of isRotated assert(isRotated("", "")); assert(!isRotated("", "x")); assert(!isRotated("x", "")); assert(isRotated("x", "x")); string s = "rotato"; assert(isRotated(s, "rotato")); assert(isRotated(s, "otator")); assert(isRotated(s, "tatoro")); assert(isRotated(s, "atorot")); assert(isRotated(s, "torota")); assert(isRotated(s, "orotat")); assert(!isRotated(s, "rotator")); assert(!isRotated(s, "rotat")); assert(!isRotated(s, "rotata")); } void main() {} Bye, bearophile