/* * public static eyetrackerDataEyeX loadEyetrackerDataFromJson(string path) * { * eyetrackerDataEyeX eyetrackerDataL; * eyetrackerDataL.targetTraceL = null; * string file = @"\eyetrackerData.json"; * * if (File.Exists(path + file)) * { * string json = File.ReadAllText(path + file); * eyetrackerDataL = JsonConvert.DeserializeObject<eyetrackerDataEyeX>(json); * } * return eyetrackerDataL; * } * * public static TestData1 loadTestDataFromJson(string path) * { * TestData1 testData = null; * string file = @"\testData.json"; * * if (File.Exists(path + file)) * { * string json = File.ReadAllText(path + file); * testData = JsonConvert.DeserializeObject<TestData1>(json); * } * return testData; * }*/ public static TestData1 loadTestDataFromJson(string json) { TestData1 testData = null; testData = JsonConvert.DeserializeObject <TestData1>(json); return(testData); }
private void Init(bool showLastTest, bool newTestAvailable, string inputData, string eyetrackerDataJson, OutputTestData2 testData) { labelVersion.Text = "Version: " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); closeApp = true; if (showLastTest) { inputData = DataBaseWorker.LoadLastPursuitData(out date, out user_id, out eyetrackerDataJson, out testData); } this.date_loc = testData.date_loc; this.user_id = testData.user_id; date = testData.date; buttonNewTest.Enabled = newTestAvailable; //Console.WriteLine("selectedPath: " + selectedPath); toolStripStatusLabelFileName.Text = string.Format("{0}-us{1}", date_loc, user_id); eyetrackerDataL = ReviewClass.loadEyetrackerDataFromJson(eyetrackerDataJson); _testData = DataConverter.TestData2ToTestData1(testData); stimuloPersuitSetup = ReviewClass.loadPersuitDataFromJson(inputData); everythingOk = ReviewClass.eyetrackerDataFound(eyetrackerDataL) & ReviewClass.testDataFound(_testData) & ReviewClass.persuitDataFound(stimuloPersuitSetup); if (everythingOk) { plotGazeData2Control(); } }
public static bool loadImage2Control(bool testDataFound, TestData1 testData, PictureBox pictureBoxStimulus) { /* * leer testdata.imagen * en funcion de lo que se lee se carga en el picture box */ if (testDataFound) { if (Varios.ImageDictionary.Image2ReadDictionary.ContainsKey(testData.image2read)) { pictureBoxStimulus.Image = Varios.ImageDictionary.Image2ReadDictionary[testData.image2read].imagen; Console.WriteLine("testData.imagen2read:" + testData.image2read + " encontrada"); return(true); } else { Console.WriteLine("testData.imagen2read:" + testData.image2read + " NO encontrada"); return(false); } } else { Console.WriteLine("testDataFound: false"); return(false); } }
static int Main(string[] args) { var method = typeof(TestData0).GetMethod(nameof(TestData0.MyMethod)); var func = (Func <TestData0, int, int, int, int, int, int, int, int, object>)Delegate.CreateDelegate(typeof(Func <TestData0, int, int, int, int, int, int, int, int, object>), null, method); TestData0 data = new TestData0(); TestData0 data1 = new TestData1(); int nullRefCount = 0; const int LoopCount = 10; for (int j = 0; j < LoopCount; j++) { for (int i = 0; i < 50; i++) { func(data, 1, 2, 3, 4, 5, 6, 7, 8); func(data1, 1, 2, 3, 4, 5, 6, 7, 8); } try { func(null, 1, 2, 3, 4, 5, 6, 7, 8); } catch (NullReferenceException e) { nullRefCount++; Console.WriteLine(e); } } return((nullRefCount == LoopCount) ? 100 : 101); }
public virtual IDictionary <TestData1, Result> ValidateWithResults(TestData1 first, TestData2 second) { IDictionary <TestData1, Result> results = new Dictionary <TestData1, Result>(); this.Validate(first, second, results); return(results); }
public void Serialize() { StreamWriter streamWriter = new StreamWriter(File.Open(path, FileMode.Truncate)); var serialize = new Serializer(); TestData1 test = new TestData1(); serialize.Serialize(streamWriter, test); streamWriter.Close(); }
public void Deserializer() { StreamReader streamReader = new StreamReader(File.Open(path, FileMode.Open)); var deserializer = new Deserializer(); TestData1 testData1 = deserializer.Deserialize <TestData1>(streamReader); streamReader.Close(); Console.WriteLine("a:" + testData1.A); }
public static bool testDataFound(TestData1 testData) { if (testData == null) { return(false); } else { return(true); } }
public void TestPass1() { Assert.DoesNotThrow(() => { TestData1 data1 = new TestData1(); data1.F = new object[] { "Sadasdasd", new TestData2 { Str = "Str", } }; ProtobufSerializer2.Serialize(data1); }); }
/// TestData #region TestData /// <summary> /// /// </summary> /// <param name="data2"></param> /// <returns></returns> public static TestData1 TestData2ToTestData1(OutputTestData2 data2) { if (data2 == null) { return(null); } TestData1 data1 = new TestData1(); data1.calibration_error_left_px = data2.calibration_error_left_px; data1.calibration_error_right_px = data2.calibration_error_right_px; data1.date = data2.date; data1.eyetracker = data2.eyetracker; data1.filter_type = data2.filter_type; data1.image2read = data2.image2read; data1.screen_Height = data2.screen_Height; data1.screen_Width = data2.screen_Width; return(data1); }
public SampleTextFullScreen(TestData1 testData, Size stimulusSize, Point stimulusLocation, fixationData fixData, eyetrackerDataEyeX eyetrackerDataL, CheckBox checkBoxGaze, CheckBox checkBoxFixations, CheckBox checkBoxL, CheckBox checkBoxR) { InitializeComponent(); this.testData = testData; this.fixData = fixData; this.stimulusSize = stimulusSize; this.stimulusLocation = stimulusLocation; this.eyetrackerDataL = eyetrackerDataL; class4Graphic.loadImage2Control(true, testData, pictureBoxStimulus); pictureBoxStimulus.Size = stimulusSize; pictureBoxStimulus.Location = stimulusLocation; this.checkBoxGaze = checkBoxGaze; this.checkBoxFixations = checkBoxFixations; this.checkBoxL = checkBoxL; this.checkBoxR = checkBoxR; }
public Resumen(bool showLastTest, bool newTestAvailable, string fixDataJson, string eyetrackerDataJson, OutputTestData2 testData) { InitializeComponent(); labelVersion.Text = "Version: " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); closeApp = true; if (showLastTest) { fixDataJson = DataBaseWorker.LoadLastReadingData(out date, out user_id, out eyetrackerDataJson, out testData); } this.dateloc = testData.date_loc; this.user_id = testData.user_id; date = testData.date; buttonNewTest.Enabled = newTestAvailable; //Console.WriteLine("selectedPath: " + selectedPath); _testData = DataConverter.TestData2ToTestData1(testData); if (string.IsNullOrWhiteSpace(fixDataJson)) { fixDataJson = processFixData(eyetrackerDataJson, _testData, testData.date, user_id);//procesa los datos de los ojos y genera un archivo fixData.json } toolStripStatusLabelFileName.Text = string.Format("{0}-us{1}", dateloc, user_id); fixDataFound = loadFixationDataFromJson(fixDataJson); //carga el archivo fixData.json eyetrackerDataL = ReviewClass.loadEyetrackerDataFromJson(eyetrackerDataJson); getStimulusFeactures(ReviewClass.eyetrackerDataFound(eyetrackerDataL)); imageFound = class4Graphic.loadImage2Control(ReviewClass.testDataFound(_testData), _testData, pictureBoxStimulus); everythingOk = fixDataFound & ReviewClass.eyetrackerDataFound(eyetrackerDataL) & ReviewClass.testDataFound(_testData) & imageFound; if (everythingOk) { processMetrics(); } }
public FixDetector(string eyetrackerData, TestData1 testData, string date, string user_id) { //FixDataFound = false; this.eyetrackerData = eyetrackerData; this._testData = testData; this.date = date; this.user_id = user_id; fixData = new fixationData(); fixationDetector = new FixDetectorClass(); fixationDetector.FixationStart += fixationDetector_FixationStart; fixationDetector.FixationEnd += fixationDetector_FixationEnd; //fixationDetector.FixationUpdate += fixationDetector_FixationUpdate; //fixationDetector.Analyzer = EFDAnalyzer.fdaFixationSize; //fixationDetector.FixationRadius = 60; //fixationDetector.NoiseFilter = 1; //fixationDetector.Filter = EFDFilter.fdfAveraging; //fixationDetector.MinFixDuration = 100; //fixationDetector.FilterBufferSize = 20; //fixationDetector.UpdateInterval = 100; //Analyzer fixationDetector.Analyzer = EFDAnalyzer.fdaFixationSize; //fixationDetector.Analyzer = EFDAnalyzer.fdaDispersion; //fixationDetector.Analyzer = EFDAnalyzer.fdaSpeed; //Filter //fixationDetector.Filter = EFDFilter.fdfNone;//confirmado no fixationDetector.Filter = EFDFilter.fdfAveraging; //fixationDetector.Filter = EFDFilter.fdfWeightedAvg; fixationDetector.MinFixDuration = 30; //0-300 fixationDetector.FilterBufferSize = 5; //2-1000 fixationDetector.FilterWeight = 0.5f; //se usa con el filtro EFDFilter.fdfWeightedAvg fixationDetector.UpdateInterval = 1000; //100-1000 //EFDAnalyzer.fdaFixationSize fixationDetector.FixationRadius = 40; //15-70 fixationDetector.NoiseFilter = 1; //confirmado si //EFDAnalyzer.fdaSpeed fixationDetector.SpeedThreshold = 100; //100-1000 fixationDetector.AccelerationThreshold = 2000; //1000-10000 fixationDetector.SpeedBufferSize = 10; //3-10 //EFDAnalyzer.fdaDispersion fixationDetector.MaxDispersion = 20; //15-100 fixationDetector.WindowSize = 5; //2-50 //if (file2String()) { string2Json(); processData(); saveData2File(); fixData.clearAllList(); } }
public static List <Point> getGazeData2List(eyetrackerDataEyeX eyetrackerDataL, TestData1 testData, Eye fromEye) { List <Point> gazeDataDoubleList = new List <Point>(); if (fromEye == Eye.left) { for (var indiceSample = 0; indiceSample < eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL.Count; indiceSample++) { int gazeX = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.X * (double)testData.screen_Width); int gazeY = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.Y * (double)testData.screen_Height); if ( !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.X) && !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.Y) ) { gazeDataDoubleList.Add(new Point(gazeX, gazeY)); } } } if (fromEye == Eye.right) { for (var indiceSample = 0; indiceSample < eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL.Count; indiceSample++) { int gazeX = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.X * (double)testData.screen_Width); int gazeY = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.Y * (double)testData.screen_Height); if ( !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.X) && !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.Y) ) { gazeDataDoubleList.Add(new Point(gazeX, gazeY)); //plotGaze(gazeX, gazeY, Color.Blue); } } } return(gazeDataDoubleList); }
public static List <GazePositionAndTimeClass> getGazePositionAndTimeList(eyetrackerDataEyeX eyetrackerDataL, TestData1 testData, Eye fromEye) { List <GazePositionAndTimeClass> gazePositionAndTime = new List <GazePositionAndTimeClass>(); double timeSegundosInicial = 0; double timeSegundos = 0; if (fromEye == Eye.left) { for (var indiceSample = 0; indiceSample < eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL.Count; indiceSample++) { int gazeX = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.X * (double)testData.screen_Width); int gazeY = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.Y * (double)testData.screen_Height); if (indiceSample == 0) { timeSegundos = 0; timeSegundosInicial = (double)eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Timestamp / (double)1000000.0; } else { timeSegundos = ((double)eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Timestamp / (double)1000000.0) - timeSegundosInicial; } if ( !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.X) && !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.Y) ) { gazePositionAndTime.Add(new GazePositionAndTimeClass(new Point(gazeX, gazeY), timeSegundos)); } } } if (fromEye == Eye.right) { for (var indiceSample = 0; indiceSample < eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL.Count; indiceSample++) { int gazeX = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.X * (double)testData.screen_Width); int gazeY = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.Y * (double)testData.screen_Height); if (indiceSample == 0) { timeSegundos = 0; timeSegundosInicial = (double)eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Timestamp / (double)1000000.0; } else { timeSegundos = ((double)eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Timestamp / (double)1000000.0) - timeSegundosInicial; } if ( !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.X) && !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.Y) ) { gazePositionAndTime.Add(new GazePositionAndTimeClass(new Point(gazeX, gazeY), timeSegundos)); } } } return(gazePositionAndTime); }
private string processFixData(string eyetrackerData, TestData1 testData, string date, string user_id) { FixDetector.FixDetector detectorFijaciones = new FixDetector.FixDetector(eyetrackerData, testData, date, user_id); return(detectorFijaciones.FixDataJson); }
public virtual Boolean IsValid(TestData1 first, TestData2 second) { return(this.ValidateWithResults(first, second).ContainsKey(first)); }
public void LHI_Insert() { // TEST DATA: // -------------------- // "keep it as simple as possible\r\n (head: 0, len:31) // \n (head:32, len: 1) // but\n (head:33, len: 4) // \r (head:37, len: 1) // not simpler."\r (head:38, len:14) // \r (head:52, len: 1) // - Albert Einstein (head:53, len:18) // -------------------- const string TestData1 = "\"keep ot simpler.\"\r\r - Albert Einstein"; const string TestData2 = "it as simple as possible\r\n\nbt\n\rn"; TextBuffer text = new TextBuffer(1, 1); SplitArray <int> lhi = new SplitArray <int>(1, 1); SplitArray <LineDirtyState> lds = new SplitArray <LineDirtyState>(1, 1); lhi.Add(0); lds.Add(LineDirtyState.Clean); TextUtil.LHI_Insert(lhi, lds, text, TestData1, 0); text.Add(TestData1.ToCharArray()); Assert.AreEqual("0 19 20", lhi.ToString()); Assert.AreEqual("DDD", MakeLdsText(lds)); for (int i = 0; i < lds.Count; i++) { lds[i] = LineDirtyState.Clean; } TextUtil.LHI_Insert(lhi, lds, text, TestData2, 6); text.Insert(6, TestData2.ToCharArray()); Assert.AreEqual("0 32 33 36 37 51 52", lhi.ToString()); Assert.AreEqual("DDDDDCC", MakeLdsText(lds)); for (int i = 0; i < lds.Count; i++) { lds[i] = LineDirtyState.Clean; } TextUtil.LHI_Insert(lhi, lds, text, "u", 34); text.Insert(34, "u".ToCharArray()); Assert.AreEqual("0 32 33 37 38 52 53", lhi.ToString()); Assert.AreEqual("CCDCCCC", MakeLdsText(lds)); //--- special care about CR+LF --- // (1) insertion divides a CR+LF // (2) inserting text begins with LF creates a new CR+LF at left side of the insertion point // (3) inserting text ends with CR creates a new CR+LF at right side of the insertion point //-------------------------------- // (1)+(2) { text.Clear(); lhi.Clear(); lhi.Add(0); lds.Clear(); lds.Add(LineDirtyState.Clean); TextUtil.LHI_Insert(lhi, lds, text, "foo\r\nbar", 0); text.Add("foo\r\nbar".ToCharArray()); for (int i = 0; i < lds.Count; i++) { lds[i] = LineDirtyState.Clean; } TextUtil.LHI_Insert(lhi, lds, text, "\nx", 4); text.Insert(4, "\nx".ToCharArray()); Assert.AreEqual("0 5 7", lhi.ToString()); Assert.AreEqual("DDC", MakeLdsText(lds)); } // (1)+(3) { text.Clear(); lhi.Clear(); lhi.Add(0); lds.Clear(); lds.Add(LineDirtyState.Clean); TextUtil.LHI_Insert(lhi, lds, text, "foo\r\nbar", 0); text.Add("foo\r\nbar".ToCharArray()); for (int i = 0; i < lds.Count; i++) { lds[i] = LineDirtyState.Clean; } TextUtil.LHI_Insert(lhi, lds, text, "x\r", 4); text.Insert(4, "x\r".ToCharArray()); Assert.AreEqual("0 4 7", lhi.ToString()); Assert.AreEqual("DDC", MakeLdsText(lds)); } // (1)+(2)+(3) { text.Clear(); lhi.Clear(); lhi.Add(0); lds.Clear(); lds.Add(LineDirtyState.Clean); TextUtil.LHI_Insert(lhi, lds, text, "foo\r\nbar", 0); text.Add("foo\r\nbar".ToCharArray()); for (int i = 0; i < lds.Count; i++) { lds[i] = LineDirtyState.Clean; } TextUtil.LHI_Insert(lhi, lds, text, "\n\r", 4); text.Insert(4, "\n\r".ToCharArray()); Assert.AreEqual("0 5 7", lhi.ToString()); Assert.AreEqual("DDC", MakeLdsText(lds)); } // (2) { text.Clear(); lhi.Clear(); lhi.Add(0); lds.Clear(); lds.Add(LineDirtyState.Clean); TextUtil.LHI_Insert(lhi, lds, text, "foo\rbar", 0); text.Add("foo\rbar".ToCharArray()); for (int i = 0; i < lds.Count; i++) { lds[i] = LineDirtyState.Clean; } TextUtil.LHI_Insert(lhi, lds, text, "\nx", 4); text.Insert(4, "\nx".ToCharArray()); Assert.AreEqual("0 5", lhi.ToString()); Assert.AreEqual("DD", MakeLdsText(lds)); } // (3) { text.Clear(); lhi.Clear(); lhi.Add(0); lds.Clear(); lds.Add(LineDirtyState.Clean); TextUtil.LHI_Insert(lhi, lds, text, "foo\nbar", 0); text.Add("foo\nbar".ToCharArray()); for (int i = 0; i < lds.Count; i++) { lds[i] = LineDirtyState.Clean; } TextUtil.LHI_Insert(lhi, lds, text, "x\r", 3); text.Insert(3, "x\r".ToCharArray()); Assert.AreEqual("0 6", lhi.ToString()); Assert.AreEqual("DC", MakeLdsText(lds)); } }
public abstract void Validate(TestData1 first, TestData3 third, IDictionary <TestData1, Result> results);