summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js')
-rw-r--r--dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js111
1 files changed, 111 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js b/dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js
new file mode 100644
index 0000000000..fc84a72327
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js
@@ -0,0 +1,111 @@
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES Utilities
+ * ------------------------------------------------
+ *
+ * Copyright 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/**
+ * This class allows one to create a random integer, floating point number or boolean (TODO, choose random items from a list and shuffle an array)
+ */
+'use strict';
+goog.provide('framework.delibs.debase.deString');
+goog.require('framework.delibs.debase.deMath');
+
+goog.scope(function() {
+
+var deString = framework.delibs.debase.deString;
+var deMath = framework.delibs.debase.deMath;
+
+ var DE_ASSERT = function(x) {
+ if (!x)
+ throw new Error('Assert failed');
+ };
+
+ /**
+ * Compute hash from string.
+ * @param {?string} str String to compute hash value for.
+ * @return {number} Computed hash value.
+ */
+ deString.deStringHash = function(str) {
+ /* \note [pyry] This hash is used in DT_GNU_HASH and is proven
+ to be robust for symbol hashing. */
+ /* \see http://sources.redhat.com/ml/binutils/2006-06/msg00418.html */
+ /** @type {number} */ var hash = 5381;
+ /** @type {number} */ var c;
+
+ DE_ASSERT(str != undefined);
+ if (str !== null) {
+ var i = 0;
+ while (i < str.length) { //(c = (unsigned int)*str++) != 0)
+ c = str.charCodeAt(i); //trunc to 8-bit
+ hash = (hash << 5) + hash + c;
+ i++;
+ }
+ }
+ return hash;
+ };
+
+ /**
+ * Checks if a JS string is either empty or undefined
+ * @param {string} str
+ * @return {boolean}
+ */
+ deString.deIsStringEmpty = function(str) {
+ if (str === undefined || str.length == 0)
+ return true;
+ return false;
+ };
+
+ /**
+ * @private
+ * @param {Object} enumType
+ * @param {?} value
+ * @return {string}
+ */
+ deString.getString = function(enumType, value) {
+ for (var p in enumType)
+ if (enumType[p] == value)
+ return p;
+
+ if (typeof value === 'undefined')
+ return 'undefined';
+
+ if (!value)
+ return 'null';
+
+ return value.toString(10);
+ };
+
+ /**
+ * @param {Object} enumType
+ * @param {?} value
+ * @return {string}
+ */
+ deString.enumToString = function(enumType, value) {
+ if (typeof deString.enumToString[enumType] === 'undefined')
+ deString.enumToString[enumType] = {};
+
+ var table = deString.enumToString[enumType];
+ if (typeof table[value] === 'undefined') {
+ var v = deString.getString(enumType, value);
+ table[value] = v;
+ }
+
+ return table[value];
+ };
+
+});