from matplotlib.colors import LinearSegmentedColormap
from numpy import nan, inf
cm_data = [[0., 0., 0.],
[0., 0., 0.],
[0.498039, 0.498039, 0.498039],
[0.482353, 0., 0.756863],
[0.466667, 0., 0.764706],
[0.447059, 0., 0.772549],
[0.431373, 0., 0.780392],
[0.415686, 0., 0.788235],
[0.4, 0., 0.8],
[0.380392, 0., 0.807843],
[0.329412, 0., 0.733333],
[0.313725, 0., 0.741176],
[0.298039, 0., 0.74902],
[0.313725, 0., 0.839216],
[0.298039, 0., 0.847059],
[0.282353, 0., 0.854902],
[0.262745, 0., 0.866667],
[0.247059, 0., 0.87451],
[0.231373, 0., 0.882353],
[0.215686, 0., 0.890196],
[0.176471, 0., 0.807843],
[0.164706, 0., 0.815686],
[0.14902, 0., 0.823529],
[0.14902, 0., 0.921569],
[0.129412, 0., 0.933333],
[0.113725, 0., 0.941176],
[0.0980392, 0., 0.94902],
[0.0823529, 0., 0.956863],
[0.0627451, 0., 0.964706],
[0.0470588, 0., 0.972549],
[0.027451, 0., 0.882353],
[0.0117647, 0., 0.890196],
[0., 0., 0.898039],
[0., 0.0666667, 1.],
[0., 0.133333, 1.],
[0., 0.2, 1.],
[0., 0.266667, 1.],
[0., 0.333333, 1.],
[0., 0.4, 1.],
[0., 0.466667, 1.],
[0., 0.478431, 0.898039],
[0., 0.537255, 0.898039],
[0., 0.6, 0.898039],
[0., 0.733333, 1.],
[0., 0.8, 1.],
[0., 0.866667, 1.],
[0., 0.933333, 1.],
[0., 1., 1.],
[0., 1., 0.933333],
[0., 1., 0.866667],
[0., 0.898039, 0.717647],
[0., 0.898039, 0.658824],
[0., 0.898039, 0.596078],
[0., 1., 0.6],
[0., 1., 0.529412],
[0., 1., 0.462745],
[0., 1., 0.396078],
[0., 1., 0.329412],
[0., 1., 0.262745],
[0., 1., 0.196078],
[0., 0.898039, 0.117647],
[0., 0.898039, 0.0588235],
[0., 0.898039, 0.],
[0.0313725, 1., 0.],
[0.0666667, 1., 0.],
[0.0980392, 1., 0.],
[0.133333, 1., 0.],
[0.164706, 1., 0.],
[0.2, 1., 0.],
[0.231373, 1., 0.],
[0.239216, 0.898039, 0.],
[0.266667, 0.898039, 0.],
[0.298039, 0.898039, 0.],
[0.364706, 1., 0.],
[0.4, 1., 0.],
[0.431373, 1., 0.],
[0.466667, 1., 0.],
[0.498039, 1., 0.],
[0.533333, 1., 0.],
[0.564706, 1., 0.],
[0.537255, 0.898039, 0.],
[0.568627, 0.898039, 0.],
[0.6, 0.898039, 0.],
[0.698039, 1., 0.],
[0.733333, 1., 0.],
[0.764706, 1., 0.],
[0.8, 1., 0.],
[0.831373, 1., 0.],
[0.866667, 1., 0.],
[0.898039, 1., 0.],
[0.839216, 0.898039, 0.],
[0.866667, 0.898039, 0.],
[0.898039, 0.898039, 0.],
[1., 0.980392, 0.],
[1., 0.964706, 0.],
[1., 0.94902, 0.],
[1., 0.933333, 0.],
[1., 0.913725, 0.],
[1., 0.898039, 0.],
[1., 0.882353, 0.],
[0.898039, 0.776471, 0.],
[0.898039, 0.764706, 0.],
[0.898039, 0.74902, 0.],
[1., 0.815686, 0.],
[1., 0.8, 0.],
[1., 0.780392, 0.],
[1., 0.764706, 0.],
[1., 0.74902, 0.],
[1., 0.733333, 0.],
[1., 0.713725, 0.],
[0.898039, 0.627451, 0.],
[0.898039, 0.611765, 0.],
[0.898039, 0.596078, 0.],
[1., 0.647059, 0.],
[1., 0.631373, 0.],
[1., 0.615686, 0.],
[1., 0.6, 0.],
[1., 0.580392, 0.],
[1., 0.564706, 0.],
[1., 0.54902, 0.],
[0.898039, 0.478431, 0.],
[0.898039, 0.462745, 0.],
[0.898039, 0.447059, 0.],
[1., 0.490196, 0.],
[1., 0.482353, 0.],
[1., 0.47451, 0.],
[1., 0.466667, 0.],
[1., 0.454902, 0.],
[1., 0.447059, 0.],
[1., 0.439216, 0.],
[0.898039, 0.388235, 0.],
[0.898039, 0.380392, 0.],
[0.898039, 0.372549, 0.],
[1., 0.407843, 0.],
[1., 0.4, 0.],
[1., 0.388235, 0.],
[1., 0.380392, 0.],
[1., 0.372549, 0.],
[1., 0.364706, 0.],
[1., 0.356863, 0.],
[0.898039, 0.313725, 0.],
[0.898039, 0.305882, 0.],
[0.898039, 0.298039, 0.],
[1., 0.321569, 0.],
[1., 0.313725, 0.],
[1., 0.305882, 0.],
[1., 0.298039, 0.],
[1., 0.290196, 0.],
[1., 0.282353, 0.],
[1., 0.27451, 0.],
[0.898039, 0.239216, 0.],
[0.898039, 0.231373, 0.],
[0.898039, 0.223529, 0.],
[1., 0.239216, 0.],
[1., 0.231373, 0.],
[1., 0.223529, 0.],
[1., 0.215686, 0.],
[1., 0.207843, 0.],
[1., 0.196078, 0.],
[1., 0.188235, 0.],
[0.898039, 0.164706, 0.],
[0.898039, 0.156863, 0.],
[0.898039, 0.14902, 0.],
[1., 0.156863, 0.],
[1., 0.14902, 0.],
[1., 0.141176, 0.],
[1., 0.129412, 0.],
[1., 0.121569, 0.],
[1., 0.113725, 0.],
[1., 0.105882, 0.],
[0.898039, 0.0862745, 0.],
[0.898039, 0.0823529, 0.],
[0.898039, 0.0745098, 0.],
[1., 0.0745098, 0.],
[1., 0.0627451, 0.],
[1., 0.054902, 0.],
[1., 0.0470588, 0.],
[1., 0.0509804, 0.],
[1., 0.0313725, 0.],
[1., 0.0235294, 0.],
[0.898039, 0.0117647, 0.],
[0.898039, 0.00392157, 0.],
[0.898039, 0., 0.],
[0.992157, 0., 0.],
[0.984314, 0., 0.],
[0.976471, 0., 0.],
[0.972549, 0., 0.],
[0.964706, 0., 0.],
[0.956863, 0., 0.],
[0.94902, 0., 0.],
[0.85098, 0., 0.],
[0.843137, 0., 0.],
[0.835294, 0., 0.],
[0.92549, 0., 0.],
[0.917647, 0., 0.],
[0.909804, 0., 0.],
[0.901961, 0., 0.],
[0.898039, 0., 0.],
[0.890196, 0., 0.],
[0.882353, 0., 0.],
[0.788235, 0., 0.],
[0.784314, 0., 0.],
[0.776471, 0., 0.],
[0.854902, 0., 0.],
[0.85098, 0., 0.],
[0.843137, 0., 0.],
[0.835294, 0., 0.],
[0.827451, 0., 0.],
[0.823529, 0., 0.],
[0.815686, 0., 0.],
[0.729412, 0., 0.],
[0.721569, 0., 0.],
[0.713725, 0., 0.],
[0.788235, 0., 0.],
[0.780392, 0., 0.],
[0.776471, 0., 0.],
[0.768627, 0., 0.],
[0.760784, 0., 0.],
[0.752941, 0., 0.],
[0.74902, 0., 0.],
[0.666667, 0., 0.],
[0.662745, 0., 0.],
[0.654902, 0., 0.],
[0.721569, 0., 0.],
[0.713725, 0., 0.],
[0.705882, 0., 0.],
[0.701961, 0., 0.],
[0.694118, 0., 0.],
[0.686275, 0., 0.],
[0.682353, 0., 0.],
[0.607843, 0., 0.],
[0.6, 0., 0.],
[0.592157, 0., 0.],
[0.654902, 0., 0.],
[0.647059, 0., 0.],
[0.639216, 0., 0.],
[0.631373, 0., 0.],
[0.627451, 0., 0.],
[0.619608, 0., 0.],
[0.611765, 0., 0.],
[0.545098, 0., 0.],
[0.541176, 0., 0.],
[0.533333, 0., 0.],
[0.584314, 0., 0.],
[0.580392, 0., 0.],
[0.572549, 0., 0.],
[0.564706, 0., 0.],
[0.560784, 0., 0.],
[0.552941, 0., 0.],
[0.545098, 0., 0.],
[0.486275, 0., 0.],
[0.478431, 0., 0.],
[0.470588, 0., 0.],
[0.517647, 0., 0.],
[0.509804, 0., 0.],
[0.509804, 0., 0.]]

test_cm = LinearSegmentedColormap.from_list(__file__, cm_data)


if __name__ == "__main__":
    import matplotlib.pyplot as plt
    import numpy as np

    try:
        from pycam02ucs.cm.viscm import viscm
        viscm(test_cm)
    except ImportError:
        print("pycam02ucs not found, falling back on simple display")
        plt.imshow(np.linspace(0, 100, 256)[None, :], aspect='auto',
                   cmap=test_cm)
    plt.show()
