This page tests to make sure my implementation of binary works for the
Processing.js library.
// Test written by Andor Salga int testsPassed = 0; boolean failed = false; void setup() { size(600,200); fill(0); PFont fontA = loadFont("courier"); textFont(fontA, 14); int i1_32 = 0; String si1_32 = "00000000000000000000000000000000"; int i2_32 = 1; String si2_32 = "00000000000000000000000000000001"; int i3_32 = 5; String si3_32 = "00000000000000000000000000000101"; int i4_32 = 2; String si4_32 ="00000000000000000000000000000010"; int i5_32 = 255; String si5_32 = "00000000000000000000000011111111"; int i6_32 = -5; String si6_32 = "11111111111111111111111111111011"; int i7_32 = -255; String si7_32 = "11111111111111111111111100000001"; int i8_32 = -452343; String si8_32 = "11111111111110010001100100001001"; int i9_25 = 23847192; String si9_25 = "1011010111110000100011000"; int i10_31 = 1431655765; String si10_31 = "1010101010101010101010101010101"; // BYTES byte b1_32 = 0; String sb1_32 = "00000000000000000000000000000000"; byte b2_8 = 1; String sb2_8 = "00000001"; byte b3_3 = 5; String sb3_3 = "101"; byte b4_8 = -1; String sb4_8 = "11111111"; byte b5_8 = -5; String sb5_8 = "11111011"; byte b6_5 = -5; String sb6_5 = "11011"; byte b7_8 = 127; String sb7_8 = "01111111"; byte b8_8 = -127; String sb8_8 = "10000001"; byte b9_8 = 42; String sb9_8 = "00101010"; byte b10_4 = 42; String sb10_4 = "1010"; // CHARS char c1_17 = '0'; String sc1_17 = "00000000000110000"; char c2_32 = '0'; String sc2_32 = "00000000000000000000000000110000"; char c3_32 = 'a'; String sc3_32 = "00000000000000000000000001100001"; char c4_32 = 'A'; String sc4_32 = "00000000000000000000000001000001"; char c5_15 = ' '; String sc5_15 = "000000000100000"; char c6_32 = ' '; String sc6_32 = "00000000000000000000000000100000"; char c7 = '!'; String sc7 = "0000000000100001"; char c8 = char(255); String sc8 = "00000000000000000000000011111111"; char c9_32 = char(127); String sc9_32 = "00000000000000000000000001111111"; char c10_30 = 42; String sc10_30 = "000000000000000000000000101010"; char c11_12 = 42; String sc11_12 = "000000101010"; char c12_32 = (char)-1; String sc12_32 = "00000000000000001111111111111111"; // COLORS color cr1 = color(0,0,0); String scr1 = "11111111000000000000000000000000"; color cr2 = color(0,0,0,0); String scr2 = "0"; color cr3_24 = color(0,0,0); String scr3_24 = "000000000000000000000000"; color cr4 = color(0,0,0,1); String scr4 = "1000000000000000000000000"; color cr5 = color(0,0,0,255); String scr5 = "11111111000000000000000000000000"; color cr6_32 = color(255,0,0,255); String scr6_32 = "11111111111111110000000000000000"; color cr7_32 = color(127,127,127,127); String scr7_32 = "1111111011111110111111101111111"; color cr8 = color(0,127,0,127); String scr8 = "1111111000000000111111100000000"; color cr9_32 = color(128,128,128,128); String scr9_32 = "10000000100000001000000010000000"; color cr10 = color(255,128,64,8); String scr10 = "1000111111111000000001000000"; color cr11_13 = color(255,128,64,8); String scr11_13 = "0000001000000"; color cr12_25 = color(0,0,0); String scr12_25 = "1000000000000000000000000"; color cr13_32 = color(0,0,0,0); String scr13_32 = "00000000000000000000000000000000"; color cr14_1 = color(0,0,0,0); String scr14_1 = "0"; color cr15_2 = color(0,0,2,0); String scr15_2 = "10"; if( // color assertEquals(binary(cr1,32), scr1 ) && assertEquals(binary(cr2), scr2 ) && assertEquals(binary(cr3_24,24), scr3_24 ) && assertEquals(binary(cr4), scr4 ) && assertEquals(binary(cr5), scr5 ) && assertEquals(binary(cr6_32), scr6_32 ) && assertEquals(binary(cr7_32), scr7_32 ) && assertEquals(binary(cr8), scr8 ) && assertEquals(binary(cr9_32,32), scr9_32 ) && assertEquals(binary(cr10), scr10 ) && assertEquals(binary(cr11_13,13), scr11_13 ) && assertEquals(binary(cr12_25,25), scr12_25 ) && assertEquals(binary(cr13_32,32), scr13_32 ) && assertEquals(binary(cr14_1,1), scr14_1 ) && assertEquals(binary(cr15_2,2), scr15_2 ) && // bytes assertEquals(binary(b1_32,32), sb1_32 ) && assertEquals(binary(b2_8,8), sb2_8 ) && assertEquals(binary(b3_3,3), sb3_3 ) && assertEquals(binary(b4_8,8), sb4_8 ) && assertEquals(binary(b5_8,8), sb5_8 ) && assertEquals(binary(b6_5,5), sb6_5 ) && assertEquals(binary(b7_8,8), sb7_8 ) && assertEquals(binary(b8_8,8), sb8_8 ) && assertEquals(binary(b9_8,8), sb9_8 ) && assertEquals(binary(b10_4, 4), sb10_4 ) && // chars assertEquals(binary(c1_17,17), sc1_17 ) && assertEquals(binary(c2_32,32), sc2_32 ) && assertEquals(binary(c3_32,32), sc3_32 ) && assertEquals(binary(c4_32,32), sc4_32 ) && assertEquals(binary(c5_15,15), sc5_15 ) && assertEquals(binary(c6_32,32), sc6_32 ) && assertEquals(binary(c7), sc7 ) && assertEquals(binary(c8), sc8 ) && assertEquals(binary(c9_32,32), sc9_32 ) && assertEquals(binary(c10_30,30), sc10_30 ) && // ints assertEquals(binary(i1_32,32), si1_32 ) && assertEquals(binary(i2_32,32), si2_32 ) && assertEquals(binary(i3_32,32), si3_32 ) && assertEquals(binary(i4_32,32), si4_32 ) && assertEquals(binary(i5_32,32), si5_32 ) && assertEquals(binary(i6_32,32), si6_32 ) && assertEquals(binary(i7_32,32), si7_32 ) && assertEquals(binary(i8_32,32), si8_32 ) && assertEquals(binary(i9_25,25), si9_25 ) && assertEquals(binary(i10_31,31), si10_31 ) ) { text("All " + testsPassed + " tests have passed.",30,30); } else { text("Failed on test " + (testsPassed+1),30,30); } } boolean assertEquals(String str1, String str2) { if(!failed && stringsEqual(str1, str2)) { testsPassed++; return true; } else { failed = true; return false; } } boolean stringsEqual(String str1, String str2) { if(str1.length() != str2.length()) { text("Value should have been -> " + str2, 30,60); text("Value was actually -> " + str1, 30,80); return false; } for(int i = 0; i <; str1.length(); i++) { char ai = str1[i]; char bi = str2[i]; if( ai != bi ) { text("Should have been -> " + str2, 30,60); text("Was actually -> " + str1, 30,80); return false; } } return true; }