zoukankan      html  css  js  c++  java
  • Simplifying Failures

    #
    # Finish the delta debug function ddmin
    #
    
    
    import re
    
    def test(s):
        print s, len(s),repr(s)
        if re.search("<SELECT[^>]*>", s) >= 0:
            print (s, len(s),"FAIL")
            return "FAIL"
        else:
            return "PASS"
    
    
    def ddmin(s):
        assert test(s) == "FAIL"
    
        n = 2     # Initial granularity
        while len(s) >= 2:
            start = 0
            subset_length = len(s) / n
            some_complement_is_failing = False
    
            while start < len(s):
                complement = s[:start] + s[start + subset_length:]
    
                if test(complement) == "FAIL":
                    s = complement
                    n = max(n - 1, 2)
                    some_complement_is_failing = True
                    break
                    
                start += subset_length
    
            if not some_complement_is_failing:
                # YOUR CODE HERE
                if len(s) == n:
                    break
                n = min(n * 2, len(s))
    
        return s
    
    # UNCOMMENT TO TEST
    html_input = '<SELECT>foo</SELECT>'
    print ddmin(html_input)
  • 相关阅读:
    常用网址记录
    css一些兼容问题
    css hack
    js 闭包
    js 继承
    js 实现淘宝放大镜
    css做三角形的方法
    js 轮播效果
    css3特效
    css布局
  • 原文地址:https://www.cnblogs.com/catgatp/p/11166568.html
Copyright © 2011-2022 走看看