|
@@ -0,0 +1,49 @@
|
|
|
+describe("normal behavior", () => {
|
|
|
+ var arr = [3, 4, 5];
|
|
|
+
|
|
|
+ test("basic", () => {
|
|
|
+ expect(arr["0"]).toBe(3);
|
|
|
+ expect(arr["1"]).toBe(4);
|
|
|
+ expect(arr["2"]).toBe(5);
|
|
|
+ });
|
|
|
+
|
|
|
+ test("above length", () => {
|
|
|
+ expect(arr["3"]).toBeUndefined();
|
|
|
+ });
|
|
|
+});
|
|
|
+
|
|
|
+describe("strings with extra characters", () => {
|
|
|
+ var arr = [3, 4, 5];
|
|
|
+
|
|
|
+ test("whitespace", () => {
|
|
|
+ expect(arr[" 0"]).toBeUndefined();
|
|
|
+ expect(arr["0 "]).toBeUndefined();
|
|
|
+ expect(arr[" 0"]).toBeUndefined();
|
|
|
+ expect(arr[" 0 "]).toBeUndefined();
|
|
|
+ expect(arr[" 3 "]).toBeUndefined();
|
|
|
+ });
|
|
|
+
|
|
|
+ test("leading 0", () => {
|
|
|
+ expect(arr["00"]).toBeUndefined();
|
|
|
+ expect(arr["01"]).toBeUndefined();
|
|
|
+ expect(arr["02"]).toBeUndefined();
|
|
|
+ expect(arr["03"]).toBeUndefined();
|
|
|
+ });
|
|
|
+
|
|
|
+ test("leading +/-", () => {
|
|
|
+ ["+", "-"].forEach(op => {
|
|
|
+ expect(arr[op + "0"]).toBeUndefined();
|
|
|
+ expect(arr[op + "1"]).toBeUndefined();
|
|
|
+
|
|
|
+ expect(arr[op + "-0"]).toBeUndefined();
|
|
|
+ expect(arr[op + "+0"]).toBeUndefined();
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ test("combined", () => {
|
|
|
+ expect(arr["+00"]).toBeUndefined();
|
|
|
+ expect(arr[" +0"]).toBeUndefined();
|
|
|
+ expect(arr[" +0 "]).toBeUndefined();
|
|
|
+ expect(arr[" 00 "]).toBeUndefined();
|
|
|
+ });
|
|
|
+});
|