{"ScriptPreparationCode":"var TYPES = {\r\n A: \u0027a\u0027,\r\n B: \u0027b\u0027,\r\n C: \u0027c\u0027,\r\n CExt: \u0027c_ext\u0027,\r\n D: \u0027d\u0027,\r\n E: \u0027e\u0027,\r\n F: \u0027f\u0027,\r\n G: \u0027g\u0027,\r\n Other: \u0027Other\u0027,\r\n};\r\n\r\nfunction isA(x) {\r\n return x.type === \u0027a\u0027;\r\n}\r\n\r\nfunction isB(x) {\r\n return x.type === \u0027b\u0027;\r\n}\r\n\r\nfunction isC(x) {\r\n return x.type === \u0027c\u0027;\r\n}\r\n\r\nfunction isExt(x) {\r\n return x.type.indexOf(\u0027_ext\u0027) \u003E= 0;\r\n}\r\n\r\nfunction isD(x) {\r\n return x.type === \u0027d\u0027;\r\n}\r\n\r\nfunction isE(x) {\r\n return x.type === \u0027e\u0027;\r\n}\r\n\r\nfunction isF(x) {\r\n return x.type === \u0027f\u0027;\r\n}\r\n\r\nfunction isG(x) {\r\n return x.type === \u0027g\u0027;\r\n}\r\n\r\nvar testData = [{ type: \u0027a\u0027}, { type: \u0027c\u0027}, { type: \u0027c_ext\u0027}, { type: \u0027z\u0027}, { type: \u0027f\u0027}];","TestCases":[{"Name":"initial","Code":"function getType(x) {\r\n if (isA(x)) {\r\n return TYPES.A;\r\n } else if (isB(x)) {\r\n return TYPES.B;\r\n } else if(isC(x)) {\r\n if (isExt(x)) {\r\n return TYPES.CExt;\r\n }\r\n return TYPES.C;\r\n } else if(isD(x)) {\r\n return TYPES.D;\r\n } else if(isE(x)){\r\n return TYPES.E;\r\n } else if(isF(x)) {\r\n return TYPES.F;\r\n } else if(isG(x)) {\r\n return TYPES.G;\r\n }\r\n \r\n return TYPES.Other;\r\n}\r\n\r\ntestData.map(getType);\r\n","IsDeferred":false},{"Name":"plain","Code":"function getTypePlain(x) {\r\n if (isA(x)) {\r\n return TYPES.A;\r\n }\r\n \r\n if (isB(x)) {\r\n return TYPES.B;\r\n } \r\n \r\n if(isC(x)) {\r\n if (isExt(x)) {\r\n return TYPES.CExt;\r\n }\r\n return TYPES.C;\r\n } \r\n \r\n if(isD(x)) {\r\n return TYPES.D;\r\n } \r\n \r\n if(isE(x)){\r\n return TYPES.E;\r\n } \r\n \r\n if(isF(x)) {\r\n return TYPES.F;\r\n } \r\n \r\n if(isG(x)) {\r\n return TYPES.G;\r\n }\r\n \r\n return TYPES.Other;\r\n}\r\n\r\ntestData.map(getTypePlain);","IsDeferred":false},{"Name":"lodash","Code":"var _getType = _.cond([\r\n [isA, _.constant(TYPES.A)],\r\n [isB, _.constant(TYPES.B)],\r\n [isC, _.cond([\r\n [isExt, _.constant(TYPES.Ext)],\r\n [_.stubTrue, _.constant(TYPES.C)]\r\n ])],\r\n [isD, _.constant(TYPES.D)],\r\n [isE, _.constant(TYPES.E)],\r\n [isF, _.constant(TYPES.F)],\r\n [isG, _.constant(TYPES.G)],\r\n [_.stubTrue, _.constant(TYPES.Other)],\r\n ]);\r\n \r\n\r\ntestData.map(_getType);\r\n","IsDeferred":false}]}